Skip to main content

Allgemein

Der CODESYS Test Manager ist ein Testframework für in CODESYS geschriebene Software. Sie können mit dem Testframework automatisierte Tests ausführen, um die Korrektheit von Software in unterschiedlichen Teststufen nachzuweisen. Die Einstufung des Tests erfolgt gemäß dem Vorgehensmodell der Softwareentwicklung, in dem jeder Stufe der Softwareentwicklung ein Test gegenübersteht. Wenn Sie entschieden haben, in welcher Stufe getestet wird, können Sie daraus ableiten, wie Ihr Test zu implementieren ist.

  • Systemtest

    Ziel eines Tests kann der Nachweis sein, dass eine Applikation, eine Bibliothek oder eine Kommunikationsverbindung korrekt funktionieren. Oder Sie wollen mit einem Test nachweisen, dass ein Laufzeitsystem oder ein Codegenerator dauerhaft fehlerfrei arbeiten. Prüfling ist dabei ein System. Solche Tests werden üblicherweise als Systemtest eingestuft: Beim Systemtest wird ein System vollständig gegen funktionale aber auch nichtfunktionale Anforderungen getestet. Die Testumgebung simuliert dabei die spätere Produktionsumgebung und sollte deshalb so realitätsnah wie möglich sein.

  • Integrationstest

    Ein Integrationstest (Interaktionstest) überprüft die Zusammenarbeit voneinander abhängiger Komponenten. Der Testschwerpunkt liegt dabei auf den Schnittstellen der beteiligten Komponenten. Das Testziel ist der Nachweis von korrekten Ergebnisse über komplette Abläufe hinweg.

  • Unittest

    Ziel eines Tests kann der Nachweis sein, dass ein Stück Code, ein Codeschnipsel oder eine Programmiereinheit in IEC-Sprache korrekt funktioniert. Prüfling ist dabei nur dieser Code. Solche Tests werden üblicherweise als Unittest eingestuft. Ein Unittest (Komponententest oder Modultest) ist ein Test auf der Ebene der einzelnen Komponenten der Software. Testgegenstand ist die Funktionalität innerhalb einzelner abgrenzbarer Teile der Software (Programm, Funktionsbaustein, Methode oder Eigenschaft). Testziel ist der Nachweis der technischen Lauffähigkeit und der Erhalt von korrekten fachlichen (Teil-) Ergebnissen. Oftmals werden Unittests durch den Softwareentwickler selbst durchgeführt (Test Driven Development).

Sie realisieren einen Systemtest, indem Sie ein Testskript implementieren, das einen Testlauf aus Testfällen und Testaktionen realisiert. Das zugehörige Testprojekt enthält eine übersetzbare Applikation mit den Systemeinstellungen des Testsystems.

Sie realisieren einen Unittest oder einen Integrationstest, indem Sie ein Testprojekt entwickeln, das den Prüfling enthält und zusätzlichen Code, der ihn testet. Sie haben die Wahl, den Testcode formal als Testtabelle oder programmatisch als Testbaustein oder Multitestbaustein zu implementieren. Parallel implementieren Sie ein passendes Testskript, das das Testelement IEC-Unittest enthält. Eventuell können Sie noch Testfälle mit Aktionen hinzufügen. Das Testelement IEC-Unittest bewirkt, dass bei der Testausführung zunächst das Testprojekt geöffnet und aus dessen Code eine Testapplikation gebaut wird.

In jedem Fall implementieren Sie einen Test als ablauffähiges Testskript zusammen mit einem Testprojekt. Dann werden beim Testlauf die Testfälle auf dem Testsystem ausgeführt, bewertet und aus dem Ergebnis ein Report generiert.

Grundlegende Vorgehensweise

Prozedur. Automatischen Test erstellen
  1. Erstellen Sie in CODESYS ein Testprojekt.

  2. Legen Sie gegebenenfalls ein Testrepository an.

  3. Erstellen Sie im Test Manager ein Testskript und programmieren Sie das Testskript mit Testelementen.

    Hinweis: Das Testskript arbeitet in der Regel mit dem Inhalt des Testprojekts. Beispielsweise benötigt die Testtreiberaktion DeleteObjects ein Objekt aus dem Testprojekt.

Prozedur. Automatischen Test ausführen
  1. Starten Sie das Testskript im Test Manager.

    Sie erhalten einen Report im zugehörigen Testrepository.

  2. Exportieren Sie den Report als HTML-Dokument.

    Sie können den Report in einem Browser öffnen.

  3. Beheben Sie die ermittelten Fehler.

Tipp

Sie können mit Hilfe von Kommandozeilenbefehlen den CODESYS Test Manager außerhalb von CODESYS aufrufen. Damit können Sie den Testmanager in ein System permanent integrieren (continuous integration), ohne CODESYS zu starten.