Beispiel 2: Testfall für Counter mit globaler/externer Variablen

In diesem Beispiel wird ein Test für den Funktionsbaustein myFB aus dem folgenden ST-Code erstellt und ausgeführt.

PROGRAM Counter
VAR
val1 : INT := 5;
val2 : INT := 10;
result : INT;
myFB1 : myFB;
END_VAR
VAR_GLOBAL
count : INT;
END_VAR
myFB1(in1 := val1, in2 := val2, out => result);
END_PROGRAM
 
FUNCTION_BLOCK myFB
VAR_INPUT
in1 : int;
in2 : int;
END_VAR
VAR_EXTERNAL
count : INT;
END_VAR
VAR_OUTPUT
OUT : INT;
END_VAR
 
if (count >= 0) THEN
OUT := in1 + in2;
ELSE
OUT := in1 * in2;
END_IF;
END_FUNCTION_BLOCK

Bei count0 ist das Ergebnis von myFB die Summe der beiden Einganswerte. Bei count < 0 ist ist das Ergebnis das Produkt der beiden Eingangswerte.
Im Unterschied zum Beispiel 1 enthält der Funktionsbaustein myFB eine →externe Variable, die zu testen ist. Die entsprechende →globale Variable befindet sich im Programm Counter, das hier nicht getestet wird.

So testen Sie den obigen Funktionsbaustein myFB:

  1. Erstellen Sie die Testsuite für myFB mit Hilfe des Befehls Testsuite erstellen. Details: Siehe "Testsuite erstellen".
    Ergebnis: Die Testsuite-Datei myFB.test und die Excel-Datei myFB.xlsm sind im gleichen Ordner wie das ST-Objekt vorhanden.

  2. Öffnen Sie die Excel-Datei, geben Sie die Testdaten im bereits vorhandenen Arbeitsblatt test myFB ein und speichern Sie die geänderte Excel-Datei.
    Das Arbeitsblatt enthält bereits die Spalten für die Variablen, die Eingangsdaten liefern. Das sind hier in1, in2 und count. Hier ist OUT als einzige Spalte für die Ausgänge (= erwartete Ergebnisse) enthalten.
    Sie entscheiden, wie viele Testsequenzen und welche Testdaten Sie für den Test eingeben. In diesem Beispiel wurden die folgenden Testsequenzen und Testdaten eingegeben:
    images/download/attachments/449904931/TF_TestsuiteExampleCounter2Modified-version-1-modificationdate-1596028558308-api-v2.png



    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Die Excel-Datei enthält auch andere Arbeitsblätter, die in diesem Beispiel nicht verwendet werden. Informationen über diese Arbeitsblätter finden Sie unter "Struktur der Excel-Testsuite, Arbeitsblätter bearbeiten".

  3. Übernehmen Sie alle Testdaten aus der Excel-Datei in die Testsuite-Datei myFB.test, in dem Sie die Excel-Datei importieren. Details: Siehe "Testsuite auf Basis der Excel-Datei für die Testdurchführung erstellen".

  4. Lassen Sie den Test ausführen, z.B. einen SiL-Test mit Testabdeckung. Details: Siehe "Test ausführen".
    Ergebnis der Testausführung: Die Konsole zeigt den Fortschritt und das Ergebnis der Testausführung.
    images/download/attachments/449904935/TF_TestsuiteExampleCounter2Console-version-1-modificationdate-1596028638991-api-v2.png



    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Falls Fehlermeldungen angezeigt werden, ist wahrscheinlich eine andere Version von logi.CAD 3 gestartet und/oder die Anwendung wurde bereits auf die SPS geladen. Siehe "Test ausführen" für die erforderlichen Schritte.

  5. Kontrollieren Sie die Testausführung. Details: Siehe "Testausführung kontrollieren".
    Bei einem SiL-Test mit Testabdeckung können Sie zusätzlich die Testabdeckung im Editor anzeigen lassen. Für das Beispiel wird diese Testabdeckung angezeigt:
    images/download/attachments/449904939/TF_TestsuiteExampleCounter2Coverage-version-1-modificationdate-1596028677208-api-v2.png



    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Für eine vollständige Testabdeckung der IF-Anweisung wären eigentlich nur 2 Testsequenzen im Test nötig. Lesen Sie unter "Anzeige der Testabdeckung im Editor" für Details nach.