Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
06 2021 Elektronik 21 Entwicklungstools Beim Mutationstest werden bereits bestandene Testfälle für ein Testobjekt beispielsweise eine Software-Unit wiederholt ausgeführt Allerdings wendet man die Testfälle bei der Wiederholung nicht auf den originalen Quellcode des Testobjekts an sondern auf Code der mutiert wurde Ein solcher Code ist gegenüber dem Originalcode verändert Dabei können die Änderungen Kleinigkeiten betreffen wie beispielsweise das Ersetzen eines logischen »Und« durch ein logisches »Oder« Die Änderungen können aber auch schwerwiegend sein beispielsweise das Entfernen des »Else«-Zweigs einer »If«-Anweisung Natürlich muss das Testobjekt auch nach der Änderung übersetzbar bleiben sonst ist es nicht möglich den Test zu wiederholen Bei der Wiederholung mit dem mutierten Quellcode geht es darum ob die vorhandenen Testfälle die Mutation aufdecken der Fachbegriff hierfür lautet »töten« Eine Mutation wird »getötet« indem mindestens ein Testfall bei der Wiederholung fehlschlägt Erfolgt dies nicht bemerken die Testfälle nicht dass sich der Quellcode geändert hat oder anders ausgedrückt Die Testfälle bewerten auch ein anderes Testobjekt als das originale als korrekt Das ist bedenklich und muss näher untersucht werden Hierfür ist es hilfreich wenn man nur eine Mutation vorgenommen hat Liegt keine Mutation vor bei der sich das Verhalten des Testobjekts nach außen nicht ändert äquivalente Mutation so mangelt es an der Qualität der Testfälle Dabei spielt es eine Rolle wie radikal die Mutation war eine subtile Mutation wird schwieriger aufzudecken sein als mehrere drastische Veränderungen Üblicherweise erfolgen mehrere Testdurchläufe mit unterschiedlichen Mutationen Hierdurch lässt sich einschätzen wie hoch die Testfallqualität ist In Bild 1 ist der Mutationstestprozess dargestellt wie ihn TESSY automatisiert durchführt Nachdem der originale Quellcode die vorhandenen Tests bestanden hat lässt sich der eigentliche Mutationstestprozess starten TESSY führt genau eine Mutation durch und wiederholt die Tests Dabei wird aufgezeichnet ob eine Mutation getötet wurde oder nicht Dann wird das originale Testobjekt wiederhergestellt und eine weitere Mutation durchgeführt In Bild 2 sind die Mutationen dargestellt die TESSY seit der Version 4 3 ermöglicht das Fehlermodell Der Anwender kann die anzuwendenden Mutationen auswählen und dadurch auch die Anzahl der vorgenommenen Mutationen beeinflussen Dies wiederum wirkt sich auf die Ausführungszeit des gesamten Mutationstestprozesses aus Annahmen für den Mutationstest Die von TESSY standardmäßig durchgeführten Mutationen sind subtil beispielsweise wird der relationale Operator < zu <= Dem liegt die Annahme des »kompetenten Programmierers« Bild 1 Das Testwerkzeug TESSY automatisiert den gesamten Mutationstestprozess Bild Hitex Bild 2 Diese Mutationen nimmt TESSY V4 3 standardmäßig vor Bild Hitex