Dynamic program analysis is the analysis of a software system that involves the execution of the software (usually with additional instrumentation added into the program)
Static Analysis
Static analysis involves analyzing a program without running it. Static analysis tools are useful for identifying problematic and confusing uses of a given programming language.
Memory Scribbling
Memory scribbling is when you initialize sections of memory to a particular value to ensure correct operations are happening. This is used to catch problems like use after free, use without initialization, and buffer overflows.
Sanitizer
Collectively, “sanitizers” refers to the Google Sanitizer libraries (and similar implementations), such as AddressSanitizer (ASan), MemorySanitizer (MSan), ThreadSanitizer (TSan), Leak Sanitizer (LSan), and Undefined Behavior Sanitizer (UBSan).
Continuous Integration [CI]
Continuous Integration (CI) is a software development practice where members of a team integrate work frequently. Each integration is automatically verified by an automated build and test process, which detects integration errors as quickly as possible.