Mutationstests dienen zur Qualitätsbestimmung von Softwaretests. Um die Ausführung dieser Tests zu automatisieren, gibt es eine Reihe von Mutationstestwerkzeugen. Diese Arbeit beschäftigt sich mit den öffentlich verfügbaren Werkzeugen für die Programmiersprache Java und dem Testframework JUnit. Sie vergleicht die Werkzeuge MuJava, Jumble, Pitest, Judy und Major hinsichtlich ihres Funktionsumfangs, ihrer Leistungsfähigkeit und ihrer Praxistauglichkeit miteinander. Die Ergebnisse dieser Evaluation dienen als Entscheidungshilfe bei der Auswahl eines Werkzeugs zur Testverbesserung.
Inhaltsverzeichnis
1 Einleitung
1.1 Motivation
1.2 Ziele Der Arbeit
1.3 Gliederung
2 Grundlagen Des Softwaretestens
2.1 Der Fundamentale Testprozess
2.1.1 Planung und Steuerung
2.1.2 Analyse und Design
2.1.3 Realisierung und Durchführung
2.1.4 Auswertung und Bericht
2.1.5 Abschluss
2.2. Testarten Und Testbenennung
2.2.1 Teststufe
2.2.2 Testperson
2.2.3 Testmethode
2.2.4 Testziel
3 Mutationstests
3.1 Der Mutationstestprozess
3.2 Kernhypothesen
3.2.1 Die Competent Programmer Hypothesis
3.2.2 Der Coupling Effect
3.3 Lösungsansätze Für Bekannte Schwachstellen
3.3.1 Äquivalente Mutanten
3.3.2 Der Faktor Mensch
3.3.3 Mutanten-Erzeugung
3.3.4 Testausführung
4 Vorstellung der Mutationswerkzeuge
4.1 MuJava
4.2 Jumble
4.3 Pitest
4.4 Judy
4.5 Major
4.6 Zusammenfassung
5 Vergleich Der Mutationstestwerkzeuge
5.1 Beschreibung Der Testumgebung
5.2 Vorstellung Der Testkriterien
5.2.1 Leistungskriterien
5.2.2 Bedienbarkeitskriterien
5.3 Vorgehensbeschreibung
5.4 Darstellung Der Ergebnisse
5.4.1 Leistungsbewertung
5.4.2 Bedienbarkeitsbewertung
6 Bewertung Der Werkzeuge
6.1 MuJava
6.2 Jumble
6.3 Pitest
6.4 Judy
6.5 Major
6.6 Handlungsempfehlung
7 Fazit
Zielsetzung & Themen
Diese Arbeit zielt darauf ab, die Leistungsfähigkeit, Praxistauglichkeit und den Funktionsumfang verschiedener öffentlich verfügbarer Mutationstestwerkzeuge für Java und JUnit systematisch zu evaluieren, um als Entscheidungshilfe für die Auswahl eines geeigneten Werkzeugs zur Testverbesserung zu dienen.
- Grundlagen des Softwaretestens und des Mutationstestprozesses
- Analyse der Kernhypothesen von Mutationstests (Competent Programmer & Coupling Effect)
- Vergleichende Untersuchung der Werkzeuge MuJava, Jumble, Pitest, Judy und Major
- Kriterienbasierte Leistungs- und Bedienbarkeitsbewertung
- Diskussion von Lösungsansätzen für bekannte Schwachstellen der Mutationstests
Auszug aus dem Buch
3.1 Der Mutationstestprozess
Dieser Abschnitt beschreibt den Mutationstestprozess. Dabei wird auch auf eine Besonderheit der Mutationstests eingegangen: Mutationstests gehören nicht nur zur Gruppe der fehlerbasierten Testverfahren, sie sind gleichzeitig auch ein Vertreter der diversifizierenden Testmethoden. Bei dieser Testart werden die Testergebnisse nicht mit den Soll-Ergebnissen der Spezifikation verglichen, sondern mit den Testergebnissen einer leicht abgewandelten Programmversion [Lig02, S. 180].
Zu Beginn des Mutationstestprozesses steht die Eingabe einer Software s, siehe Abbildung 4. In diese Software werden nun Fehler platziert, die auch Mutationen genannt werden. Eine mutierte Version s' der Software wird Mutant genannt. Hier geschieht somit die Diversifizierung der Software. Außerdem findet sich hier auch der Ansatz des fehlerbasierten Testens, denn die platzierten Mutationen sind vorher festgelegte Fehler, genannt Mutations-Operatoren [JH11, S. 4]. Diese Mutationen müssen syntaktisch korrekt sein und dürfen keinen Einfluss auf die Kompilierbarkeit der Software haben [OU01, S. 2].
Nach dem Erstellen der Mutanten erfolgt die Eingabe der Testfälle T. Diese Testfälle werden anschließend auf dem ursprünglichen Programm s ausgeführt um zu überprüfen, ob s keine Fehler enthält bzw. die dazugehörigen Tests erfolgreich durchlaufen. Dies ist eine notwendige Bedingung für fehlerbasiertes Testen.
Werden von T keine Fehler mehr gefunden, erfolgt die Ausführung der Testfälle auf den mutierten Programmversionen. Hier wird jeweils ein Mutant zur Zeit überprüft. Schlägt mindestens einer der Tests aus T fehl, gilt der Mutant als eliminiert.
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel motiviert die Notwendigkeit von Mutationstests zur Qualitätssicherung und legt die Zielsetzungen sowie den Aufbau der Arbeit dar.
2 Grundlagen Des Softwaretestens: Hier werden theoretische Grundlagen des Testprozesses in der Softwareentwicklung erläutert, um die Einordnung von Mutationstests zu ermöglichen.
3 Mutationstests: Dieses Kapitel führt in den Mutationstestprozess ein, erklärt die zugrunde liegenden Kernhypothesen und diskutiert Lösungsansätze für typische Schwachstellen wie den hohen Ressourcenbedarf.
4 Vorstellung der Mutationswerkzeuge: Es erfolgt eine detaillierte Präsentation der untersuchten Werkzeuge (MuJava, Jumble, Pitest, Judy, Major) hinsichtlich ihrer spezifischen Ansätze und Funktionsumfänge.
5 Vergleich Der Mutationstestwerkzeuge: In diesem Kapitel werden die Werkzeuge in einer einheitlichen Testumgebung anhand objektiver Leistungs- und subjektiver Bedienbarkeitskriterien miteinander verglichen.
6 Bewertung Der Werkzeuge: Basierend auf den Ergebnissen aus den vorangegangenen Kapiteln werden die Werkzeuge bewertet und eine Handlungsempfehlung für die Praxis ausgesprochen.
7 Fazit: Das Fazit fasst die Ergebnisse zusammen und gibt einen Ausblick auf die Relevanz und zukünftige Entwicklung von Mutationstestwerkzeugen in der Softwareentwicklung.
Schlüsselwörter
Mutationstests, Softwarequalität, JUnit, Mutations-Operatoren, Testfall, Testausführung, MuJava, Jumble, Pitest, Judy, Major, Testprozess, Effizienz, Bedienbarkeit, Mutation Score
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit beschäftigt sich mit der Evaluation der Leistungsfähigkeit und Praxistauglichkeit ausgewählter Mutationstestwerkzeuge für die Programmiersprache Java und das Testframework JUnit.
Was sind die zentralen Themenfelder der Arbeit?
Die Themenfelder umfassen die theoretischen Grundlagen des Softwaretestens, den Mutationstestprozess, die Vorstellung relevanter Java-Mutationstestsysteme sowie deren vergleichende Analyse hinsichtlich Effizienz und Benutzerfreundlichkeit.
Was ist das primäre Ziel der Untersuchung?
Das Ziel ist es, ein besseres Verständnis für die Leistungsfähigkeit dieser Werkzeuge zu schaffen und eine Entscheidungshilfe für Anwender zu bieten, welches Tool sich am besten für den praktischen Einsatz eignet.
Welche wissenschaftliche Methode wird verwendet?
Die Autorin oder der Autor verwendet einen empirischen Vergleichsansatz, bei dem die verschiedenen Werkzeuge in einer einheitlichen, virtuellen Testumgebung (Ubuntu) anhand spezifischer Leistungs- und Bedienbarkeitskriterien getestet und quantitativ sowie qualitativ bewertet werden.
Was wird im Hauptteil der Arbeit behandelt?
Im Hauptteil werden zunächst die Grundlagen erläutert, gefolgt von einer detaillierten Vorstellung der Werkzeuge (MuJava, Jumble, Pitest, Judy, Major) und deren anschließender praktischer Evaluierung mittels eines Dreiecks-Programms als Testobjekt.
Welche Schlüsselbegriffe charakterisieren die Arbeit?
Wichtige Begriffe sind Mutationstests, Mutation Score, Mutations-Operatoren, Testautomatisierung und der Vergleich von Software-Testwerkzeugen hinsichtlich ihres Ressourcenverbrauchs und ihrer Konfigurierbarkeit.
Warum schneidet MuJava in der Bewertung eher schlecht ab?
MuJava wird als schwierig zu automatisieren und zu installieren beschrieben, weist eine schlechte Performanz auf und schien im Testverlauf nicht vollständig korrekt zu funktionieren, weshalb von einem Einsatz eher abgeraten wird.
Welches Werkzeug wird für den Praxiseinsatz empfohlen?
Pitest wird als empfehlenswert hervorgehoben, da es Open Source ist, eine hervorragende Bedienbarkeit bietet, aktiv weiterentwickelt wird und eine breite Toolunterstützung genießt.
Was ist die größte Schwachstelle der Mutationstests laut Arbeit?
Die größte Schwachstelle ist der sehr hohe Ressourcenbedarf, sowohl in Bezug auf die benötigte Rechenleistung als auch auf die erforderlichen Personenstunden, sowie die Problematik der äquivalenten Mutanten.
- Quote paper
- Lea Kristin Gerling (Author), 2014, Evaluation der Leistungsfähigkeit ausgewählter Mutationstestwerkzeuge, Munich, GRIN Verlag, https://www.grin.com/document/335396