Anzeige der Testabdeckung im Editor
Dieser Artikel informiert, wie die Informationen zur Testabdeckung im entsprechenden Editor angezeigt werden. Lesen Sie unter "Test ausführen" nach, wie Sie diese Informationen zur Testabdeckung erstellen.
In diesem Artikel: |
---|
Testabdeckung im Editor anzeigen
So zeigen Sie die Testabdeckung an:
-
Öffnen Sie die getestete POE wie üblich im Standard-Editor (z.B. ein ST-Objekt im ST-Editor).
-
Im ST- oder FBS-Editor öffnen Sie das Kontextmenü und wählen den Befehl Testabdeckung ein-/ausblenden aus. Alternative: Drücken Sie Alt+Strg+C.
Im KOP-Editor drücken Sie auf das Element in der Palette.
Ergebnis: Die Informationen zur Testabdeckung werden im Editor angezeigt:
Anzeige im ST-Editor
Die Hintergrundfarbe der Zeile im ST-Editor informiert über die Testabdeckung des Codes in der Zeile:
Bedeutung der Hintergrundfarbe:
-
Grün = vollständig abgedeckt
-
Gelb = teilweise abgedeckt
-
Rot = nicht abgedeckt
Sie können die Farben in den Benutzervorgaben ändern: Menü Fenster, Benutzervorgaben, Gruppe Allgemein, Editoren, Texteditoren, Anmerkungen.
Um Details zur Testabdeckung zu erhalten, zeigen Sie am besten auf eine Zeile oder das Symbol im Rand links vom Code.
Beachten Sie außerdem Folgendes:
-
Für eine Zuweisung eines Array-Elements und eine Zuweisung auf ein Array-Element wird eine vollständige Testabdeckung nur angezeigt, falls auch ein Test für den Zugriff auf ein ungültiges Array-Index ausgeführt worden ist.
Beachten Sie den folgenden Unterschied bei der Anzeige der Testabdeckung:
-
Für die Zuweisung auf das Array-Element
array1[index]
wird die gelbe Hintergrundfarbe für eine teilweise Testabdeckung angezeigt. Grund: Hier wurde auch ein Test für den Zugriff auf ein ungültiges Array-Index ausgeführt. -
Für die Zuweisung auf das Array-Element
array2[index]
wird die grüne Hintergrundfarbe für eine vollständige Testabdeckung angezeigt. Grund: Hier wurde auch ein Test für den Zugriff auf ein ungültiges Array-Index ausgeführt.
-
-
Falls eine Anweisung wie im Folgenden auf mehrere Zeilen aufgeteilt ist, wird die Testabdeckung nur für die erste Zeile der Anweisung angezeigt:
-
Zusätzliche Beispiele: siehe "Beispiele für Testabdeckung im ST-Editor".
Es ist möglich, dass die Informationen zur Testabdeckung für bestimmte Szenarien im ST-Editor nicht korrekt erzeugt werden. Siehe "Einschränkungen zur Anzeige der Testabdeckung im ST-Editor". |
Beispiele für Testabdeckung im ST-Editor
Ausgangsszenario: Eine POE mit der Eingangsvariable inputForTest
ist deklariert. Für diese POE ist ein Testfall vorhanden. Der Testfall spezifiziert eine Testsequenz mit dem Eingangswert 0
für inputForTest
.
Bei der Testausführung mit Testabdeckung ergeben sich die folgenden Beispiele:
ST-Anweisung |
Darstellung |
Erläuterung |
---|---|---|
|
Die vollständige Testabdeckung für eine
Zeile mit gelber Hintergrundfarbe – Ursache für die nicht vollständige Testabdeckung: Der Zeile mit grüner Hintergrundfarbe – Ursache für die vollständige Testabdeckung: Die →Zuweisung wurde ausgeführt. |
|
|
Die vollständige Testabdeckung für eine
Zeile mit gelber Hintergrundfarbe – Ursache für die nicht vollständige Testabdeckung: Der Zeile mit grüner Hintergrundfarbe – Ursache für die vollständige Testabdeckung: Die Anweisungen unterhalb der Marke Zeile mit roter Hintergrundfarbe – Ursache für fehlende Testabdeckung: Die Anweisungen unterhalb der Marke |
|
|
Die vollständige Testabdeckung für eine
Zeile mit gelber Hintergrundfarbe (mit |
Einschränkungen zur Anzeige der Testabdeckung im ST-Editor
Nicht korrekte Details für Testabdeckung
Wenn Sie auf eine Zeile oder das Symbol im Rand links vom Code zeigen, erhalten Sie Details zur Testabdeckung. Falls Zweige im Code erhalten sind (siehe "Beispiele für Testabdeckung im ST-Editor" für Details zu den Zweigen), erhalten Sie dabei auch Informationen zur Testabdeckung dieser Zweige, z.B. die Nummerierung der Zweige. Bei unbedingten Zweigen (auch als "Unconditional Branches" bekannt) ist es möglich, dass die Nummerierung der Zweige Lücken aufweisen kann.
Beispiel: Die Meldung Partially Covered: branch 0 was taken 10 times, branch 1 was never executed, branch 4 was taken 10 times, branch 5 was never executed
ist eine zutreffende Information zur Testabdeckung, obwohl die genannten Zweige eine Lücke in der Nummerierung aufweisen, nämlich: Branch 0
, Branch 1
und Branch 4
, Branch 5
.
Nicht zutreffende Testabdeckung
Für die folgenden Szenarien wird eine nicht zutreffende Testabdeckung erzeugt. In Folge wird in diesen Fällen eine Testabdeckung angezeigt, die nicht der tatsächlichen Testausführung entspricht.
Szenario 1: Der spezifizierte Eingangswert wird für die CASE-Marke und in der Bedingung in der enthaltenen IF-Anweisung verwendet.
Falls ein Test für den folgenden Funktionsbaustein FB1
ausgeführt wird und darin eine Testsequenz mit dem Eingangswert 2
für Var1
spezifiziert ist, wird eine vollständige Testabdeckung für die Zeile IF Var1 = 2 THEN
angezeigt.
Diese Anzeige der vollständigen Testabdeckung ist nicht zutreffend. Der Zweig 1, 2, 33..44
der CASE
-Anweisung wurde nicht vollständig abgedeckt. Der Testfall müsste eine zusätzliche Testsequenz mit einem Wert ≠ 2
enthalten, damit die CASE
- und die IF
-Anweisung wirklich vollständig abgedeckt sind.
|
Szenario 2: Der spezifizierte Eingangswert wird für die CASE-Marke verwendet, eine IF-Anweisung ist in der CASE-Anweisung enthalten.
Falls ein Test für den folgenden Funktionsbaustein FB2
ausgeführt wird und darin eine Testsequenz mit dem Eingangswert 1
für Var2
spezifiziert ist, wird eine vollständige Testabdeckung für die Zeile IF z = 3 THEN
angezeigt.
Diese Anzeige der vollständigen Testabdeckung ist nicht zutreffend. Da der ELSE
-Zweig nicht ausgeführt wurde, ist diese IF
-Anweisung nur teilweise abgedeckt. Auch wenn der Testfall eine zusätzliche Testsequenz mit einem anderen Wert enthält, ist die IF
-Anweisung aufgrund der vorgegebenen ST-Logik trotzdem nie vollständig abgedeckt.
|
Anzeige im FBS-Editor
Für die Testabdeckung im FBS-Editor sind nur die →Aufrufe von Bausteinen relevant. Eine teilweise Abdeckung ist nur bei Aufrufen von SEL
-Bausteinen oder von MUX
-Bausteinen (siehe unter Select-Funktionen) und bei Aufrufen mit verbundenem EingangEN
möglich.
Ein Symbol informiert über die Testabdeckung des Aufrufs.
-
= vollständig abgedeckt
-
= teilweise abgedeckt
Ein rotes Symbol für "nicht abgedeckt" wird im FBS-Editor nicht angewendet.
Siehe "Beispiele für Testabdeckung im FBS-Editor".
Beispiele für Testabdeckung im FBS-Editor
Der Aufruf des NOT
-Bausteins ist vollständig abgedeckt.
Anzeige im KOP-Editor
Für die Testabdeckung im KOP-Editor sind die Kontakte und die →Aufrufe von Bausteinen (analog zur Anzeige im FBS-Editor) relevant.
Auch hier informiert Sie ein Symbol über die Testabdeckung im KOP-Editor:
-
= vollständig abgedeckt
-
= teilweise abgedeckt
-
= nicht abgedeckt