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

Organisatorisches

Zielgruppe Bachelor Informatik, Bachelor Informatik dual
Turnus jedes Wintersemester
Lehrformen Vorlesung (2 SWS), Praktikum (2 SWS)
Leistungspunkte 5
Voraussetzungen

Die Prüfungen in den folgenden Modulen müssen bestanden sein:

- Einführung in die Informatik
- Einführung in die objektorientierte Programmierung
- Mathematik I
- Mathematik II
- Theoretische Informatik

Die Module des dritten und vierten Studiensemesters sollten erfolgreich absolviert sein.

Voraussetzungen zur Prüfungsteilnahme Erfolgreiche Teilnahme am Praktikum
Prüfungsform Das Modul wird regelmäßig abgeschlossen durch eine schriftliche oder mündliche Prüfung. Die im aktuellen Semester geforderte Prüfungsleistung entnehmen Sie bitte der Prüfungsliste des Fachbereichs Elektrotechnik und Informatik, die spätestens vor Beginn der Vorlesungszeit des Semesters veröffentlicht wird.

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