q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

Katherine Johnson — Mathematics to the Moon

Katherine Johnson’s mathematical calculations helped guide some of America’s most important early space missions while she confronted the racial and gender barriers faced by Black women in twentieth-century America.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

Dynamic program analysis

Dynamic program analysis is the act of analyzing software that involves executing a program – as opposed to static program analysis, which does not execute it.

Analysis can focus on different aspects of the software including but not limited to: behavior, test coverage, performance and security.

To be effective, the target program must be executed with sufficient test inputs[1] to address the ranges of possible inputs and outputs. Software testing measures, such as code coverage, and tools such as mutation testing, are used to identify where testing is inadequate.

Types

[edit]

Functional testing

[edit]

Functional testing includes relatively common programming techniques such as unit testing, integration testing and system testing.[2]

Code coverage

[edit]

Computing the test code coverage identifies code that is not tested.

Although this analysis identifies code that is not tested, it does not determine whether the tested code is adequately tested. Code can be executed even if the tests do not actually verify correct behavior.

  • Gcov is the GNU source code coverage program.
  • VB Watch injects dynamic analysis code into Visual Basic programs to monitor code coverage, the call stack, execution trace, instantiated objects, and variables.

Dynamic testing

[edit]

Dynamic testing involves executing a program on a set of test cases.

Memory error detection

[edit]

Fuzzing

[edit]

Fuzzing is a testing technique that involves executing a program on a wide variety of inputs; often, these inputs are randomly generated (at least in part). Gray-box fuzzers use code coverage to guide input generation.

Dynamic symbolic execution

[edit]

Dynamic symbolic execution (also known as DSE or concolic execution) involves executing a test program on a concrete input, collecting the path constraints associated with the execution, and using a constraint solver (generally, an SMT solver) to generate new inputs that would cause the program to take a different control-flow path, thus increasing code coverage of the test suite.[3] DSE can be considered a type of fuzzing ("white-box" fuzzing).

Dynamic data-flow analysis

[edit]

Dynamic data-flow analysis tracks the flow of information from sources to sinks. Forms of dynamic data-flow analysis include dynamic taint analysis and even dynamic symbolic execution.[4][5]

Invariant inference

[edit]

Daikon is an implementation of dynamic invariant detection. Daikon runs a program, observes the values the program computes, and then reports properties that were true during the observed executions and are thus likely true over all executions.

Security analysis

[edit]

Dynamic analysis can be used to detect security problems.

  • IBM Rational AppScan is a suite of application security solutions targeted for different stages of the development lifecycle. The suite includes two main dynamic analysis products: IBM Rational AppScan Standard Edition and IBM Rational AppScan Enterprise Edition. In addition, the suite includes IBM Rational AppScan Source Edition—a static analysis tool.

Concurrency errors

[edit]
  • Parasoft Jtest uses runtime error detection to expose defects such as race conditions, exceptions, resource and memory leaks, and security attack vulnerabilities.
  • Intel Inspector performs run-time threading and memory error analysis in Windows.
  • Parasoft Insure++ is a runtime memory analysis and error detection tool. Its Inuse component provides a graphical view of memory allocations over time, with specific visibility of overall heap usage, block allocations, possible outstanding leaks, etc.
  • Google's Thread Sanitizer is a data race detection tool. It instruments LLVM IR to capture racy memory accesses.

Program slicing

[edit]

For a given subset of a program’s behavior, program slicing consists of reducing the program to the minimum form that still produces the selected behavior. The reduced program is called a “slice” and is a faithful representation of the original program within the domain of the specified behavior subset. Generally, finding a slice is an unsolvable problem, but by specifying the target behavior subset based on the values of a set of variables, it is possible to obtain approximate slices using a data-flow algorithm. These slices are usually used by developers during debugging to locate the source of errors.

Performance analysis

[edit]

Most performance analysis tools use dynamic program analysis techniques.[6]

Techniques

[edit]

Most dynamic analysis involves instrumentation or transformation.

Since instrumentation can affect runtime performance, interpretation of test results must account for this to avoid misidentifying a performance problem.

Examples

[edit]

DynInst is a runtime code-patching library useful for developing dynamic program analysis probes and applying them to compiled executables. Dyninst does not require source code or recompilation in general; however, non-stripped executables and executables with debugging symbols are easier to instrument.

Iroh.js is a runtime code analysis library for JavaScript. It keeps track of the code execution path, provides runtime listeners to detect specific executed code patterns and allows interception and manipulation of the program's execution behavior.

See also

[edit]

References

[edit]
  1. ^ Khatiwada, Saket; Tushev, Miroslav; Mahmoud, Anas (2018-01-01). "Just enough semantics: An information theoretic approach for IR-based software bug localization". Information and Software Technology. 93: 45–57. doi:10.1016/j.infsof.2017.08.012.
  2. ^ Myers, G. J. (1979). The Art of Software Testing. John Wiley and Sons.
  3. ^ Chen, Ting; Zhang, Xiao-song; Guo, Shi-ze; Li, Hong-yuan; Wu, Yue (2013-09-01). "State of the art: Dynamic symbolic execution for automated test generation". Future Generation Computer Systems. Including Special sections: Cyber-enabled Distributed Computing for Ubiquitous Cloud and Network Services & Cloud Computing and Scientific Applications — Big Data, Scalable Analytics, and Beyond. 29 (7): 1758–1773. doi:10.1016/j.future.2012.02.006. ISSN 0167-739X.
  4. ^ Chen, Ju; Han, Wookhyun; Yin, Mingjun; Zeng, Haochen; Song, Chengyu; Lee, Byoungyoung; Yin, Heng; Shin, Insik (2022). {SYMSAN}: Time and Space Efficient Concolic Execution via Dynamic Data-flow Analysis. pp. 2531–2548. ISBN 978-1-939133-31-1.
  5. ^ Chang, Walter; Streiff, Brandon; Lin, Calvin (2008-10-27). "Efficient and extensible security enforcement using dynamic data flow analysis". Proceedings of the 15th ACM conference on Computer and communications security. CCS '08. New York, NY, USA: Association for Computing Machinery. pp. 39–50. doi:10.1145/1455770.1455778. ISBN 978-1-59593-810-7. S2CID 6888893.
  6. ^ Maplesden, David; Tempero, Ewan; Hosking, John; Grundy, John (2015). "Performance Analysis for Object-Oriented Software: A Systematic Mapping". IEEE Transactions on Software Engineering. doi:10.1109/TSE.2015.2396514. ISSN 1939-3520.

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

Mutation testing

Mutation testing (or mutation analysis or program mutation) is used to design new software tests and evaluate the quality of existing software tests. Mutation testing involves making small changes to the program being tested. Each changed version is called a mutant. A test detects, and therefore rejects, a mutant upon test failure –– failure indicating that the test successfully discerned that the behaviour of the mutant differs from the behaviour of the original code. Rejection is called killing the mutant. The value of a test suite is measured by the percentage of mutants that it kills. The test suite can then be improved by adding new tests designed to kill additional mutants. Mutant creation is done using well-defined mutation operators that either mimic typical programming errors (such as using the wrong operator or variable name) or force the creation of valuable tests (such as dividing each expression by zero). Mutation testing is a form of white-box testing. Its purpose is to help the tester develop effective regression tests by locating weaknesses in the test data used to test the program and discovering sections of the tested program's code that are seldom or never accessed during execution.

MORE →
Wikipedia

Jeff Offutt

Jeff Offutt is a professor of Software Engineering at the University at Albany, SUNY. His primary interests are software testing and analysis, web software engineering, and software evolution and change-impact analysis. He is the author of Introduction to Software Testing with Paul Ammann published by Cambridge University Press. He is the editor-in-chief of Software Testing, Verification and Reliability with Robert M. Hierons. He also helped create the IEEE International Conference on Software Testing, Verification, and Reliability and was the first chair of its steering committee. In 2019, Offutt received the Outstanding Faculty Award from the State Council of Higher Education for Virginia, the highest honor for faculty at Virginia's public and private colleges and universities. The award recognizes accomplishments in teaching, research, and public service. He won the Teaching Excellence Award, Teaching with Technology, from George Mason University in 2013. Offutt is known for many fundamental contributions to the field of software testing, in particular mutation testing, model-based testing, bypass testing of web applications, and automatic test data generation. Dr. Offutt received his undergraduate degree in mathematics and data processing in 1982 (double major) from Morehead State University, and master's (1985) and PhD (1988) in computer science from the Georgia Institute of Technology. He was on the faculty of Clemson University before joining George Mason in 1992. He is the son of Andrew J. Offutt and brother of Chris Offutt. He is married to Jian and has three children, Stephanie, Joyce, and Andrew.

MORE →
No preview image
Wikipedia

Dynamic program analysis

Dynamic program analysis is the act of analyzing software that involves executing a program – as opposed to static program analysis, which does not execute it. Analysis can focus on different aspects of the software including but not limited to: behavior, test coverage, performance and security. To be effective, the target program must be executed with sufficient test inputs to address the ranges of possible inputs and outputs. Software testing measures, such as code coverage, and tools such as mutation testing, are used to identify where testing is inadequate.

MORE →
No preview image
Wikipedia

Martin Woodward

Dr Martin R. Woodward (28 May 1948 – 27 October 2006) was a British computer scientist who made leading contributions in the field of in software testing. Martin Woodward was an academic in the Department of Computer Science at the University of Liverpool in England. As part of his leading role in software testing, for 13 years, until shortly before his death, Woodward was the Chief Editor of the journal Software Testing, Verification & Reliability (STVR), a major international journal in the field of software testing. Woodward undertook software testing research in areas such as mutation testing, maturity models, testability, etc.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

What prosperous Tulsa district became widely known as “Black Wall Street”?

The Greenwood District.