Close
Banner C/C++ Code

CI/CT & Cloud Testen

In TPT können viele Aktivitäten im Testprozess automatisiert werden. Der Automatisierungsgrad von Funktionalitäten spielt bei der Automatisierung eine entscheidende Rolle. 

In TPT gibt es eine programmierbare API, die für die Automatisierung genutzt werden kann. Zusätzlich stehen Ihnen weitere Helfermodule und Funktionen zur Verfügung, die den Anwender*Innen helfen, Großteile des Testprozess zu automatisieren – immer mit dem übergeordneten Ziel: Bugs schneller zu finden.  

Der Anwendungsbereich der Automatisierungsmöglichkeiten in TPT umfasst alle Testprozesse: von der Anbindung des Prüflings, über die Testfallerstellung, die Testausführung, die Auswertung, bis zum Reporting.  

Der Automatisierung in TPT sind kaum Grenzen gesetzt. TPT läuft in der Cloud. TPT kann in Continuous Integration (CI) und Continuous Testing (CT) Umgebungen eingebunden werden. Anwender*Innen können für komplexe oder wiederkehrende Aufgaben eigene Skripte erstellen und ausführen. 

Die Use-Cases unserer Kund*Innen sind dabei vielfältig. TPT ist auf alle Individualitäten vorbereitet.  

Cloud Testen

Die Gründe in der Cloud statt auf dem lokalen Rechner zu testen, sind sehr vielfältig.  Technologisch kann TPT in einen Docker Container oder in eine virtuelle Maschine integriert werden. Die Basis ist ein Betriebssystem in der Umgebung. Aktuell wird Windows und Linux (headless – also ohne TPT GUI) unterstützt.   Je nach Setup sind unterschiedliche Anwendungsfälle möglich, wie  
  • Die parallele Ausführung von Test zur Reduktion der Testausführungszeit 
  • Archivierung und Wiederherstellung von Testumgebung (Bugfixes) 
  • Vermeidung von lang andauernden Downloads, wenn Testdaten und Tools in der Cloud
Diese Art der Umsetzung erlaubt ein Hosting bei verschiedenen Cloudanbietern (Microsoft Azure, Amazon AWS, IBM Cloud, …).  

Continuous Integration / Continuous Testing (CI/CT)

Das grundlegende Ziel von Continuous Integration und Continuous Testing (CI/CT) ist, möglichst zeitnah zu erfahren, ob eine Änderung der Codebasis zu Problemen im Endprodukt führt. Mit anderen Worten: frühzeitig bugs finden.

In den meisten Fällen ist die Journey die folgende: 

Eine Entwicklerin ändert die Codebasis und checkt den Code in ein Versionskontrollsystem (wie Git oder Subversion) ein. Der sogenannte Commit wird vom CI-System erfasst und die Codeänderung durchläuft mehrere Quality Gates bevor sie im Hauptzweig des Produktes aufgenommen wird. Ein Teil der Prüfung sind dynamische Tests der Änderung. Im ersten Schritt laufen dann Unittests. Sind diese erfolgreich, werden SW-Integrationstests von der CI-Umgebung angestoßen. Das System kennt die abhängigen Strukturen von Unit bis zur Gesamtintegration für das gesamte Produkt. Schlägt ein Test in der Kaskade fehl, wird die Änderung nicht in den Hauptpfad übernommen. Die Ebene und der fehlgeschlagene Test werden dem Anwender visualisiert. In Folge dessen wird der Code erneut angepasst.  

Dieses Vorgehen ist in agilen Projekten und in Devops etabliert. Hauptvorteil dabei ist, dass die Entwicklerin durch das zeitnahe Feedback die Änderungen am Code noch im Gedächtnis hat. Der Aufwand zur Einarbeitung in den Kontext einer Änderung entfällt dabei meistens. Das wiederum wirkt sich positiv auf die Produktivität aus. 

TPT als Testautomatisierungslösung kann in unterschiedliche CI/CT Umgebungen integriert werden. Für die weitverbreitete Automation Server Jenkins haben wir ein Plugin entwickelt, das Tests im Master-Slave oder Standalone ausführt und die Testergebnisse in Jenkins bereitstellt.  

Die Anbindung weiterer CI-Umgebungen kann über die TPT API oder über Command Line Options erfolgen. 

API

Bei der Verwendung der Cloud für die Testausführung oder CI/CT muss der höchste Automatisierungsgrad erreicht werden. Der gängigste Ansatz ist die Verwendung von Tools mit Application Programming Interfaces (API). Eine API ermöglicht den Zugriff auf ein Paket von Funktionen und Prozeduren eines Programms. Dieser Zugriff ermöglicht es Betriebssystemen, Anwendungen oder anderen Diensten, das Programm zu steuern und Daten mit ihm auszutauschen.

TPT erhielt seine erste API mit Release 3. Diese wurde in den nachfolgenden Releases kontinuierlich um weitere Funktionen und Prozeduren erweitert. TPT verfügt über drei programmierbare APIs mit unterschiedlichen Zwecken und Anwendungsbereichen.  

  • die Virtual Machine API (VM API)  
  • die Fusion-API  
  • die TPT-API  
Darüber hinaus ist auch die Steuerung von TPT über die Kommandozeile möglich. 
TPT API Model
Abbildung 1: Überblick über die Interaktion mit internen und externen Diensten, Anwendungen und Betriebssystemen 

Die TPT VM API wird verwendet, um ein System under Test (SUT) mit unserer TPT VM, der Testausführungsmaschine von TPT, zu verbinden. Die TPT-VM basiert auf C und bietet Methoden für die Initialisierung, Anbindung, Testausführungsschritte, Beendigung usw. Die TPT-VM API kann verwendet werden, um fast jede Art von SUT anzuschließen, solange man über C/C++ darauf zugreifen kann.  

Die TPT-FUSION-API ist analog zur TPT-VM-API und wird verwendet, wenn Sie ein beliebiges SUT oder Stimulationselement mit unserer Co-Simulationsplattform FUSION verbinden wollen. Sie können eine beliebige Anzahl und alle Arten von Technologien anschließen. So können Sie beliebige Testumgebungskonstrukte in den Mix einbauen und zum Testen verwenden. Ob reale Hardware, Software, Anwendung, Modelle oder eine beliebige Kombination: TPT kennt keine Grenzen beim Aufbau der Testumgebung.

 

Die TPT-API wird verwendet, um verschiedene Funktionen von TPT in anderen Programmen zu implementieren. Wir unterteilen die TPT-API in zwei Bereiche:

 

  • JAVA API
  • Python Anbindungen 
Die Java-API von TPT wird verwendet, um eigene Programme zu erstellen und TPT fernzusteuern. Zu TPT gibt es eine vollständige Dokumentation, ein Eclipse-Projekt und mehrere Beispiele zur Veranschaulichung der Programmierung.     Python-Anbindungen ermöglichen den Zugriff auf den vollen Umfang der Java-TPT-API. Sie können in API-Skripten oder direkt in TPT-Projekten verwendet werden.   TPT-Skripte können in unseren beiden Editoren erstellt werden:  
  • dem Batch Runner  
  • dem API Skript Editor 

Beide Editoren erlauben auch die manuelle Ausführung der erstellten Skripte. Das Verhalten der Skripte kann so in TPT beobachtet werden – die Automatisierung ist somit einfacher und Probleme werden früher erkannt.

Der Batch Runner ist in erster Linie als Unterstützung für den Anwender gedacht (Level 1). Die Programmierung erfolgt über intuitive Schrittfolgen. Der Batch Runner unterstützt die Automatisierung von Testausführungen, Reports und kann Testharnesse aktualisieren (z.B. bei aktualisierten SUTs).

Die Möglichkeit, gespeicherte Skripte aus dem API-Skript-Editor heraus auszuführen, erlaubt es auch unerfahrenen TPT-Anwender*Innen, anspruchsvolle Skripte auf einfache und verständliche Weise auszuführen.

Unser API Skript Editor ist eine in TPT integrierte Entwicklungsumgebung. Er kann für die vollständige Automatisierung von Teilprozessen im Testprozess verwendet werden und umfasst mehr als nur Testdesign und Testausführung und unterstützt die Programmiersprachen Python und Java.

Die einmal erstellten Automatisierungsskripte können gespeichert, geladen und somit in anderen Projekten oder Teams wiederverwendet werden.

Die Kommandozeilenoptionen ermöglichen den Zugriff über die Konsole eines Betriebssystems (OS). Über die Kommandozeile können Sie Projekte laden, Testrahmen erzeugen, Tests ausführen und vieles mehr. Die Schnittstelle zu den Kommandozeilenoptionen ist in unserem Benutzerhandbuch ausführlich dokumentiert. Die Kommandozeilenoptionen können auch zur Ausführung von Skripten verwendet werden.   

Die breite Palette der unterstützten TPT-Funktionen ermöglicht eine weitgehende Automatisierung und nahezu 85% der GUI-Funktionalitäten von TPT.

Verwandte Themen

TPT testing tool banner

Test Umgebungen

Sie können mit TPT in verschiedenen Testumgebungen testen, von MiL, SiL, PiL, HiL bis hin zu automatisierten Fahrzeugtests.
ADAS Testing with TPT

ADAS/AD Testen

TPT eignet sich ideal für das Testen von Fahrerassistenzsystemen (ADAS) auf jeder Teststufe.
TPT testing tool

TPT Testwerkzeug

Mit TPT können Sie Steuergerätesoftware und eingebettete Steuerungssysteme in allen Entwicklungsphasen von MiL, SiL, PiL, HiL, Steuergeräte bis hin zu Fahrzeugen testen.