FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://en.wikipedia.org/wiki/Dynamic_program_analysis

Dynamic program analysis

Contents
Types
    Functional testing
    Code coverage
    Dynamic testing
    Dynamic data-flow analysis
    Invariant inference
    Security analysis
    Concurrency errors
    Program slicing

Program execution
General concepts
Types of code
Compilation strategies
Notable runtimes
Notable compilers & toolchains

Types

edit

Functional testing

edit

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

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 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. 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.

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
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.
  • ↑
    View original on Wikipedia | Back | FazBrowse Home