Analysis can focus on different aspects of the software including but not limited to: behavior, test coverage, performance and security.
Gray-box fuzzers use code coverage to guide input generation.
Dynamic data-flow analysis tracks the flow of information from sources to sinks.
[citation needed] Most dynamic analysis involves instrumentation or transformation.
DynInst is a runtime code-patching library that is useful in developing dynamic program analysis probes and applying them to compiled executables.