Bachelorarbeit, 2015
58 Seiten, Note: 1,7
1 Einleitung
1.1 Motivation
1.2 Ziele der Arbeit
1.3 Aufbau der Arbeit
2 Mutationstests
2.1 Kernhypothesen
2.1.1 Entstehung von Fehlern
2.1.2 Entdeckung von Fehlern
2.2 Vorgehen
3 Continuous-Integration
3.1 Grundprinzipien
3.2 Der Continuous-Integration-Prozess
4 Integration des Mutationstestwerkzeugs
4.1 Vorstellung der Testumgebung
4.1.1 Quality-Assurance-Extension
4.1.2 Configuration-Center-Client-Extension
4.1.3 Configuration-Center-Interface-Extension
4.1.4 Careerservice-Extension
4.1.5 Components-Extension
4.1.6 Attendeelist-Extension
4.1.7 Application-Editor-Extension
4.2 Auswahl des Mutationstestwerkzeugs
4.2.1 Anforderungen an das Mutationstestwerkzeug
4.2.2 Vorstellung des gewählten Mutationstestwerkzeug
4.3 Vorgehen bei der Integration
4.4 Anpassung des Buildskripts
5 Auswertung der Integration
5.1 Herausforderungen während der Integration
5.1.1 Anpassung an HISinOne
5.1.2 Ressourcenverbrauch
5.2 Auswertung der Mutationstests
5.2.1 Interpretation der Ergebnisse
5.2.2 Analyse der Laufzeiten
5.2.3 Mutation Score und Testüberdeckung
5.3 Methoden zur Testverbesserung
5.3.1 Conditionals Boundary Mutator
5.3.2 Negate Conditionals Mutator
5.3.3 Math Mutator
5.3.4 Increments Mutator
5.3.5 Invert Negatives Mutator
5.3.6 Return Values Mutator
5.3.7 Void Method Call Mutator
6 Fazit
Die Arbeit untersucht die Herausforderungen und Lösungsansätze bei der Integration eines Mutationstestwerkzeugs in einen bestehenden Continuous-Integration-Prozess. Das primäre Ziel besteht darin, zu analysieren, ob und wie sich die hohen Ressourcenanforderungen von Mutationstests mit den Anforderungen einer effizienten Softwareentwicklung vereinbaren lassen und wie daraus systematische Maßnahmen zur Testverbesserung abgeleitet werden können.
1.1 Motivation
Softwaretests sind eine Möglichkeit, Fehler in einer Software zu entdecken. Je später ein Fehler entdeckt wird, desto höher sind die Kosten für seine Behebung [Boe79, S.1]. Daher ist es sinnvoll, Softwaretests nach jeder Änderung am System auszuführen. Ein geeignetes Vorgehen dafür ist Continuous-Integration. Bei dieser Art der Software-Entwicklung werden Änderungen kontinuierlich in das Gesamtsystem eingepflegt. Nach jeder Änderung wird das System durch automatisierte Softwaretests überprüft [FF06, S. 5f].
Durch Testen lässt sich allerdings nie die vollständige Abwesenheit von Fehlern nachweisen [Dij72, S. 6]. Daher ist es das Ziel von Softwaretests, die Anzahl der vorhandenen Fehler in dem getesteten Programm zu minimieren. Idealerweise geschieht dies möglichst effizient, da die vorhandenen Ressourcen in einem Softwareprojekt beschränkt sind [DIN09]. Effizienz bedeutet in diesem Kontext, dass möglichst viele Fehler durch möglichst wenig Aufwand entdeckt werden. Testfälle, die zwar Ressourcen verbrauchen, aber keine Fehler entdecken, sind nutzlos. Ein Qualitätskriterium einer Testmenge ist demnach ihre Fähigkeit, Fehler in der getesteten Software zu entdecken. Je mehr Fehler durch eine vorhandene Testmenge entdeckt werden, desto besser ist die Testqualität.
Mutationstesten ist eine in den 1970er Jahren vorgestellte Methode, um die Entdeckungsfähigkeit einer Testmenge zu bestimmen [DLS78]. Dazu werden künstlich generierte Fehler in ein Programm eingefügt. Je mehr dieser Fehler von den vorhandenen Testfällen erkannt werden, desto besser ist die Entdeckungsfähigkeit der Testmenge. Der Mutationstestprozess lässt sich durch Mutationstestwerkzeuge automatisieren. Um eine kontinuierliche Überwachung der Testqualität zu gewährleisten, ist es daher sinnvoll, ein Mutationstestwerkzeug in einen Continuous-Integration-Prozess zu integrieren.
1 Einleitung: Dieses Kapitel motiviert die Integration von Mutationstests, definiert die Ziele der Bachelorarbeit und erläutert ihren Aufbau.
2 Mutationstests: Es werden die theoretischen Grundlagen der Mutationstests, insbesondere Kernhypothesen wie die Competent Programmer Hypothesis und der Coupling Effect, sowie das Vorgehen vorgestellt.
3 Continuous-Integration: Dieser Abschnitt führt in die Grundprinzipien der Continuous-Integration ein und beschreibt den Standard-Prozess sowie die Rolle unterstützender Werkzeuge.
4 Integration des Mutationstestwerkzeugs: Hier wird die praktische Integration des Werkzeugs Pitest in HISinOne dokumentiert, angefangen bei der Auswahl des Werkzeugs bis hin zur Anpassung der Buildskripte.
5 Auswertung der Integration: In diesem Kapitel werden die Herausforderungen der Integration analysiert, Ergebnisse der Mutationstests interpretiert und Methoden zur systematischen Testverbesserung abgeleitet.
6 Fazit: Das Fazit reflektiert die Erreichung der Zielsetzung und gibt einen Ausblick auf mögliche zukünftige Entwicklungen im Bereich der automatisierten Testqualitätssicherung.
Mutationstests, Continuous-Integration, Softwaretest, Pitest, Testqualität, Software-Ökosystem, HISinOne, Testüberdeckung, Mutation Score, Buildskript, Java, Softwareentwicklung, Testverbesserung, Inkrementelle Analyse, Qualitätssicherung
Die Arbeit beschäftigt sich mit der Integration eines Mutationstestwerkzeugs in einen Continuous-Integration-Prozess, um die Testqualität in komplexen Softwareprojekten zu überwachen und zu verbessern.
Die zentralen Themen sind Mutationstests, Continuous-Integration-Prozesse, die Performance-Optimierung von Build-Pipelines und die Ableitung von Maßnahmen zur Testverbesserung basierend auf Mutationsergebnissen.
Das Hauptziel ist die Analyse der Vereinbarkeit der hohen Ressourcenanforderungen von Mutationstests mit den strikten Anforderungen eines Continuous-Integration-Prozesses in großen Softwareprojekten.
Die Arbeit basiert auf einer Literaturanalyse zu Mutationstests und Continuous-Integration sowie einer praktischen Fallstudie, bei der das Werkzeug Pitest in verschiedene Extensions der Software HISinOne integriert und hinsichtlich Laufzeit und Ergebnisqualität evaluiert wurde.
Im Hauptteil werden die theoretischen Grundlagen erläutert, die Auswahl von Pitest als Werkzeug begründet, der detaillierte Integrationsprozess (inklusive Build-Anpassungen) beschrieben und die Messergebnisse hinsichtlich Performance und Testüberdeckung analysiert.
Die Arbeit ist primär durch Begriffe wie Mutationstests, Continuous-Integration, Testqualität, Pitest, Mutation Score und Software-Ökosystem charakterisiert.
Die inkrementelle Analyse ermöglicht es, bei erneuten Testläufen nur geänderte Klassen und Testfälle zu berücksichtigen, was die Laufzeit der Builds im Vergleich zur vollen Analyse signifikant verkürzt.
Pitest wurde gewählt, weil es als eines der wenigen Werkzeuge die Anforderungen der Integration in einen Ant-basierten Continuous-Integration-Prozess erfüllte und performant genug für die spezifische Zielumgebung war.
Der Autor kommt zu dem Schluss, dass die Integration zwar technisch möglich ist und einen hohen Mehrwert bietet, jedoch aufgrund des hohen initialen Arbeitsaufwands und der Wartungsintensität eine klare Priorisierung innerhalb der Softwareentwicklung erfordert.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

