Zielgruppe

Studierende des Bachelorstudiengangs Informatik im 5. Semester

Form

Vorlesung (2 SWS) und Praktikum (2 SWS)

Inhalte

  1. Klassische Softwaretestverfahren
    • Äquivalenzklassen und Grenzwertanalyse
    • Codeüberdeckungsmaße
  2. Systematisches Testen & Model Checking
    • Durchsuchung des Zustandsraums
    • Abstraktion: Modellierung
    • Modell und Implementierung
    • Praktikum: TLA+
  3. Fuzzing & Symbolic Execution
    • Generierung von Testeingaben für eine hohe Codeüberdeckung mittels
      • a) Systematischer Mutation von Testeingaben: Greybox-Fuzzing
      • b) Lösung der Pfadbedingung: Symbolic Execution
    • Vor- und Nachteile beider Ansätze
    • Praktika: AFL++Z3 SMT SolverIntelliTest
  4. Programmverifikation
    • Korrektheits- und Vollständigkeitsbeweise
    • Schleifeninvarianten
    • Praktikum: Dafny

Literatur

Kapitel 1: Klassische Softwaretestverfahren:

  • Kleuker, Qualitätssicherung durch Softwaretests
    • Kapitel 4 und 5
  • Aniche, Effective Software Testing
    • Kapitel 2 und 3

Kapitel 2: Systematisches Testen & Model Checking

Kapitel 3: Fuzzing & Symbolic Execution

Kapitel 4: Programmverifikation

  • Kleuker, Formale Modelle der Softwareentwicklung
    • Kapitel 5
  • K. Leino, Program Proofs
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Weitere Informationen und die Möglichkeit zum Widerruf finden Sie in unserer Datenschutzerklärung.
Seite drucken