Wikipedia · einfach zusammengefasst · Stand
TPT (Software)
TPT ist ein modellbasiertes Testwerkzeug für den Modultest, Integrationstest, Systemtest und Regressionstest. TPT unterstützt unter anderem auch Tests von …
Inhalt5 Abschnitte
Grundidee und Zweck
TPT (Time Partition Testing) ist eine Methode und ein Software-Werkzeug für den automatisierten Softwaretest und die Softwareverifikation eingebetteter Systeme. Eingebettete Systeme sind technische Systeme, die bestimmte Steuerungs- oder Regelungsaufgaben ausführen. TPT eignet sich besonders für Systeme mit kontinuierlichem und reaktivem Verhalten, also für Echtzeitsysteme, die mit ihrer Umgebung physikalische Werte oder Signale austauschen. Diese Signale werden in einem Zeitraster zeitdiskret empfangen oder versandt. Die meisten Steuerungs- und Regelungssysteme gehören zu dieser Systemklasse.
TPT ist ein modellbasiertes Testwerkzeug für Modul-, Integrations-, System- und Regressionstests. Anders als beim häufigen Testen mit Testskripten werden Testfälle grafisch modelliert. Das Werkzeug umfasst die manuelle oder automatische Testfallmodellierung, die vollautomatische Testdurchführung auf verschiedenen Plattformen, die automatische Testauswertung und Testdokumentation, das Testmanagement sowie die Nachverfolgbarkeit von Anforderungen, Testfällen, Testdurchführungen und Testresultaten.
Als Hersteller beziehungsweise Entwickler des Werkzeugs wird im Artikel PikeTec genannt; in den Basisdaten ist Synopsys Inc. als Entwickler angegeben. Die aktuelle Version ist 2025.09 (September 2025). TPT läuft unter Windows, gehört zur Kategorie Softwaretest und ist proprietär lizenziert. Eine deutschsprachige Version wird mit „nein“ angegeben.
Grafische Modellierung und Reaktivität
Der Ablauf eines Testfalls wird mit speziellen Zustandsautomaten oder Zustandsübergangsdiagrammen modelliert. Ein Zustandsautomat beschreibt Zustände eines Systems und die Übergänge zwischen ihnen. Diese Darstellung passt zum Test eingebetteter Systeme, weil Testfälle aus einzelnen, zeitlich aufeinanderfolgenden Schritten bestehen. Auch komplexe Testfälle sollen dadurch intuitiv lesbar bleiben.
TPT-Testfälle können während des Ablaufs gezielt auf das Verhalten des getesteten Systems reagieren. Bei einem reaktiven Test wird beispielsweise genau dann eingegriffen, wenn ein bestimmter Zustand oder ein Ereignis eintritt. Für eine Motorsteuerung kann etwa beim Ereignis „Leerlaufdrehzahl überschritten“ ein Sensorausfall simuliert werden. So lässt sich untersuchen, wie die Motorsteuerung auf diese Situation reagiert.
Die Reaktivität und die Echtzeitfähigkeit ermöglichen außerdem die Programmierung zeitdiskreter dynamischer Systeme, zum Beispiel von Filterfunktionen und Regelalgorithmen.
Für einfache, nicht parallel abzuarbeitende Abfolgen gibt es Test-Step-Listen. Mögliche Schritte sind „Signal setzen“ (set channel), „Signalrampe“ (ramp channel), „Parameter setzen“ (set parameter) und „Warten“ (wait). In solche Sequenzen können Abfragen des erwarteten Ergebnisses als Testorakel eingefügt werden. Ein Testorakel ist eine im Test enthaltene Prüfung, die festlegt, welches Ergebnis erwartet wird. Zustände, die wiederum Automaten oder Sequenzen enthalten, ermöglichen hierarchische StepListen. Testsequenzen können mit anderen Modellierungsmethoden kombiniert und parallelisiert werden.
Bei den „Direct Definitions“ werden Signale als Funktionen der Zeit, der Vergangenheit und anderer Signale definiert. Dafür können Formeln in „C-Ähnlicher“ Notation verwendet werden. Alternativ lassen sich Messdaten importieren oder Signale mit einem manuellen Signaleditor bearbeiten. Außerdem können Funktionen definiert werden, die als Client oder Server agieren. Clientfunktionen werden aus TPT im zu testenden System aufgerufen. Serverfunktionen sind in TPT implementierte Stub-funktionen, die aus dem zu testenden System aufgerufen werden können; TPT kann sie auch selbst aufrufen.
Systematische Testfälle und Generierung
TPT wurde für den Test des kontinuierlichen und reaktiven Verhaltens eingebetteter Systeme entwickelt. Auch bei sehr komplexen Systemen mit einer großen Zahl notwendiger Testfälle soll das systematische Vorgehen den Überblick erhalten und Schwachstellen mit einer optimalen Menge von Testfällen aufdecken.
Die zentrale Idee besteht darin, Gemeinsamkeiten und Unterschiede zwischen Testfällen zu trennen. Viele Testfälle besitzen denselben strukturellen Ablauf und unterscheiden sich nur in wenigen, aber entscheidenden Details. Gemeinsame Strukturen werden deshalb gemeinsam modelliert und wiederverwendet. Dadurch werden Redundanzen vermieden, und die jeweils getesteten Besonderheiten treten deutlicher hervor. Die Testfälle werden besser vergleichbar; der Tester kann sich auf ihre unterscheidenden Merkmale konzentrieren. Durch die hierarchische Struktur lassen sich komplexe Testprobleme außerdem in Teilprobleme zerlegen, was die Übersichtlichkeit und die Testqualität verbessert.
TPT bietet mehrere Verfahren zur automatischen Testfallgenerierung:
- Testfälle zur Abdeckung von Äquivalenzklassen. Eine Äquivalenzklasse umfasst Eingaben oder Situationen, die im Test gleich behandelt werden sollen.
- Testfälle zur Abdeckung von Simulink-Modellen oder C-Code mithilfe statischer Analysen und suchbasierter Verfahren (TASMO).
- Die Sequenzbildung von Varianten von Zuständen im Testmodell.
- Testfälle aus aufgezeichneten Interaktionen mit dem System Under Test (SUT), also dem zu testenden System, über eine grafische Benutzeroberfläche, das Dashboard.
Ausführung und automatische Auswertung
TPT-Testfälle sind unabhängig von ihrer konkreten Ausführung. Eine Virtuelle Maschine, die TPT-VM, führt sie nahezu auf jeder Plattform automatisch und bei Bedarf in Echtzeit aus. Für die TPT-VM gibt es Programmierschnittstellen (API) für C und das .Net-Framework. Tests können manuell, im Batchmodus oder auf einem Jenkins Server gestartet werden.
Beispiele für unterstützte Einsatzformen und Umgebungen sind Model in the Loop (MiL) mit Matlab/Simulink, TargetLink oder ASCET, C-Programme, CAN, CANape, CANoe, AUTOSAR-Komponenten, INCA, LABCAR, Software in the Loop (SiL), CarMaker und Hardware in the Loop (HiL). Für die Analyse und Messung der Testüberdeckung von C-Programmen ist beispielsweise eine Anbindung an den Code Coverage Analyser Testwell ctc++ oder gcov möglich.
TPT kann während der Entwicklungsphase auch als Signalgenerator eingesetzt werden. Beliebige Signale lassen sich erzeugen; in Matlab/Simulink können dadurch Schalter und Signalgeneratoren ersetzt werden. Die Ergebnisse sind wiederholbar. Testsynchrone Messungen steuergeräteinterner Messgrößen am Prüfstand oder im Fahrzeug können über Werkzeuge wie INCA oder CANape erfolgen. Die Messwerte stehen anschließend für die Testfallbewertung oder bereits während der Testlaufzeit zur Verfügung. Eine konfigurierbare grafische Benutzeroberfläche zeigt Werte und Steuerelemente an. Benutzer können parallel zur Echtzeitausführung Werte stimulieren oder anzeigen; diese Interaktion kann aufgezeichnet und als Schrittliste übernommen werden.
Die Testauswertung, auch Testassessment genannt, basiert auf aufgezeichneten Testdaten. Ergebnisse können automatisch als „wahr“, „falsch“ oder „ungewiss“ bewertet und Abweichungen vom Soll-Verhalten protokolliert werden. Neben manueller Auswertung und dem Vergleich mit Referenzdaten im Regressionstest sind regelbasierte Bewertungen möglich. Auswertungen finden in festgelegten Zeitintervallen statt, weil Prüfungen oft nur unter bestimmten Eintrittsbedingungen sinnvoll sind. Eine Vorbedingung dafür, dass ein Licht leuchtet, ist beispielsweise, dass das Licht eingeschaltet ist.
Für häufige Auswertungen gibt es grafische Oberflächen: Signalgrenzen können überwacht, Signale fehlertolerant mit Referenzsignalen verglichen, diskrete Signalsequenzen untersucht und zeitlich ausgelöste Regeln angewendet werden. Auch Matlab-Skripte lassen sich einbinden. Für umfangreichere Untersuchungen steht eine Python-basierte Programmiersprache mit einer Bibliothek zur Signalverarbeitung bereit. Sie unterstützt unter anderem Filteroperationen, Monotonieuntersuchungen, zeitliche Abfragen, Prüfungen auf Bedingungen, die immer oder niemals auftreten, sowie die Definition zeitlicher Intervalle. Auch Messdaten aus anderen Quellen und modellinterne TargetLink- oder Simulink-Signale können ausgewertet werden.
Testmanagement, Anforderungen und Einsatz
Zum Testmanagement gehören die Testfallerstellung beziehungsweise Testfallmodellierung, die Testplanung, die Testdokumentation und eine Fortschrittsanzeige über verschiedene Releases. Außerdem unterstützt TPT die Nachverfolgbarkeit von Anforderungen, Testfällen, Testdurchführungen und Testresultaten.
Internationale Standards für sichere Systeme wie IEC 61508, DO-178B, EN 50128 und ISO 26262 fordern die Nachverfolgbarkeit von Anforderungen und Tests. Anforderungen können beispielsweise aus DOORS importiert, mit Testfällen verknüpft und zwischen den Werkzeugen synchronisiert werden. TPT ermöglicht Abdeckungs- und Nachverfolgbarkeitsanalysen. Werden Anforderungen geändert, markiert das Werkzeug die betroffenen Testfälle. Diese können dadurch gezielt an die neuen Spezifikationen angepasst werden.
TPT wird vorrangig in der Automobilindustrie eingesetzt. Die ursprüngliche Idee entstand bei der Daimler AG und Mercedes-Benz für die eigene Fahrzeugentwicklung; mit den ersten Versionen wurde dort bereits im Jahr 2000 gearbeitet. Später nutzten auch andere Automobilfirmen wie GM, Volkswagen, Audi, Porsche und BMW sowie Zulieferer wie Bosch, Hella, TRW und Continental das Werkzeug. Daimler koordinierte die Weiterentwicklung von TPT jahrelang selbst und optimierte es für den Automobilsoftwarebereich.