Software Analysis Basics
Background and Basics
Test oracle: a mechanism for determining whether software executed correctly for a test.
Differential test: Provide the same input to similar applications, and observe output differences.
Metamorphic testing: Provide the manipulated inputs to same application, and observe if output differences are as expected.
Program Analysis Basics
Abstract syntax tree(AST): Represents the abstract syntactic structure of a language construct.
Control flow graph(CFG):
- Divide the program into basic blocks.
- Basic blocks: A sequence of straight-line code that can be entered only at the beginning and exited at the end.
- Connect basic blocks together to generate CFG.