Testautomatisierung
  • testing
  • testing
  • testing
  • testing


Test-Framework



Um die Qualität von Software zu verbessern und Fehler nicht erst beim Kunden zu finden hilft es den Code automatisiert zu testen.

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.

Ein Testframework bietet dir die Möglichkeit deine Programme und Funktionen einfach zu testen und das Ergebnis auszuwerten.
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.

Überblick über die ausgeführten Testfälle



testlauf

JUnit tabellarische Auswertung

Tabellarische Übersicht aller Testfälle

erfolgreich ausgeführt
übersprungen
fehlerhaft
nicht vorhanden
Dauer

testlauf

JUnit zeitliche Auswertung

Zeitlicher Verlauf der ausgeführten Testfälle

erfolgreich ausgeführt
übersprungen
fehlerhaft
Dauer



testabdeckung


Es stellen sich aber immer wieder folgende Fragen

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

Die open-source Bibliothek und die Erweiterung zur Erfassung der Testabdeckung liefern die Antworten auf diese Fragen.
SCCX

sccx

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




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

Clean Code Developer

Um in Erfahrung zu bringen welche Codebereiche nicht durch Tests abgedeckt sind kommt die Codecoverage Analyse - Structured Code Coverage Extension - zum Einsatz.


Auswertung der Codeabdeckung

Lokal sieht der Entwickler das Ergebnis live im Editor, Zeile für Zeile:
Was ist durch Tests abgedeckt, was nicht.

screen_gitlab

Grün markierte Zeilen sind durch Tests abgedeckt, rote nicht. Hier ein LASAL-Class-2-Baustein in VS Code – die Anzeige unten zeigt 62 % Abdeckung für diese Datei

trenner

Informationen zur Codeabdeckung

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

cobertura

Testabdeckung im Code-Review: Der Merge Request zeigt am Rand der geänderten Datei, welche Zeilen nicht durch Tests abgedeckt sind. Reviewer sehen die blinden Flecken direkt im Kontext der Änderung.

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.

trenner_gruen

Lizenzen



Pro

  • Messung über gesamte Codebasis in jeder Pipeline - CI/CD
    1 Seat pro Runtime
  • Coverage-Trends auswerten
     
  • Externe Softwaredienstleister messen und vergleichen

890 €

jährlich

Kaufen

Enterprise

  • Setup und personalisierte Schulung
     
     
  • Technischer Support
     

  •  

Anfrage Kontakt





Features


  • Einfache Konfiguration über XML Format

  • Applikationsgenerator

  • Starten eines automatischen Builds

  • Upload auf Zielsystem und Start

  • Dynamische und statische Testautomatisierung

    • Ausführen eines statischen Testprojekts
    • Ausführen eines generierten Testprojekts
  • Analyse SccX-Structured Code Coverage eXtension

  • Auswertung Codecoverage Cobertura XML Format

  • Zeilen und Zweigabdeckung

  • Verfügbar für Beckhoff und Sigmatek






Roadmap


  • Umsetzung B&R Automation Studio

  • Umsetzung Bachmann PLC-Developer

  • Umsetzung Codesys V3



Testlabor

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



lab
  • 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.