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.
22 Elektronik 06 2021 Entwicklungstools zugrunde Diese besagt dass ein fähiger Softwareentwickler nur geringfügige Fehler macht durch die beispielsweise eine Schleife einmal zu viel oder einmal zu wenig durchlaufen wird oder durch die zum Beispiel ein ArrayZugriff auf eine Speicherzelle erfolgt die gerade nicht mehr zum Array gehört Offbyone-Fehler Um herauszufinden ob die Testfälle solche geringfügigen Fehler finden und somit eine gute Qualität haben müssen die Mutationen subtil sein Grobe Mutationen wie beispielsweise das Entfernen von einer oder gar mehreren Anweisungen sollten auch Testfälle geringer Qualität aufdecken Eine weitere empirisch bestätigte Annahme 1 besagt dass es einen Kopplungseffekt gibt Ein Testfall der genau einen Mutanten tötet tötet auch mehrfache Mutationen Deshalb reicht es immer nur eine Mutation aufs Mal durchzuführen Als Beispiel betrachten wir ein Testobjekt das vier Testfälle Bild 3 bestanden hat und mit diesen Testfällen eine hundertprozentige Code-Abdeckung erreicht Führt TESSY den Mutationstest mit den Standardeinstellungen für die Mutation wie in Bild 2 durch ergibt sich eine getötete Mutation und eine überlebende Mutation Bild 4 Im oberen linken Teil von Bild 4 ist die getötete Mutation Mutation caused test failure dargestellt Diese Mutation veränderte den relationalen Operator in der ersten if-Anweisung des Testobjekts hervorgehoben oben auf der rechten Seite von Bild 4 von < zu <= Dadurch schlägt ein Testfall fehl was beim Mutationstest positiv ist Deshalb ist diese Mutation auch mit einem grünen Häkchen gekennzeichnet Im unteren linken Teil von Bild 4 sieht man die überlebende Mutation Mutation survived all test cases die den relationalen Operator in der zweiten if-Anweisung des Testobjekts hervorgehoben unten auf der rechten Seite von Bild 4 von > zu >= verändert hat Kein Testfall hat diese Veränderung bemerkt Das ist bedenklich und muss untersucht werden Der Mutation Score ist das Verhältnis von getöteten zu allen Mutationen In Bild 5 ist der von TESSY ermittelte Mutation Score der vier Testfälle angeben Testfall 2 hat eine der zwei Mutationen getötet was 50 Prozent entspricht Weil er einen Mutanten getötet hat ist Testfall 2 mit einem grünen Häkchen in der Spalte Mmarkiert Die anderen drei Testfälle haben keinen Mutanten getötet und haben deswegen ein rotes Kreuz beziehungsweise einen Mutation Score von 0 Prozent Testfall 2 hat einen Mutanten getötet und hat somit eine höhere Qualität als die anderen Testfälle die keinen Mutanten getötet haben Das liegt am Wert für die Variable v1 in Testfall 2 Dadurch kommt es auf den relationalen Operator in der ersten if-Anweisung an Sowohl die Variable v1 als auch Bild 4 Resultat des Mutationstests das TESSY ermittelt hat Bild Hitex Bild 3 Das originale Testobjekt besteht diese vier Testfälle Bild Hitex