CSC410H1 Lecture Notes - Data-Flow Analysis, Static Analysis, Model Checking
Document Summary
Static vs dynamic: look for errors, prove that it behaves as described in specifications. Static analysis: you can make sure something works as expected. Dynamic testing: you work with the code, and it is executing. Its not possible to check all mistakes duing the process, so after they are ready you need to check it before the user does. It can be used on any size of code. If there is a requirement that is not satisfied, you know what requirement is the wrong one: good to test specifications! Obs: coverage example on the notes is dynamic. Challenge: to automate and get the minimum set of inputs. Symbolical analysis: symbolic values as input instead of a concrete information, you can actually see what it does and how it behaves. To automate this process: static analysis (path conditions, decision procedures (check the feasibility of path constraints, and constraint solving (concrete inputs that you can use for testing)