Entwicklung eines Werkzeugs zur Bestimmung der Fehleraufdeckungsgüte von Testfällen beim Mutationstest mit Operatoren für nebenläufige Programme

BearbeiterIn:Stefan Kraus
Titel:Entwicklung eines Werkzeugs zur Bestimmung der Fehleraufdeckungsgüte von Testfällen beim Mutationstest mit Operatoren für nebenläufige Programme
Typ:bachelor thesis
Betreuer:Oster, N.; Baer, M.; Philippsen, M.
Status:abgeschlossen am 12. Juni 2017
Vorausetzungen:
  • Solide Kenntnisse in Java – insbesondere auch parallele Programmierung
  • Grundkenntnisse in Test- und Verifikationsverfahren
  • Besuch entsprechender Lehrveranstaltungen (z.B. PFP, TSWS) empfohlen
Thema:

Beim Mutationstest werden jeweils einzelne repräsentative Fehler in das zu testende Programm ("Original") injiziert und das Verhalten jeder modifizierten Variante ("Mutant") bei der Ausführung der Testfälle mit dem der unveränderten Fassung verglichen. Weicht das Verhalten bei mindestens einem Testfall ab, gilt der Mutant als "getötet" - je mehr Mutanten auf diese Weise getötet werden (sog. "Mutation Score"), desto höher ist die Fehleraufdeckungsquote der Testfallmenge. Damit ist der Mutation Score ein quantitativer Indikator für die Güte der untersuchten Testsuite. Für sequentielle Software (sowohl prozedurale als auch objektorientierte) wurden ganze Kataloge repräsentativer Fehler definiert und in entsprechende Werkzeuge für den Mutationstest implementiert. Durch die zunehmende Verbreitung massiv paralleler Applikationen ist die Übertragung des Ansatzes auf nebenläufige Programme von großem Wert.
Im Rahmen dieser Arbeit soll ein Werkzeug entwickelt werden, das existierende Mutanten paralleler Programme mit Hilfe einer existierenden Testfallmenge ausführt und den Mutation Score berechnet. Hierfür muss zunächst für jeden Mutationsoperator ein geeignetes Orakel bestimmt werden, das das Tötungskriterium minimal-invasiv überprüfen kann. Außerdem muss eine Lösung dafür gefunden werden, trotz des Nichtdeterminismus von nebenläufigen Programmen möglichst deterministische Ergebnisse zu erziehlen.

Literaturempfehlungen:

  • http://cs.gmu.edu/~offutt/mujava/
  • Bradbury, J. S.; Cordy, J. R.; Dingel, J.: Mutation Operators for Concurrent Java (J2SE 5.0). In: MUTATION’06: Workshop on Mutation Analysis. Raleigh, NC, Nov. 2006, p. 11.
  • Gligoric, M.; Jagannath, V.; Marinov, D.: MuTMuT: Efficient Exploration for Mutation Testing of Multithreaded Code. In: ICST’10: International Conference on Software Testing, Verification and Validation. Paris, France, Apr. 2010, pp. 55–64.
watermark seal