Statische und dynami... Studien- und Diploma... Statische und dynami...

Bachelorarbeit

Analyse des Fehlererkennungspotentials kopplungsbasierter Testkriterien mittels Mutationstest

 

Zusammenfassung

Zur Bewertung der Qualität einer Testfallmenge hinsichtlich ihres Fehlererkennungspotentials eignet sich der Mutationstest. Im Rahmen dieses Tests wird durch vorher festgelegte Mutationsoperatoren eine Menge von Mutanten eines Programms erzeugt, wobei jeder Mutant durch eine kleine Änderung aus dem ursprünglichen Programm hervorgeht. Bei Testfallmengen, die diese durch Mutationsoperatoren eingefügten Änderungen erkennen, wird angenommen, dass sie auch tatsächliche Fehler in einem Programm finden würden, wodurch sich Rückschlüsse auf die Güte der jeweiligen Testfallmenge ziehen lassen. Mutationstests können dabei sowohl auf Ebene des Komponententests als auch auf Ebene des Integrationstests eingesetzt werden. Im Rahmen des Integrationstests sind dabei besonders Testfallmengen von Interesse, die zur Erfüllung kopplungsbasierter Testkriterien erzeugt wurden. Während Mutationstests auf Komponententestebene bereits erfolgreich angewendet wurden, existieren allerdings auf Integrationstestebene für kopplungsbasierte Testkriterien kaum Erkenntnisse.

Deshalb sind im Rahmen einer Literaturrecherche zunächst Mutationsoperatoren auf Ebene des Integrationstests zu untersuchen. Dabei sind insbesondere Mutationen zu berücksichtigen, die typische Programmierfehler infolge inkorrekter Verwendung von Mechanismen Objektorientierter Programmiersprachen wie Vererbung, Polymorphie und dynamisches Binden instanziieren. Darauf aufbauend ist ein zweistufiges Verfahren zu entwickeln und zu implementieren, das für ein beliebiges C#-Programm und eine gegebene Testfallmenge in einer ersten Phase eine Menge von Mutanten unter Verwendung der vorher identifizierten Mutationsoperatoren generiert und in einem zweiten Schritt den Mutation-Score berechnet. Abschließend ist das Fehlererkennungspotential kopplungsbasierter Testkriterien zu analysieren. Dazu sind als Eingabe für das zu implementierende Werkzeug sowohl selbst erstellte Testprogramme als auch geeignete reale Anwendungen mit einzubeziehen. Für gegebenenfalls unerkannt gebliebene Mutanten sind die jeweiligen Gründe zu untersuchen und nach Möglichkeit mutationsaufdeckende Testfälle zu ermitteln.

Bearbeiter: Stefan Betz

Betreuer: Dr.-Ing. Matthias Meitner