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.
24 Elektronik 06 2021 Entwicklungstools Testfalls getötet sondern durch eine Endlosschleife und dem dadurch ausgelösten Timeout TESSY bewertet diese Mutation als getötet Äquivalente Mutationen sind problematisch Das Hauptproblem des Mutationstests sind äquivalente Mutationen Sie verändern das Verhalten des Testobjekts nach außen nicht weshalb eine solche Mutation nicht durch einen Testfall getötet werden kann Daher muss man alle überlebenden Mutationen aufwendig manuell daraufhin überprüfen ob es sich um eine äquivalente Mutation handelt oder nicht Hilfreich ist es in diesem Fall jedoch wenn wie bei TESSY immer nur eine Mutation vorgenommen wird Äquivalente Mutationen kann man wie getötete Mutationen betrachten sie weisen nicht auf mangelhafte Testfälle hin Bild 7 zeigt eine äquivalente Mutation Die Änderung des relationalen Vergleichsoperators von > zu >= erzeugt keine nach außen sichtbare Wirkung und lässt sich deshalb auch durch keinen Testfall töten Aber für den Eingabewert 0 ergibt sich durchaus ein anderes internes Programmverhalten im Originalcode wird der else-Zweig Bild 6 Eine Endlosschleife tötet den Mutanten Bild Hitex Bild 7 Ein Beispiel für eine äquivalente Mutation Bild Hitex der if-Anweisung durchlaufen in der Mutation der then-Zweig Mutationstest in IEC-ISO-Standards Die IEC 61508 bezeichnet den Mutationstest als »Durchführung von Testfällen nach Fehlereinpflanzung« und empfiehlt dies für SIL 2 bis 4 in Tabelle B 2 von Teil 3 Die ISO 26262 erwähnt »Code Mutations« lediglich in einer Fußnote zur Methode »Fault Injection Test« in Tabelle 7 von Teil 6 die Methoden zur Software-Unit-Verifikation aufführt Allerdings werden hier »Code Mutations« in einen Topf mit Verfahren des Robustheitstests wie das willkürliche Verändern Korrumpieren von Datenspeicher oder CPU-Registern geworfen Durch das Korrumpieren beispielsweise von Werten von Variablen im Datenspeicher liest das Testobjekt nicht die Werte zurück die dort vorher abgespeichert waren Das Testziel einer solchen Fehlerinjektion Fault Injection ist es herauszufinden ob das Testobjekt damit zurechtkommt Konkreter formuliert Erkennt beispielsweise aufgrund redundanter Speicherung der Werte das Testobjekt beispielsweise einen Bitflip durch kosmische Strahlung und reagiert es geeignet darauf? Eine solche Fragestellung unterscheidet sich fundamental vom Ziel des Mutationstests nämlich die Qualität der Testfälle zu bewerten und durch bessere Testfälle möglicherweise Programmierfehler aufzudecken Automatisierte Tests Mit Mutationstest lassen sich mangelhafte Testfälle aufdecken Deren Verbesserung erhöht die Chance Fehler in der getesteten Software zu finden Deshalb bewerten Mutationstest nicht nur die Güte der Testfälle sondern tragen auch zu einer besseren Qualität der getesteten Software bei In TESSY lassen sich solche Tests ohne weiteren Aufwand automatisiert vornehmen KV Litratur 1 A Jefferson Offut Clemson University Investigations of the software testing coupling effect in ACM Transactions on Software Engineering and Methodology New York Volume 1 Issue 1 Jan 1992 2 DIN EN 61508 VDE 0803 2011-02 DIN Deutsches Institut für Normung e Vund VDE Verband der Elektrotechnik Elektronik Informationstechnik e V IEC 61508 2010 3 ISO 26262 International Standard Road vehicles Functional Safety Second edition 2018 4 Liggesmeyer Peter Software-Qualität Testen Analysieren und Verifizieren von Software 2 Auflage Heidelberg Berlin 2009 Spektrum Akademischer Verlag ISBN 978-3-8274-2203-3 5 Dirk W Hoffmann Software-Qualität Springer-Verlag Berlin Heidelberg 2008 ISBN 978-3-642-35700-8 Frank Büchner hat ein Diplom in Informatik und widmet sich seit vielen Jahren dem Thema Testen und Softwarequalität Momentan arbeitet er als Principal Engineer Software Quality bei der Firma Hitex in Karlsruhe frank buechner@hitex de