IA159 Formal Methods for Software Analysis

Content of the Course, Examination, Literature

Content of the course

  • formal aspects of testing (coverage criteria, software quality metrics)
  • automated test generation: greybox fuzzing
  • deductive verification (Dafny?)
  • abstract interpretation
  • points-to analysis, control and data dependencies, program slicing
  • shape analysis via 3-valued logic (TVLA)
  • symbolic execution, concolic execution, whitebox fuzz testing (SAGE)
  • configurable program analysis (CPAchecker)
  • verification via automata, symbolic execution, and Interpolation (UAutomizer)
  • verification witnesses and SV-COMP
  • SSA, bounded model checking, k-induction and k-inductive invariants, ?relation to backward symbolic execution?
  • ?bonus: separation logic?

Examination

  • oral exam
  • no intrasemestral tests, no written exams, no mandatory homeworks

Literature

There is no single book covering all topics of this course. However, the following books are worth to look in. Slides for each topic provide references to relevant sources. All these sources are available online or in study materials or in the faculty library.