Testautomatisierung

Unittest-Framework

Unit Tests dienen dazu die kleinste Einheit (Unit) zu testen. Das kann eine einzelne Funktion oder eine einzelne Methode einer Klasse sein.

Da die Erstellung und Auswertung solcher Tests wiederum fehleranfällig ist, hilft es einen gewissen Rahmen zu haben in dem man die entsprechenden Tests schreiben und später, möglichst automatisiert, ausführen kann.

Für die laufende Qualitätssicherung von Quellcode ist es notwendig die einzelnen Programmteile regelmäßig zu testen und das Ergebnis zu kontrollieren. Automatisierte Testsysteme nehmen den Entwicklern hier viel Arbeit ab, da diese parallel die geänderten Codeteile sofort prüfen können.

Es stellen sich aber immer wieder folgende Fragen

Wie gut ist mein Test?
Erreiche ich alle Codeteile?
Erreiche ich den geänderten Teil?

Die Bibliothek liefert die Antworten auf diese Fragen.


SCCX

"Traue nur Tests, von denen du weisst, dass sie auch sicher das Testareal abdecken."


Clean Code Developer

    Die einfach schnelle Lösung zur Ermittlung und grafischen Auswertung der Testabdeckung
    in IEC61131-3 Structured Text / ST / SCL



    Um in Erfahrung zu bringen welche Codebereiche nicht durch Tests abgedeckt sind kommt die Codecoverage Analyse zum Einsatz.


Nach Abschluss des Testlaufs kann das Ergebnis im Buildserver automatisch grafisch ausgewertet werden.



Überblick über die ausgeführten Testfälle

JUnit tabellarische Auswertung

Tabellarische Übersicht aller Testfälle

erfolgreich ausgeführt
übersprungen
fehlerhaft
nicht vorhanden
Dauer

JUnit zeitliche Auswertung

Zeitlicher Verlauf der ausgeführten Testfälle

erfolgreich ausgeführt
übersprungen
fehlerhaft
Dauer


Auswertung des Codeabdeckung

Cobertura Auswertung markiert im Code

Ermittlung und Anzeige der Testabeckung
Dabei werden folgende Informationen ersichtlich:

Anweisung ausgeführt (grün)
Anweisung ausgelassen (rot)
Wie oft wurde die Anweisung ausgeführt
Berechnung der Abdeckung in %
      Bausteine
      Methoden
      Anweisungen


Vorteile



    für die eigene Entwicklungsabteilung


    es ergibt sich sehr schnell ein Bild über die Testqualität.

    es ist sofort ersichtlich an welchen Stellen noch Lücken sind.


    für Kunden bei der Validierung von Updates


    wurde der geänderte Teil durchlaufen?

    wurde der "alte" Code beeinflusst? (Regressionstest)



    Durch die Kombination aus Versionsverwaltung, Testfalldokumentation und dem Ergebnis aus dem Testlauf lassen sich vielfältige Informationen gewinnen und somit die Stabilität des Programms deutlich erhöhen.







Features


    • open source -> DOWNLOADS

    • verfügbar für Twincat 3

    • objektorientiert

    • Start über Hardwareeingang oder Variablenzugriff

    • Testkonfiguration

      • statisch (Deklaration im Projekt)
      • dynamisch (XML Auswertung per Skript)
    • automatisierte Erstellung der Testumgebung

    • automatisierte Durchführung/Start der Testumgebung

    • grafische Auswertung der Testfälle über JUnit XML Format

    • grafische Auswertung der Codeabdeckung über Cobetura XML Format

      • Anweisungsüberdeckung C0



mehr erfahren




Roadmap


    • Auswertung Zweigüberdeckung C1

    • Automatische Testerstellung

      • Testdefinition über Kommentare im Quellcode
    • Umsetzung Sigmatek Lasal

    • Umsetzung Bachmann PLC-Developer

    • Umsetzung Codesys V3



Durch die Kombination aus Versionsverwaltung, Testfalldokumentation und dem Ergebnis aus dem Testlauf lassen sich vielfältige Informationen gewinnen und somit die Stabilität des Programms deutlich erhöhen.
Testlabor

In unserem Testlabor können wir Kundenapplikationen im Auftrag testen.




    Für Unit- ,Komponenten, Performance oder Systemtests stehen diverse Steuerungssysteme (Bachmann, Beckhoff, Sigmatek) zur Verfügung.
    Tests können also innerhalb der jeweiligen Echtzeitumgebung ausgeführt werden.