Beispiel 5: Testfall für Addition mit Initialisierungswert für lokale Variable

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

FUNCTION_BLOCK testAddition_InitialValue
VAR_INPUT
IN1 : INT;
IN2 : INT;
END_VAR
VAR_OUTPUT
OUT1 : INT;
END_VAR
VAR
VAR1 : INT := 20;
END_VAR
OUT1 := IN1 + IN2 + Var1;
END_FUNCTION_BLOCK

Im Unterschied zum Beispiel 3 enthält der Funktionsbaustein testAddition_InitialValue einen →Initialisierungswert für die lokale Variable VAR1 , der im Test berücksichtigt werden soll.
Die Vorgehensweise beim Test dieses Funktionsbausteins ist analog zu den vorigen Beispielen und wird in diesem Beispiel nicht erneut angeführt. Stattdessen konzentriert sich dieser Artikel auf die nötigen Aktionen in der Testsuite für den Initialisierungswert.

Wie im Beispiel 3 enthält die erstellte Testsuite diese Daten:

images/download/attachments/500236786/TF_TestsuiteExampleAddition5a-version-1-modificationdate-1662713875295-api-v2.png


  • Das Arbeitsblatt Defaults enthält diese Daten:

    • VAR1 mit Wert 0 und Testmodus useTestValue

    • IN1 und IN2 mit Wert 0 und ohne einen Testmodus (Der Testmodus ist für Eingangsvariablen nicht relevant.)

  • Das Arbeitsblatt für den Testfall enthält diese Spalten:

    • IN1

    • IN2

    • VAR1

    • OUT

Damit der Initialisierungswert 20 aus der Anwendung im Test berücksichtigt wird, müssen Sie die Testsuite so anpassen:

images/download/attachments/500236811/TF_TestsuiteExampleAddition5b-version-1-modificationdate-1662714442467-api-v2.png


  1. Im Arbeitsblatt Defaults führen Sie diese Änderungen für Var1 durch:

    1. Löschen Sie den vorgegebenen Stimuli, sodass die Spalte Default Value keinen Wert für Var1 enthält.

    2. Tragen Sie den Testmodus useImplValue ein.

  2. Im Arbeitsblatt für den Testfall löschen Sie die Spalte Var1.

Wie üblich, tragen Sie im Arbeitsblatt für den Testfall auch die Testsequenzen und Testdaten ein . Dabei muss das erwartete Ergebnis für die Testsequenzen den Initialisierungswert 20 für Var1 berücksichtigen (damit der Testfall erfolgreich ausgeführt wird).

Wenn Sie diesen Testfall ausführen, zeigt die Konsole PASS als Ergebnis der Testausführung an. Grund: Aufgrund von useImplValue (und den fehlenden Stimuli/Testdaten für Var1 ) wird der Initialisierungswert 20 aus der Anwendung für VAR1 bei der Addition verwendet – und zwar bei beiden Testsequenzen.
Somit ergeben sich diese Berechnungen, die korrekt sind:

  • images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/check.svg Addition: 1 + 2 + 20 = 23

  • images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/check.svg Addition: 1 + 3 + 20 = 24