Was ist Code Coverage?
Die Codeabdeckung wird als die Kennzahl bezeichnet, mit der der Grad des Quellcodes des Programms beschrieben wird, der getestet werden muss. Kurz gesagt, die Codeabdeckung ist eine Art der White-Box-Testtechnik, bei der wir die Teile des Programms lokalisieren, die von den festgelegten Testfällen nicht ausgeführt wurden. Sie fließen auch in die Erstellung weniger Testfälle ein, um die Abdeckung zu erhöhen und das recht gute Maß für die Codeabdeckung zu bestimmen. In vielen Fällen sammelt dieses System jedoch Informationen zum laufenden Programm. Die Codeabdeckung enthält darüber hinaus Informationen zum Quellcode, um den Bericht zur Codeabdeckung der Testsuite zu erstellen.
Wie funktioniert Code Coverage?
Es gibt tatsächlich verschiedene Ansätze zur Messung der Codeabdeckung. Wenn wir es allgemein betrachten, gibt es drei der folgenden Ansätze:
- Quellcodeinstrumentation: Die Quellcodeinstrumentation fügt die Instrumentationsanweisungen zum Quellcode hinzu und kompiliert dann den Code zusammen mit dem normalen Kompiliertool, um eine instrumentierte Assembly zu erhalten.
- Intermediate Code Instrumentation: In der Intermediate Code Instrumentation werden kompilierte Dateien durch Hinzufügen der neuen Bytecodes instrumentiert und anschließend die neue Klasse generiert.
- Sammlung von Laufzeitinformationen: In der Sammlung von Laufzeitinformationen erfassen wir die Informationen aus der Umgebung, in der sich die Laufzeit befindet, da Code ausgeführt wird, um die Abdeckungsinformationen zu ermitteln.
Da der Code während des Tests ausgeführt wird, sammelt das Codeabdeckungssystem Informationen darüber, welche der Anweisungen ausgeführt werden. Diese Informationen würden nun als Grundlage für die Berichte dienen. Darüber hinaus unterscheiden sich die Codeabdeckungsmethoden in Abhängigkeit von den verschiedenen Formen der erfassten Abdeckungsinformationen. Es gibt verschiedene Methoden der Codeabdeckung, wenn wir über die grundlegenden Methoden der Anweisungsabdeckung hinausgehen.
Methoden der Codeabdeckung
Es gibt viele Methoden zur Codeabdeckung. Einige von ihnen sind unten aufgeführt:
- Zustandsabdeckung
- FSM-Abdeckung
- Anweisungsabdeckung
- Entscheidungsabdeckung
- Zweigabdeckung
1. Berichterstattung
- Es ist die White-Box-Test-Entwurfstechnik, bei der wir uns mit der Ausführung aller ausführbaren Anweisungen befassen, die mindestens einmal im Quellcode vorhanden sind. Code-Coverage wird sowohl für die Berechnung als auch für die Messung vieler im Quellcode vorhandener und ausführbarer Anweisungen benötigt, sofern die Anforderungen erfüllt sind.
- Diese Methode wird für die Ableitung der Szenarien benötigt, abhängig von der Struktur des Codes, der im Test vorhanden ist.
2. Geltungsbereich der Entscheidung
- Diese Methode ist nützlich, um entweder die wahren oder die falschen Ergebnisse jedes Ausdrucks zu melden, der boolesch ist. Die Ausdrücke in dieser Berichterstattung werden häufig kompliziert. Deshalb ist es ziemlich schwierig, eine 100% ige Abdeckung zu erhalten.
- Genau aus diesem Grund gibt es verschiedene Methoden, um diese Art von Metrik zu melden. Diese gesamten Methoden befassen sich im Wesentlichen mit der Erfassung der wichtigsten Kombinationen. Decision Coverage bietet eine hohe Empfindlichkeit, um den Fluss zu steuern.
3. Branch Coverage
- Wenn wir über diesen Typ sprechen, meinen wir, dass jede Ausgabe, die vom Codemodul kommt, getestet wird. Als Beispiel können wir betrachten, dass im Falle, dass die Ausgänge binär sind, wir sowohl True- als auch False-Ausgänge testen werden.
- Die Zweigabdeckung hilft uns sicherzustellen, dass alle möglichen Zweige, die aus jeder Entscheidung stammen, die Bedingung mindestens einmal ausgeführt werden.
- Mit der Branch-Coverage-Methode können wir den Anteil der Codesegmente berechnen, die unabhängig sind. Außerdem können wir mit dieser Methode herausfinden, in welchen Codeabschnitten die Verzweigungen fehlen.
Es gibt die Formel zur Berechnung der Filialabdeckung:
Zweigabdeckung = Anzahl der ausgeführten Zweige / Gesamtanzahl der ausgeführten Zweige
4. Bedingungsdeckung
- Die Bedingungsüberdeckung, die auch als Ausdrucksüberdeckung bezeichnet wird, gibt an, wie die in der bedingten Anweisung vorhandenen Variablen oder Unterausdrücke ausgewertet werden.
- Betrachten wir ein Beispiel, in dem ein Ausdruck aus den Booleschen Operationen wie AND, OR oder XOR besteht, die aus der Gesamtzahl der Möglichkeiten bestehen.
- Diese Methode bietet uns eine viel bessere Empfindlichkeit für die Steuerung des Flusses als die Entscheidungsabdeckung. Diese Methode gibt uns keine Garantie für die vollständige Entscheidungsabdeckung.
Es gibt die Formel zur Berechnung der Filialabdeckung:
Bedingungsumfang = Anzahl der ausgeführten Operanden / Gesamtanzahl der ausgeführten Operanden
5. Berichterstattung über endliche Automaten
- Diese Methode wird als die komplexeste Codeabdeckungsmethode angesehen. Der Grund dafür ist, dass diese Methode tatsächlich das Verhalten des Entwurfs beeinflusst.
- Außerdem müssen wir bei dieser Methode herausfinden, wie viele der zeitspezifischen Zustände besucht und durchlaufen werden. Darüber hinaus überprüft auch diese Methode, wie viele der Sequenzen in der Zustandsmaschine berücksichtigt werden.
Vorteile der Codeabdeckung
Einige der Vorteile sind nachfolgend aufgeführt:
- Es ist sehr nützlich bei der Bewertung des quantitativen Maßes der Code-Abdeckung
- Dies ermöglicht uns auch die Erstellung zusätzlicher Testfälle, um die Abdeckung zu erhöhen
- Die Codeabdeckung ermöglicht es uns auch, die Teile des Programms zu lokalisieren, die von den Testfällen nicht ausgeübt werden.
Nachteile der Codeabdeckung
Einige der Nachteile sind nachfolgend aufgeführt:
- Wenn eine bestimmte Funktion im Design nicht gut implementiert ist, wird weiterhin eine Abdeckung von 100% gemeldet.
- Es ist unmöglich zu verstehen, ob Sie alle möglichen Werte der Funktion anhand der Codeabdeckung testen
- Es sagt auch nichts darüber aus, wie viel und wie gut wir unsere Logik abgedeckt haben.
Fazit
Die Codeabdeckung wird als das Maß betrachtet, in dem wir den Grad beschreiben, in dem der Quellcode eines Programms getestet wurde. Es hilft uns auch, die Effizienz der Testimplementierung zu berechnen. Anweisungsüberdeckung bedeutet auch, dass alle ausführbaren Anweisungen mindestens einmal ausgeführt werden.
Empfohlene Artikel
Dies ist eine Anleitung zur Codeabdeckung. Hier diskutieren wir die Methoden und wie Code Coverage funktioniert? zusammen mit Vor- und Nachteilen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -
- Wie erleichtert die Testabdeckung das Arbeiten?
- Verschiedene GUI-Testwerkzeuge
- Arten von Mutationstests
- Was ist CodeIgniter?
- Tools zur Codeabdeckung | Top 6 Code-Coverage-Tools
- Was ist ein Testfall? | Tipps und Tricks