ABSTRACT

Dynamic analysis, simply called “testing” as a rule, means executing the code while looking for errors and failures. Static analysis is effectively automated code inspection, code inspection where a program rather than a human performs the inspection. A programmer editing and compiling a program needs to have the feedback from the static analysis tool in the same timescale as the compilation. Almost all programmers, and all static analysis tools, will immediately claim that there is a fault in the code: a beginner’s fault. At the Embedded Systems Kongress in Sindelfingen in late 2018, a purveyor of static analysis tools was offering a prize for anyone who could spot an fault in some C code displayed on a banner. Static analysis making use of constraints included for runtime analysis is not totally one-way traffic; static analysis can also check whether the constraints themselves are consistent and thereby provide value for the runtime checking.