TPT ( pruebas de partición de tiempo ) es una metodología de prueba sistemática para la prueba y verificación automatizada de software de sistemas de control embebidos , sistemas ciberfísicos y programas de flujo de datos . TPT se especializa en la prueba y validación de sistemas embebidos cuyas entradas y salidas pueden representarse como señales y es un método dedicado para probar el comportamiento continuo de los sistemas . [ 1 ] La mayoría de los sistemas de control pertenecen a esta clase de sistemas. La característica más destacada de los sistemas de control es el hecho de que interactúan estrechamente interconectados con un entorno del mundo real. Los controladores necesitan observar su entorno y reaccionar correspondientemente a su comportamiento. [ 2 ] El sistema funciona en un ciclo de interacción con su entorno y está sujeto a restricciones temporales. Probar estos sistemas es estimular y verificar el comportamiento temporal. Los métodos tradicionales de prueba funcional utilizan scripts; TPT utiliza pruebas basadas en modelos .
TPT combina una técnica de modelado gráfico y sistemático para casos de prueba con una ejecución de pruebas totalmente automatizada en diferentes entornos y una evaluación automática de las mismas. TPT abarca las siguientes cuatro actividades de prueba:
- modelado de casos de prueba
- Ejecución de pruebas en diferentes entornos (automatizada)
- Análisis de resultados de pruebas (evaluación de pruebas (automatizada))
- Documentación de pruebas (automatizada)
- gestión de pruebas
Casos de prueba gráficos

En TPT, las pruebas se modelan gráficamente con la ayuda de máquinas de estados especiales y partición del tiempo. [ 1 ] [ 3 ] Todos los casos de prueba para un sistema bajo prueba pueden modelarse utilizando un autómata híbrido. Las pruebas suelen consistir en una secuencia de fases lógicas. Los estados de la máquina de estados finitos representan los pasos lógicos de una prueba, que son similares para todas las pruebas. Las condiciones de activación modelan las transiciones entre las fases de prueba. Cada estado y transición del autómata puede tener diferentes variantes. La combinación de las variantes modela los casos de prueba individuales.
Los textos en lenguaje natural se integran en los gráficos, lo que facilita su comprensión y demostración incluso para personas sin conocimientos de programación. Técnicas avanzadas como las máquinas de estados con ramificación paralela y jerárquica , la ramificación condicional, la reactividad , la descripción de señales, las señales medidas y las listas de pasos de prueba sencillos permiten un modelado intuitivo y gráfico incluso de casos de prueba complejos.
La complejidad de la prueba queda oculta tras los gráficos. La descripción de la señal de nivel más bajo consiste en listas de pasos de prueba o en las denominadas definiciones directas.

Modelado de secuencias simples: Lista de pasos de prueba
Mediante la Lista de Pasos de Prueba, se pueden modelar secuencias simples de pasos de prueba que no necesitan ejecutarse en paralelo, como configurar señales (Set channel), aumentar señales (Ramp channel), configurar parámetros (Set parameter) y esperar (Wait). Se pueden solicitar los resultados de prueba esperados dentro de la secuencia de prueba para evaluar el sistema bajo prueba durante su ejecución. También es posible colocar subautómatas en la Lista de Pasos de Prueba, que a su vez contienen autómatas y secuencias, lo que da como resultado Listas de Pasos de Prueba jerárquicas. Las secuencias de prueba también se pueden combinar con otros métodos de modelado, lo que permite un alto grado de complejidad (o simplicidad) en la prueba. Las secuencias de prueba también se pueden combinar y paralelizar con otros métodos de modelado.

Definición de señal directa: Definición directa
Dentro de la lista de pasos de prueba, es posible implementar las denominadas "definiciones directas". Mediante este tipo de modelado, se pueden definir señales en función del tiempo, variables o eventos de prueba anteriores, y otras señales. También es posible definir estas señales escribiendo código al estilo C , importando datos de medición y utilizando un editor de señales manual.
Funciones
Es posible definir funciones que actúen como clientes o servidores . Las funciones cliente se invocan desde TPT en el sistema bajo prueba, mientras que las funciones servidor implementadas en TPT pueden invocarse como " funciones auxiliares " desde el sistema bajo prueba. TPT también puede invocar las funciones servidor.
Casos de prueba sistemáticos
TPT se desarrolló específicamente para probar el comportamiento continuo y reactivo de sistemas embebidos. [ 4 ] TPT puede considerarse una extensión del Método del Árbol de Clasificación en términos de comportamiento temporal. Gracias a su enfoque sistemático en la generación de casos de prueba , TPT incluso realiza un seguimiento de sistemas muy complejos cuyas pruebas exhaustivas requieren un gran número de casos de prueba, lo que permite encontrar fallos en el sistema bajo prueba con un número óptimo de casos de prueba.
La idea fundamental de la metodología TPT es la separación de similitudes y diferencias entre los casos de prueba: la mayoría de los casos de prueba son muy similares en su proceso estructural y solo se diferencian en unos pocos detalles cruciales. [ 5 ] TPT aprovecha este hecho mediante el modelado y el uso conjunto de estructuras. Por un lado, se evitan las redundancias. Por otro lado, se aclara en qué se diferencian realmente los casos de prueba, es decir, qué aspecto específico prueban. Este enfoque mejora la comparabilidad de los casos de prueba y, por lo tanto, la visión general, y centra la atención del evaluador en lo esencial: las características que los diferencian.
La estructura jerárquica de los casos de prueba permite desglosar problemas de prueba complejos en subproblemas, mejorando así la claridad y, como resultado, la calidad de la prueba.
Estas técnicas de modelado ayudan al evaluador a encontrar los casos realmente relevantes, evitando redundancias y realizando un seguimiento incluso de un gran número de casos de prueba. [ 6 ]
Generación automática de casos de prueba
TPT ofrece varias posibilidades para generar automáticamente casos de prueba:

- casos de prueba de clases de equivalencia
- casos de prueba para la cobertura de modelos Simulink mediante análisis estático y un método basado en búsqueda [ 7 ]
- casos de prueba mediante la construcción de secuencias a partir de variantes de estados y transiciones de un modelo de prueba.
- casos de prueba mediante la transformación de grabaciones de interacciones del usuario con el sistema bajo prueba a través de una interfaz gráfica de usuario (panel de control).
Pruebas reactivas
Con TPT, cada caso de prueba puede reaccionar específicamente al comportamiento del sistema [ 8 ] durante el proceso de prueba en tiempo real; por ejemplo, reaccionar al sistema justo cuando se produce un estado determinado o cuando una señal de sensor supera un umbral específico. Si, por ejemplo, se va a simular un fallo de un sensor en el controlador del motor cuando se supera la velocidad de ralentí del motor, debe ser posible reaccionar al evento "velocidad de ralentí del motor superada" en la descripción del caso de prueba.
Ejecución de pruebas
Los casos de prueba de TPT se realizan independientemente de su ejecución. Gracias al concepto de máquina virtual (VM), pueden ejecutarse en prácticamente cualquier entorno, incluso en entornos en tiempo real . Algunos ejemplos son MATLAB / Simulink , TargetLink , ASCET, código C , CAN , AUTOSAR , SystemDesk, DaVinci CT, LABCAR, INCA, Software-in-the-Loop (SiL) y HiL . Por lo tanto, TPT es una herramienta integrada que se puede utilizar en todas las fases de prueba del desarrollo, como las pruebas unitarias , de integración , de sistema y de regresión .
Para el análisis y la medición de la cobertura de código , TPT puede interactuar con herramientas de cobertura como Testwell CTC++ para código C.
Se puede utilizar una interfaz gráfica de usuario configurable (panel de control), basada en widgets de interfaz gráfica de usuario , para interactuar con las pruebas.
Máquina virtual TPT
Los casos de prueba modelados en TPT se compilan y, durante la ejecución de la prueba, son interpretados por la denominada máquina virtual (VM). La VM es la misma para todas las plataformas y todas las pruebas. Solo un adaptador de plataforma realiza el mapeo de señales para cada aplicación. La TPT-VM está implementada en ANSI C , requiere tan solo unos pocos kilobytes de memoria y puede prescindir por completo de la asignación dinámica de memoria, lo que permite su aplicación incluso en entornos minimalistas y con pocos recursos. También existen API para C y .NET .
La máquina virtual de TPT puede procesar pruebas en tiempo real con un comportamiento de respuesta definido. Los tiempos de respuesta de los casos de prueba de TPT suelen ser de microsegundos, dependiendo de la complejidad y el hardware de prueba.
Evaluación de pruebas programadas
El comportamiento esperado del sistema para cada caso de prueba individual también debe probarse automáticamente para garantizar procesos de prueba eficientes. TPT ofrece la posibilidad de calcular las propiedades del comportamiento esperado en línea (durante la ejecución de la prueba) y fuera de línea (después de la ejecución de la prueba). Si bien la evaluación en línea utiliza las mismas técnicas de modelado que el modelado de pruebas, la evaluación fuera de línea ofrece posibilidades mucho más amplias para evaluaciones más complejas, incluyendo operaciones como comparaciones con datos de referencia externos, monitoreo de valores límite, filtros de señal, análisis de secuencias de estados y condiciones de tiempo.
La evaluación offline se basa, técnicamente hablando, en el lenguaje de scripts Python , que se ha ampliado con elementos sintácticos específicos y una biblioteca de evaluación especializada para ofrecer un soporte óptimo a la evaluación de pruebas. El uso de un lenguaje de scripts garantiza una gran flexibilidad en la evaluación: permite el acceso a datos de referencia, la comunicación con otras herramientas y el desarrollo de bibliotecas propias específicas para la evaluación de pruebas. Además de la evaluación de resultados basada en scripts, las interfaces de usuario facilitan el acceso a las evaluaciones y ayudan a los usuarios sin conocimientos de programación a evitar la necesidad de escribir scripts.
Los datos de medición procedentes de otras fuentes, como TargetLink , el registro de señales de Simulink o los datos de medición de MCD-3, pueden evaluarse automáticamente. Estos datos pueden ser independientes de la ejecución de la prueba.
Documentación de prueba
La documentación de pruebas TPT, conforme a la norma IEEE 829, presenta el resultado de la evaluación al evaluador en un informe HTML. Este informe no solo muestra el resultado de cada caso de prueba (éxito, fallo o desconocido), sino que también incluye detalles como parámetros o señales características observadas durante la ejecución o calculadas durante la evaluación. Dado que la evaluación proporciona información precisa sobre la temporización y el comportamiento verificado, esta información se incluye en el informe. El contenido y la estructura de la documentación se pueden configurar libremente mediante una plantilla.
Gestión de pruebas
TPT brinda soporte a la gestión de pruebas de los proyectos de prueba de TPT con las siguientes actividades:
- Desarrollo de casos de prueba en un proyecto de prueba
- Planificación de pruebas mediante la configuración del conjunto de pruebas y la configuración de la ejecución de las pruebas.
- Ejecución y evaluación automáticas de pruebas en una campaña de pruebas.
- Informe de pruebas (detallado para cada ejecución de prueba individual)
- Informes de resumen de pruebas en diferentes ciclos de lanzamiento y
- Trazabilidad de los requisitos, pruebas, ejecuciones de pruebas y resultados de las pruebas.
Seguimiento de requisitos
Las normas industriales como IEC 61508 , DO-178B , EN 50128 e ISO 26262 exigen la trazabilidad de los requisitos y las pruebas . TPT ofrece una interfaz con herramientas de gestión de requisitos como Telelogic DOORS para facilitar estas actividades.
Solicitud
TPT es una herramienta de prueba basada en modelos que se aplica principalmente en el desarrollo de controladores para automóviles [ 9 ] y fue desarrollada originalmente por Daimler AG para su propio desarrollo. Daimler coordinó el desarrollo de la herramienta de prueba durante años. [ 10 ] Desde 2007, PikeTec continúa su desarrollo. TPT es utilizada por muchos otros fabricantes de automóviles como BMW , Volkswagen , Audi , Porsche y General Motors, así como por proveedores como Robert Bosch GmbH , Continental y Hella . [ 11 ]
Referencias
- 1 2 "Justyna Zander-Nowicka, Abel Marrero Pérez, Ina Schieferdecker, Zhen Ru Dai: Test Design Patterns for Embedded Systems, In: 10th International Conference on Quality Engineering in Software Technology, CONQUEST 2007, Potsdam, Alemania, septiembre de 2007" (PDF) . Archivado del original (PDF) el 2 de marzo de 2012. Recuperado el 8 de agosto de 2013 .
- ↑ Karl J. Åström y Richard M. Murray (2008). Sistemas de retroalimentación: Una introducción para científicos e ingenieros (PDF) . Princeton University Press. ISBN 978-0-691-13576-2.
- ↑ "Schieferdecker, Bringmann, Grossmann: Continuous TTCN-3: Testing of Embedded Control Systems, In: Proceedings of 28th International Conference on Software Engineering, Shanghai, China, 2006" (PDF) . Consultado el 8 de agosto de 2013 .
- ↑ "Bringmann, Krämer: Pruebas sistemáticas del comportamiento continuo de sistemas automotrices En: Conferencia Internacional sobre Ingeniería de Software: Actas del taller internacional de software de 2006, Shanghái, China, 2006" (PDF) . Consultado el 8 de agosto de 2013 .
- ↑ "Lehmann, TPT – Disertación, 2003" (PDF) . Consultado el 8 de agosto de 2013 .
- ↑ "Lehmann: Pruebas de partición de tiempo: un método para probar el comportamiento funcional dinámico EN: Actas de Test2000, Lindon, Gran Bretaña, 2000" . Evotest.iti.upv.es . Consultado el 8 de agosto de 2013 .
- ↑ Benjamin Wilmes: Hybrides Testverfahren für Simulink/TargetLink-Modelle , disertación, TU-Berlín, Alemania, 2015.
- ↑ "Grossmann, Müller: Una semántica de comportamiento formal para TestML; En: Actas de ISOLA 06, Pafos, Chipre, noviembre de 2006" (PDF) . Immos-project.de.
- ↑ Bringmann, E.; Krämer, A. (2008). "Pruebas basadas en modelos de sistemas automotrices" (PDF) . Conferencia Internacional de 2008 sobre Pruebas, Verificación y Validación de Software . Conferencia Internacional sobre Pruebas, Verificación y Validación de Software (ICST). págs. 485–493 . doi : 10.1109/ICST.2008.45 . ISBN 978-0-7695-3127-4.
- ↑ Conrado, Mirko; Fey, Inés; Grochtmann, Matías; Klein, Torsten (9 de julio de 2001). "Modellbasierte Entwicklung eingebetteter Fahrzeugsoftware bei DaimlerChrysler". Informatik-Forschung und Entwicklung . 20 ( 1– 2): 3– 10. doi : 10.1007/s00450-005-0197-5 .
- ↑ Sitio web de Hauser Automotive. Consultado el 16 de marzo de 2015. Archivado el 24 de noviembre de 2015 en Wayback Machine.
Enlaces externos
- TPT
- Herramientas de prueba de software
- Pruebas unitarias