TPT (software)
TPT (Time Partition Testing) is een methode en een software-tool ontwikkeld door het bedrijf PikeTec om geautomatiseerde software van continue en reactieve ingebedde systemen te testen of te verifiëren. Vooral de automobielindustrie maakt er gebruik van. In TPT worden testcases grafisch gemodelleerd in plaats van het schrijven van testscripts. Deze grafisch gemodelleerde testcases kunnen voor het testen van controlesystemen en systemen met continu gedrag gebruikt worden.

Geschiedenis
Het idee voor TPT ontstond in het kader van de automobielontwikkeling door Daimler en Mercedes-Benz. De eerste versies van de testtool werden in 2000 ingezet. Ondertussen werken ook andere automobielbedrijven met TPT, bijvoorbeeld General Motors, Volkswagen, Audi, Porsche, BMW, en ook toeleveranciers uit de automobielindustrie zoals Bosch, Hella, TRW en Continental. Daimler heeft meerdere jaren de ontwikkeling van TPT gecoördineerd. Sinds 2007 wordt TPT ontwikkelt en verkocht door het Berlijnse bedrijf PikeTec GmbH.

Onderdelen 
TPT heeft volgende onderdelen:
 modellering van testcases (handmatig of geautomatiseerd)
 uitvoering van tests in verschillende testomgevingen zoals MATLAB/Simulink, ASCET, TargetLink, HiL (Hardware-in-the-Loop), en C-Code, of via communicatiestandaards zoals CAN (Controller Area Network) en LIN (Local Interconnect Network) (geautomatiseerd)
 testevalutie (geautomatiseerd)
 testdocumentatie (geautomatiseerd)
 testadministratie
 traceren van requirements in verbinding met andere Requirements Management Tools

Reactieve tests
Een test geldt als reactief als hij tijdens het uitvoeren in een testomgeving op het gedrag van het systeem reageert. Zo kan de reactieve test op het moment dat een gespecifieerde toestand wordt bereikt zijn gedrag veranderen, bijvoorbeeld meer testrelevante systeemtoestanden stimuleren. De reactiviteit maakt het samen met de realtime verwerking mogelijk dynamische systemen in discrete tijd te programmeren. Zo kunnen bijvoorbeeld filter functies en regelalgoritmes in TPT worden geïmplementeerd.

Grafische testmodellering
Testcases worden in TPT met speciale state machines of met toestandsdiagrammen grafisch gemodelleerd. De grafische testmodellering is een voor de hand liggende keuze wat ingebedde systemen betreft omdat hier testcases altijd uit opeenvolgende stappen opgebouwd zijn. Het voordeel van de grafische benadering is dat de testcases intuïtief leesbaar zijn, zelfs als ze zeer complex zijn.

Functies
Naast het grafische modelleren is het mogelijk functies te definiëren die als client of server ageren. Clientfuncties worden door TPT in het te testende systeem opgeroepen;  serverfuncties kunnen in TPT als geïmplementeerde stub-functies vanuit het te testende systeem of ook direct worden opgeroepen.

Systematische testcases
Middels systematische testcases kunnen zwakpunten in het te testende systeem ontdekt worden. De meeste testcases lijken op elkaar en hebben amper, maar juist essentiële details die schelen. Daarom worden in TPT gezamenlijke structuren tezamen gemodelleerd en gebruikt. Redundancies worden zo vermeden en verschillen tussen de testgevallen zijn beter te herkennen.

Automatische testcasegeneratie
TPT biedt verschillende mogelijkheden om testcases automatisch te genereren:
 testcases op basis van equivalentieklassen
 testcases door analyse van MATLAB/Simulink- en TargetLinkmodellen
 testcases door het creëren van sequenties op de basis van toestands- en transitievarianten van het testmodel
 testcases door het opnemen van interacties van gebruikers met het te testende systeem via een grafisch gebruikersinterface (Dashboard)

Testuitvoering
Testcases worden in TPT met behulp van een zogenaamd virtuele machine (TPT-VM) aan de testomgeving overgebracht, dit kan ook in realtime gebeuren. Door het gebruik van een virtuele machine is TPT flexibel wat betreft testomgevingen. Zo kunnen tests gecreëerd worden voor Model-in-the-Loop (MiL), Software-in-the-Loop (SiL), Processor-in-the-Loop (PiL) en Hardware-in-the-Loop (HiL). Uitgevoerd worden dergelijke testcases in verschillende testomgevingen of middels applicaties zoals MATLAB/Simulink, TargetLink, ASCET, C-programmen, CAN, of AUTOSAR-componenties, INCA, of LABCAR. Om meetgrootheden van electronic control units (ECU) tijdens de testuitvoering te controleren, is een speciale application programming interface (API) nodig, i.e. de MCD-3-API van ASAM. Met behulp van die API kunnen ook tools zoals INCA en CANape gebruikt worden.

Geprogrammeerde testevaluatie
Testresultaten moeten worden geëvalueerd; dat betekent dat qualitatieve stellingen zoals "waar", "verkeerd" of "onduidelijk" alsook afwijkingen van de nominale waarde moeten worden geprotocolleerd.

Naast het manuele evalueren en het vergelijken van testresultaten met referentiegegevens (regressietest) kunnen met TPT ook testresultaten automatisch op basis van zelfgekozen evaluatiegegevens worden beoordeeld. Het tijdelijke en functionale gedrag van het te testen systeem kan dus niet alleen quantitatief maar ook qualitatief worden beoordeeld. Visuele inspecties na elke testuitvoering worden zo onnodig.

Er zijn grafische gebruikersinterfaces voor de gangbaare en eenvoudige testevaluaties zoals:
 controle van de drempelwaarden van signalen (Min/Max-vergelijking)
 fouttolerante vergelijking van signalen met referentiegegevens
 controle van discrete signaalsequenties
 controle op basis van tijdelijke triggercondities
 integratie van MATLAB-scripts

Diepergaande evaluaties kunnen met een programmeertaal die op Python gebaseerd is, worden toegepast. Meetresultaten van andere bronnen kunnen tevens worden geevalueerd. Meetgegevens van model-interne TargetLink- of Simulinksignalen, alsook gegevens van andere meetinstrumenten kunnen automatisch ter testevaluatie worden gebruikt.

Testmanagement
TPT is geen testmanagement tool maar ondersteunt wel sommige aspecten van het testmanagement zoals:
 modelleren van testcases 
 plannen van tests
 documenteren van tests
 voortgangsmeldingen wat betreft software releases
 traceerbaarheid van  requirements, testcases, testuitvoeringen en testresultaten

Traceren van requirements
Internationale standaarden voor veiligheidsgerelateerde systemen, bijvoorbeeld IEC 61508, DO-178B, of ISO 26262 vergen dat requirements en tests getraceerd worden. Met TPT kunnen requirements onder uit externe Requirements Management Tools zoals Rational DOORS geïmporteerd, aan testcases gekoppeld en de gegevens gesynchroniseerd worden. Analyses van de dekkingsgraad en traceerbaarheid zijn mogelijk.

Externe links 
 Lehmann, TPT - Dissertation, 2003
 PikeTec
 IX-Studie zu modellbasierten Testwerkzeugen
 Modell- und Softwareverifikation vereinfacht. Elektronik Automotive, Heft 4.2009 (pdf)

Programmeren
Softwaretest