Funktion RIGHT testen und Fehler ermitteln
Das Beispiel zeigt die Prüfung der Stringfunktion RIGHT
der Bibliothek Standard
. Der Testcode wird mit einer Testtabelle konfiguriert.
Mit Testtabellen können Sie nur Funktionsbausteine testen. Um eine Funktion zu testen, implementieren Sie einen Wrapper-Funktionsbaustein: Sie implementieren einen Funktionsbaustein, der diese Funktion aufruft und die Eingänge und Ausgänge der Funktion abbildet und diese 1:1 an die Funktion durchreicht. Wenn dann der Wrapper-Funktionsbaustein der Prüfling ist, wird indirekt die Funktion getestet.
Prüfprojekt erstellen
Erstellen Sie mit dem Projektassistenten ein neues Standardprojekt
Project_RIGHT
für die vorhandene Steuerung.Das Projekt ist mit Applikation, Programm
PLC_PRG
und Gerät erstellt.Selektieren Sie das Objekt Applikation im Gerätebaum.
Wählen Sie den Befehl
.Wählen Sie das Objekt POU aus.
Der Dialog POU hinzufügen öffnet sich.
Geben Sie den Namen
FB_RIGHT
ein.Wählen Sie den Typ Funktionsbaustein und die Implementierungssprache Strukturierter Text (ST).
Klicken Sie auf Hinzufügen.
Der Funktionsbaustein ist erstellt.
Geben Sie im Funktionsbaustein
FB_RIGHT
folgende Deklaration ein:VAR_INPUT strCompleteString : STRING(255); iSize: INT; END_VAR VAR_OUTPUT strResult : STRING (255); END_VAR
Geben Sie im Funktionsbaustein
FB_RIGHT
folgende Implementierung ein:strResult := right(strCompleteString,iSize);
Der Prüfling ist erstellt. Der Wrapper-Funktionsbaustein ruft die zu testende Funktion auf. Die Eingänge und Ausgänge werden durchgereicht.
Testtabelle erstellen
Selektieren Sie das Objekt Applikation im Gerätebaum.
Wählen Sie den Befehl
.Wählen Sie das Objekt Testtabelle aus.
Der Dialog Testtabelle hinzufügen öffnet sich.
Geben Sie den Namen
TestTable_RIGHT
ein.Wählen Sie einen Prüfling. Klicken Sie dazu auf die Schaltfläche
.
Wählen Sie den Baustein
FB_RIGHT
aus.Klicken Sie auf die Schaltfläche Prüfling durchsuchen.
Eine Liste aller Eingänge und Ausgänge des Funktionsbausteins erscheint.
Aktivieren Sie alle Eingänge und alle Ausgänge.
Die aktivierten Variablen werden automatisch in der Testtabelle in der Registerkarte Tabelleneditor als Spalten eingefügt.
Klicken Sie auf die Schaltfläche Hinzufügen.
Die Testtabelle wird unterhalb der Applikation eingefügt. Es fehlen die Eingangs- und Ausgangsbelegungen.
Testtabelle konfigurieren
Wählen Sie die Registerkarte Tabelleneditor.
Selektieren Sie die Zeile <Zum Erzeugen eines Testfalls hier tippen> und geben Sie den Namen
TC 1: empty string
ein.Selektieren Sie die Zeile <Zum Erzeugen eines Testschritts editieren> und geben Sie den Namen
Test 1
ein.Geben Sie folgende Daten in die Testtabelle ein:
Test 1: Der Testschritt ermittelt aus einem leeren String die letzten zwei Zeichen. Das Ergebnis ist ebenfalls ein leerer String. Diese Prüfung liefert ein positives Ergebnis.
Test 2: Der Testschritt ermittelt aus dem String
'hello world'
die letzten 5 Zeichen. Das Ergebnis ist'world'
. Diese Prüfung liefert ein positives Ergebnis.Test 3: Der Testschritt ermittelt aus dem String
'hello world'
die letzten 8 Zeichen. Das Ergebnis ist'lo world'
. Diese Prüfung liefert ein negatives Ergebnis.
IEC-Unittest ausführen
Tipp
Der Testablauf, der im Testskript erstellt ist, beinhaltet vor Aufruf eines IEC-Unittests immer auch vorbereitende Testaktionen. Ein Beispiel dazu zeigt das Skript ApplicationTest
, das mit dem Package installiert wird. Dort sind die vorbereitenden Testaktionen im Testfall Prepare
zusammengefasst.
Erstellen Sie ein neues Testskript.
Führen Sie den Befehl
aus.Die Ansicht Test Manager öffnet sich.
Selektieren Sie den Eintrag Testskripte und führen Sie den Befehl aus.
Ein neues Testskript wird hinzugefügt.
Führen Sie einen Doppelklick auf das neue Testskript aus.
Das Testskript öffnet im Editor.
Selektieren Sie das Testskript im Editor und führen Sie den Befehl
aus.Ein IEC-Unittest wird zum Testskript hinzugefügt.
Fügen Sie vor dem IEC-Unittest die vorbereitenden Testaktionen ein (siehe Beispiel
IecUnitTest
).Überprüfen Sie die Verbindungseinstellungen und starten Sie die Steuerung
Control Win V3
.Klicken Sie auf die Schaltfläche Speichern + Starten.
Das Testskript wird ausgeführt.
Nach der Durchführung des Testskripts erscheint der Testreport.
Zuerst wird das Projekt nach Testtabellen durchsucht. Das Ergebnis ist die Testtabelle
TestTable_RIGHT
. In dieser Testtabelle ist der FunktionsbausteinFB_RIGHT
als Prüfling eingetragen.Für den Prüfling werden nun Testbausteine instanziert. Pro Testfall ein Testbaustein: für den Testfall 1 der Testbaustein
TestTable_RIGHTTestee
und für den Testfall 2 der TestbausteinTestTable_RIGHTTestee_1
.Die Testbausteine dienen der Parameterprüfung.
Entsprechend den Eingangs- und Ausgangsbelegung in der Testtabelle werden die Testbausteine
TestTable_RIGHTTesttable_RIGHTTC1Emptystring (FB)
undTestTable_RIGHTTesttable_RIGHTTC1Validstring (FB)
für die Testfälle 1 und 2 instanziert. Diese Funktionsbausteine führen den Prüfling aus. Dabei werden Eingänge gesetzt und die Ausgänge auf Ergebnis geprüft.
Wichtig
Beachten Sie Folgendes, bevor Sie den Test erneut ausführen: Löschen Sie die Applikation Backup und entfernen Sie im Programm PLC_PRG
die automatisch eingefügten Zeilen, die mit Kommentaren gekennzeichnet sind.
Prüfling mit negativem Testergebnis untersuchen
Der Testreport listet das Ergebnis des Testlaufs für jeden einzelnen Testschritt auf. Wenn ein Testschritt mit Fehler durchlaufen wird, wird im Report der erwartete und der tatsächlichen Wert der überprüften Variable ausgegeben. Sie können nach Testablauf die dabei generierte Testapplikation ausführen und den Fehler beheben (debuggen).
Im Testreport ist ein Testbaustein mit fehlerhafter Prüfung als Failed
(in roter Schrift) gekennzeichnet. In dieser Zeile steht auch der Name des erzeugten Testbausteins, im Beispiel TestTable_RightTestee_1
.
Wählen Sie den Befehl
.Sie können mit der Steuerung kommunizieren.
Öffnen Sie in der Ansicht POU den Funktionsbaustein
FB_RIGHTTestee_1 (FB)
.Setzen Sie den Cursor in die erste Zeile des Funktionsbausteins und klicken Sie F9.
Ein Haltepunkt ist gesetzt.
Öffnen Sie das Programm
PLC_PRG
im Editor.Expandieren Sie im Deklarationsteil die Variable
instFB_RIGHTTESTTABLE_RIGHTTC2VALIDSTRING
.Klicken Sie in das Feld Vorbereiteter Wert der Variablen
xExecute
(in KlasseETrigA
).Als vorbereiteter Wert wird
TRUE
angezeigt.Wählen Sie den Befehl Strg + F7).
(Die Variable wird auf
TRUE
gesetzt (Forcen).Starten Sie das Programm mit dem Befehl F5).
(Das Programm startet und bleibt in der Abarbeitung an dem Haltepunkt im Funktionsbaustein
Test_RightTestee_1
stehen.Wählen Sie den Befehl
.Der Programmablauf springt in den FB
instFB_RIGHTTESTTABLE_RIGHTTC2VALIDSTRING
.Sie können nun die Funktionsbausteine schrittweise abarbeiten und so die Eingangs- und Ausgangswerte beobachten.