specific patterns in the program’s execution, such as uncaught exceptions, assert
failures, dynamic memory errors, and security problems. A number of dynamic
analysis tools have been built to elicit or verify system-specific properties in
source code, including call sequences and data invariants.