TPT (proves de partició temporal) és una metodologia de prova sistemàtica per a la prova i verificació automatitzada de programari de sistemes de control integrats, sistemes ciberfísics i programes de flux de dades. TPT està especialitzat en les proves i validacions de sistemes integrats les entrades i sortides dels quals es poden representar com a senyals i és un mètode dedicat per provar el comportament continu dels sistemes. La majoria dels sistemes de control pertanyen a aquesta classe de sistemes. La característica més destacada dels sistemes de control és que interactuen estretament amb l'entorn real. Els controladors han d'observar el seu entorn i reaccionar en conseqüència al seu comportament. El sistema funciona en un cicle d'interacció amb el seu entorn i està subjecte a restriccions temporals. Provar aquests sistemes és per estimular i comprovar el comportament temporal. Els mètodes tradicionals de proves funcionals utilitzen scripts: TPT utilitza proves basades en models.
TPT combina una tècnica de modelització sistemàtica i gràfica per a casos de prova amb una execució de proves totalment automatitzada en diferents entorns i una avaluació automàtica de proves. El TPT cobreix les quatre activitats de prova següents:
modelització de casos de prova execució de proves en diferents entorns (automatitzada) anàlisi de resultats de proves (avaluació de proves (automatitzada)) documentació de proves (automatitzada) gestió de proves
Casos de prova gràfics miniatura|Descripció de la prova per autòmat híbrid amb variants En TPT, les proves es modelen gràficament amb l'ajuda de màquines d'estat especials i particions de temps. Tots els casos de prova per a un sistema sota prova es poden modelar utilitzant un autòmat híbrid. Les proves sovint consten d'una seqüència de fases lògiques. Els estats de la màquina d'estats finits representen els passos lògics d'una prova que són similars per a totes les proves. Les condicions de desencadenament modelen les transicions entre les fases de prova. Cada estat i transició de l'autòmat pot tenir variants diferents. La combinació de les variants modela els casos de prova individuals.
Els textos en llenguatge natural passen a formar part dels gràfics, cosa que facilita la llegibilitat, fins i tot per a persones no programadores. Tècniques substancials com ara màquines d'estat de ramificació paral·lela i jeràrquica, ramificació condicional, reactivitat, descripció del senyal, senyals mesurats, així com llistes de passos de prova simples permeten una modelització intuïtiva i gràfica fins i tot de casos de prova complexos.
La complexitat de la prova s'amaga darrere dels gràfics. La descripció del senyal de nivell més baix consisteix en llistes de passos de prova o en les anomenades definicions directes.
La complexitat de la prova s'amaga darrere dels gràfics. La descripció del senyal de nivell més baix consisteix en llistes de passos de prova o en les anomenades definicions directes.
Modelització de seqüències simples: Llista de passos de prova Mitjançant l'ús de la llista de passos de prova, es poden modelar seqüències simples de passos de prova que no cal executar-se en paral·lel, com ara l'establiment de senyals (Set channel), senyals de rampa (Ramp channel), l'establiment de paràmetres (Set parameter) i l'espera (Wait). Les sol·licituds dels resultats de les proves esperats es poden fer dins de la seqüència de proves per avaluar el sistema que s'està provant a mesura que s'executa. També és possible col·locar subautòmats a la llista de passos de prova, que al seu torn contenen autòmats i seqüències, donant lloc a llistes de passos de prova jeràrquiques. Les seqüències de prova també es poden combinar amb altres mètodes de modelització, cosa que permet una gran complexitat (o simplicitat) a la prova. Les seqüències de prova també es poden combinar i paral·lelitzar amb altres mètodes de modelització. miniatura|Definició directa d'un senyal
Definició de senyal directe: Definició directa Dins de la llista de passos de prova és possible implementar les anomenades "definicions directes". Amb aquest tipus de modelització, es poden definir els senyals com a funció del temps, variables/esdeveniments de prova passats i altres senyals. També és possible definir aquests senyals escrivint codi d'"estil C", així com important dades de mesura i utilitzant un editor de senyals manual.
Funcions És possible definir funcions que poden actuar com a clients o servidors. Les funcions client es criden des de TPT al sistema que s'està provant, on les funcions de servidor implementades a TPT es poden cridar com a "funcions stub" des del sistema que s'està provant. El mateix TPT també pot cridar les funcions del servidor.
Casos de prova sistemàtics TPT es va desenvolupar específicament per a proves del comportament continu i reactiu dels sistemes integrats. El TPT es pot veure com l'extensió del mètode de l'arbre de classificació pel que fa al comportament temporal. A causa del seu enfocament sistemàtic en la generació de casos de prova, TPT fins i tot fa un seguiment de sistemes molt complexos les proves exhaustives dels quals requereixen un gran nombre de casos de prova, cosa que permet trobar errors en el sistema sota prova amb un nombre ideal de casos de prova.
La idea subjacent de la sistemàtica de TPT és la separació de similituds i diferències entre els casos de prova: la majoria dels casos de prova són molt similars en el seu procés estructural i "només" es poden diferenciar en uns quants detalls, però crucials. TPT aprofita aquest fet modelant i utilitzant conjuntament estructures conjuntes. D'una banda, s'eviten així acomiadaments. D'altra banda, es deixa molt clar en què difereixen realment els casos de prova, és a dir, en quin aspecte específic proven respectivament. Amb aquest enfocament, la comparabilitat dels casos de prova i, per tant, la visió general millora, i l'atenció del tester se centra en l'essencial: les característiques diferenciadores dels casos de prova.
L'estructura jeràrquica dels casos de prova permet desglossar els problemes de prova complexos en subproblemes, millorant així també la claredat i, en conseqüència, la qualitat de la prova.
Aquestes tècniques de modelització ajuden el tester a trobar els casos realment rellevants, evitant redundàncies i fent un seguiment fins i tot d'un gran nombre de casos de prova.
Generació automàtica de casos de prova TPT inclou diverses possibilitats per generar casos de prova automàticament: miniatura|Proves manuals interactives amb TPT-Dashboard
casos de prova de classes d'equivalència casos de prova per a la cobertura de models de Simulink mitjançant anàlisi estàtica i un mètode basat en la cercaBenjamin Wilmes: Hybrides Testverfahren für Simulink/TargetLink-Modelle, Dissertation, TU-Berlin, Germany, 2015. casos de prova construint seqüències a partir de variants d'estats i transicions d'un model de prova casos de prova transformant els enregistraments de les interaccions dels usuaris amb el sistema sota prova a través d'una interfície gràfica d'usuari (Dashboard)
Proves reactives Amb TPT, cada cas de prova pot reaccionar específicament al comportament del sistema durant el procés de prova en temps real; per exemple, per reaccionar al sistema exactament quan es produeix un determinat estat del sistema o un senyal de sensor supera un cert llindar. Si, per exemple, s'ha de simular una fallada del sensor d'un controlador de motor quan se supera el règim de ralentí del motor, ha de ser possible reaccionar a l'esdeveniment "règim de ralentí del motor superat" a la descripció del cas de prova.
Execució de proves Els casos de prova TPT es fan independents de la seva execució. Els casos de prova es poden executar en gairebé qualsevol entorn gràcies al concepte de màquina virtual (VM), fins i tot en entorns de temps real. Exemples en són MATLAB/Simulink, TargetLink, ASCET, C-code, CAN, AUTOSAR, SystemDesk, DaVinci CT, LABCAR, INCA, Software-in-the-Loop (SiL) i HiL. Així, TPT és una eina integrada que s'ha d'utilitzar en totes les fases de prova del desenvolupament, com ara les proves unitàries, les proves d'integració, les proves de sistema i les proves de regressió.
Per a l'anàlisi i la mesura de la cobertura del codi, TPT pot interactuar amb eines de cobertura com ara Testwell CTC++ per a codi C.
Una interfície gràfica d'usuari configurable (Dashboard), basada en giny (widgets GUI), es pot utilitzar per interactuar amb les proves.
Màquina virtual TPT Els casos de prova modelats a TPT es compilen i durant l'execució de la prova són interpretats per l'anomenada màquina virtual (VM). La màquina virtual és la mateixa per a totes les plataformes i totes les proves. Només un adaptador de plataforma realitza el mapatge de senyals per a l'aplicació individual. El TPT-VM està implementat en ANSI C i requereix una memòria de només uns pocs kilobytes i pot prescindir completament d'una assignació dinàmica de memòria, cosa que permet aplicar-lo també en entorns minimalistes i amb pocs recursos. També hi ha API per a C i NET.
La màquina virtual de TPT és capaç de processar proves en temps real amb un comportament de resposta definit. Els temps de resposta dels casos de prova TPT normalment es donen en microsegons, depenent de la complexitat i del maquinari de prova.
Avaluació de proves programades El comportament esperat del sistema per a casos de prova individuals també s'hauria de provar automàticament per assegurar processos de prova eficients. TPT ofereix la possibilitat de calcular les propietats del comportament esperat en línia (durant l'execució de la prova) i fora de línia (després de l'execució de la prova). Mentre que l'avaluació en línia utilitza les mateixes tècniques de modelització que la modelització de proves, l'avaluació fora de línia ofereix possibilitats decididament més àmplies per a avaluacions més complexes, incloent-hi operacions com ara comparacions amb dades de referència externes, monitorització de valors límit, filtres de senyal, anàlisis de seqüències d'estat i condicions de temps.
L'avaluació fora de línia, tècnicament parlant, es basa en el llenguatge d'escriptura Python, que s'ha ampliat amb elements de llenguatge sintàctic específics i una biblioteca d'avaluació especialitzada per donar un suport òptim a l'avaluació de proves. L'ús d'un llenguatge de script garanteix un alt grau de flexibilitat en l'avaluació de proves: es permet l'accés a dades de referència, la comunicació amb altres eines i el desenvolupament de biblioteques pròpies específiques del domini per a l'avaluació de proves. A més de l'avaluació dels resultats de les proves basada en scripts, les interfícies d'usuari proporcionen un accés senzill a les avaluacions de les proves i ajuden els no programadors a evitar els scripts.
Les dades de mesurament d'altres fonts com el registre de senyals de TargetLink i Simulink o les dades de mesurament MCD-3 es poden avaluar automàticament. Aquestes dades poden ser independents de l'execució de la prova.
Documentació de proves La documentació de proves TPT segons l'IEEE 829 presenta el resultat de l'avaluació de la prova al tester en un informe HTML, en què no només es pot representar la informació pura "èxit", "error" o "desconegut" com a resultat de la prova per a cada cas de prova, sinó també detalls com ara paràmetres característics o senyals que s'han observat en l'execució de la prova o calculat en l'avaluació de la prova. Com que l'avaluació de la prova retorna informació adequada sobre el moment i el comportament comprovat, aquesta informació es pot incloure a l'informe. El contingut de la documentació de prova, així com l'estructura del document, es poden configurar lliurement amb l'ajuda d'una plantilla.
Gestió de proves TPT dóna suport a la gestió de proves dels projectes de prova TPT amb les activitats següents:
Desenvolupament de casos de prova en un projecte de prova