Diese Arbeit dokumentiert die Integration des Mutationstestwerkzeugs Pitest in den Continuous-Integration-Prozess der Software HISinOne. Dabei werden aufgetretene Herausforderungen während der Integration betrachtet und Lösungsmöglichkeiten vorgestellt. Den Kern dieser Arbeit bildet die Auswertung der von Pitest erzeugten Ergebnisse. Dabei wird die Frage beantwortet, wie sich die relativ hohen Ressourcenanforderungen von Mutationstests mit einem Continuous-Integration-Prozess vereinbaren lassen. Außerdem wird rläutert, wie sich aus den gewonnen Ergebnissen der Mutationstests systematisch Maßnahmen zur Testverbesserung ableiten lassen.
Eine Qualitätseigenschaft von Softwaretests ist die Fähigkeit, Fehler in der getesteten Software zu entdecken. Diese Eigenschaft kann durch die Anwendung von Mutationstests ermittelt werden. Mutationstests bauen künstlich erzeugte Fehler in ein Programm ein und messen anschließend, wie viele dieser Fehler durch die vorhandenen Testfälle entdeckt werden. Der Mutationstestprozess lässt sich durch Mutationstestwerkzeuge automatisieren.
Um die Qualität der Testfälle nach jeder Änderung am Programm- oder Testcode zu überprüfen ist es sinnvoll, Mutationstests in einen Continuous-Integration-Prozess zu integrieren. Bei dieser Art der Softwareentwicklung werden Veränderungen am System kontinuierlich eingepflegt.
Inhaltsverzeichnis
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 Confgurat on-Center-Client-Extension
4.1.3 Confgurat on-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
Anhang
-
-
-
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.