The document discusses various techniques for modern software testing and formal verification, including:
1. Design-by-contract using pre-conditions, post-conditions, and invariants as implemented in languages like Eiffel and tools like Microsoft Code Contracts for .NET programs.
2. Deductive verification of C code using the Frama-C tool based on annotations and the weakest precondition approach.
3. Verification of cyber-physical systems modeled as hybrid automata using techniques like the KeYmaera theorem prover based on hybrid logic.