TPT ( prueba de partición de tiempo ) es una metodología de prueba sistemática para la prueba de software automatizada y verificación de sistemas de control integrados , sistemas ciberfísicos y programas de flujo de datos . TPT está especializado en la prueba y validación de sistemas integrados cuyas entradas y salidas se pueden representar 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 sistema. La característica sobresaliente de los sistemas de control es el hecho de que interactúan estrechamente interrelacionados con un entorno del mundo real. Los controladores deben observar su entorno y reaccionar en consecuencia 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 de sincronización. Los métodos de prueba funcionales tradicionales usan scripts; TPT usa pruebas basadas en modelos .
Desarrollador (es) | PikeTec GmbH |
---|---|
Lanzamiento estable | 16/11 de noviembre de 2020 |
Sistema operativo | Ventanas |
Disponible en | inglés |
Tipo | Pruebas de software |
Licencia | Propiedad |
Sitio web | www |
TPT combina una técnica de modelado sistemático y gráfico para casos de prueba con una ejecución de prueba totalmente automatizada en diferentes entornos y evaluación de prueba automática. TPT cubre las siguientes cuatro actividades de prueba:
- modelado de casos de prueba
- ejecución de pruebas en diferentes entornos (automatizado)
- análisis del resultado de la prueba (evaluación de la prueba (automatizada))
- documentación de prueba (automatizada)
- gestión de pruebas
Casos de prueba gráfica
En TPT, las pruebas se modelan gráficamente con la ayuda de máquinas de estado especiales y particiones de tiempo. [1] [3] Todos los casos de prueba para un sistema bajo prueba pueden modelarse usando un autómata híbrido. Las pruebas suelen constar de una secuencia de fases lógicas. Los estados de la máquina de estados finitos representan los pases 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 pasan a formar parte de los gráficos, apoyando la legibilidad simple y demostrativa incluso para los no programadores. Técnicas sustanciales como máquinas de estado de bifurcación jerárquica y paralela , bifurcación condicional, reactividad , descripción de señales, señales medidas , así como listas de pasos de prueba simples permiten un modelado intuitivo y gráfico incluso de casos de prueba complejos.
La complejidad de la prueba se esconde detrás de los gráficos. La descripción de la señal de nivel más bajo consta de listas de pasos de prueba o de las denominadas definiciones directas.
Modelado de secuencias simples: Lista de pasos de prueba
Mediante el uso de la Lista de pasos de prueba, se pueden modelar secuencias simples de pasos de prueba que no necesitan ejecutarse en paralelo, como señales de ajuste (canal de ajuste), señales de rampa (canal de rampa), parámetros de ajuste (parámetro de ajuste), y esperando (Espera). Las solicitudes de los resultados de prueba esperados se pueden realizar dentro de la secuencia de prueba para evaluar el sistema bajo prueba mientras se ejecuta. También es posible colocar subautomatones 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 una gran 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 llamadas "Definiciones directas". Con este tipo de modelado, se pueden definir señales en función del tiempo, variables pasadas / eventos de prueba y otras señales. También es posible definir estas señales escribiendo el código " C -Style", así como importando datos de medición y utilizando un editor de señales manual.
Funciones
Es posible definir funciones que pueden actuar como clientes o servidores . Las funciones de cliente se llaman desde TPT en el sistema bajo prueba, donde las funciones de servidor implementadas en TPT pueden llamarse como " funciones stub " desde el sistema bajo prueba. El propio TPT también puede llamar a las funciones del servidor.
Casos de prueba sistemáticos
TPT fue desarrollado específicamente para probar el comportamiento continuo y reactivo de sistemas integrados. [4] El TPT puede verse como la extensión del método del árbol de clasificación en términos de comportamiento temporal. Debido 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 una gran cantidad de casos de prueba, lo que hace posible encontrar fallas en el sistema bajo prueba con un número ideal de casos de prueba.
La idea subyacente de la sistemática de 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 "sólo" pueden diferenciarse en unos pocos, pero cruciales detalles. [5] TPT hace uso de este hecho modelando y utilizando estructuras conjuntas. Por un lado, se evitan así los despidos. Por otro lado, queda muy claro en qué se diferencian realmente los casos de prueba, es decir, en qué aspecto específico prueban respectivamente. La comparabilidad de los casos de prueba y, por lo tanto, la descripción general se mejora en este enfoque y la atención del evaluador se centra en lo esencial: las características diferenciadoras de los casos de prueba.
La estructura jerárquica de los casos de prueba permite dividir los problemas de prueba complejos en subproblemas, mejorando así también 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 comprende varias posibilidades para generar casos de prueba automáticamente:
- casos de prueba de clases de equivalencia
- casos de prueba para la cobertura de modelos de Simulink mediante el uso de análisis estático y un método basado en búsquedas [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 las interacciones del usuario con el sistema bajo prueba a través de una interfaz gráfica de usuario (Tablero)
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, para reaccionar en el sistema exactamente cuando ocurre un cierto estado del sistema o una señal del sensor excede un cierto umbral. Si, por ejemplo, se va a simular un fallo de sensor para un controlador de motor cuando se excede la velocidad de ralentí del motor, debe ser posible reaccionar al evento "velocidad de ralentí del motor excedida" en la descripción del caso de prueba.
Ejecución de pruebas
Los casos de prueba de TPT se hacen independientes de su ejecución. Los casos de prueba se pueden ejecutar en casi cualquier entorno gracias al concepto de máquina virtual (VM) también en entornos de tiempo real . Algunos ejemplos son MATLAB / Simulink , TargetLink , ASCET, C-code , CAN , AUTOSAR , SystemDesk, DaVinci CT, LABCAR, INCA, Software-in-the-Loop (SiL) y HiL . Por lo tanto, TPT es una herramienta integrada que se utilizará en todas las fases de prueba del desarrollo, como pruebas unitarias , pruebas de integración , pruebas de sistemas y pruebas 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-código .
Se puede utilizar una interfaz gráfica de usuario configurable (Dashboard), basada en widgets GUI , para interactuar con las pruebas.
Máquina virtual TPT
Los casos de prueba modelados en TPT son compilados y durante la ejecución de la prueba interpretados por la llamada 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 la aplicación individual. El TPT-VM está implementado en ANSI C y requiere una memoria de solo unos pocos kilobytes y puede prescindir completamente de una asignación de memoria dinámica, lo que permite su aplicación en entornos minimalistas y con pocos recursos también. También hay 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 se dan normalmente en microsegundos, según la complejidad y el hardware de prueba.
Evaluación de prueba programada
El comportamiento esperado del sistema para casos de prueba individuales también debe probarse automáticamente para asegurar 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 prueba, la evaluación fuera de línea ofrece posibilidades de mayor alcance para evaluaciones más complejas, incluidas operaciones como comparaciones con datos de referencia externos, monitoreo de valores límite, filtros de señales, análisis de secuencias de estado y tiempo. condiciones.
La evaluación offline se basa técnicamente en el lenguaje de script Python , que se ha ampliado con elementos específicos del lenguaje sintáctico y una biblioteca de evaluación especializada para dar un soporte óptimo a la evaluación de la prueba. El uso de un lenguaje de escritura garantiza un alto grado de flexibilidad en la evaluación de la prueba: se admite el acceso a los datos de referencia, la comunicación con otras herramientas y el desarrollo de bibliotecas propias específicas de dominio para la evaluación de la prueba. Además de las interfaces de usuario de evaluación de resultados de pruebas basadas en secuencias de comandos, proporcionan un acceso sencillo a las evaluaciones de las pruebas y ayudan a los no programadores a evitar las secuencias de comandos.
Los datos de medición de otras fuentes como TargetLink y el registro de señales de Simulink o los datos de medición de MCD-3 se pueden evaluar automáticamente. Estos datos pueden ser independientes de la ejecución de la prueba.
Documentación de prueba
La documentación de la prueba TPT de acuerdo con IEEE 829 presenta el resultado de la evaluación de la prueba al probador en un informe HTML, en el que no solo la información pura "éxito", "fallido" o "desconocido" se puede representar como el resultado de la prueba para cada caso de prueba, pero también detalles como parámetros característicos o señales que se han observado en la ejecución de la prueba o calculadas en la evaluación de la prueba. Dado que la evaluación de la prueba devuelve información adecuada sobre el tiempo y el comportamiento verificado, esta información puede estar disponible en el informe. El contenido de la documentación de prueba, así como la estructura del documento, se pueden configurar libremente con la ayuda de una plantilla.
Gestión de pruebas
TPT admite la gestión de pruebas de proyectos de prueba TPT con las siguientes actividades:
- Desarrollo de casos de prueba en un proyecto de prueba
- Planificación de pruebas a través de la configuración del conjunto de pruebas y la configuración de ejecución de pruebas
- Ejecución y evaluación automática de pruebas (valoración) en una campaña de pruebas
- Informe de prueba (detallado para una ejecución de prueba individual)
- Informe resumido de prueba sobre diferentes ciclos de lanzamiento y
- Trazabilidad de requisitos, pruebas, ejecuciones de pruebas, resultados de pruebas
Seguimiento de requisitos
Las normas de la industria como IEC 61508 , DO-178B , EN 50128 e ISO 26262 requieren la trazabilidad de los requisitos y las pruebas . TPT ofrece una interfaz para herramientas de requisitos como Telelogic DOORS para respaldar estas actividades.
Solicitud
TPT es una herramienta de prueba basada en modelos y se aplica principalmente en el desarrollo de controladores automotrices [9] y originalmente se desarrolló dentro de Daimler AG para su propio desarrollo. Daimler coordinó el desarrollo de la herramienta de prueba durante años. [10] Desde 2007, PikeTec continúa con el desarrollo de la herramienta. TPT es utilizado por muchos otros fabricantes de automóviles como BMW , Volkswagen , Audi , Porsche y General Motors , así como proveedores como Robert Bosch GmbH , Continental y Hella . [11]
Referencias
- ^ a b "Justyna Zander-Nowicka, Abel Marrero Pérez, Ina Schieferdecker, Zhen Ru Dai: Patrones de diseño de prueba para sistemas embebidos, en: X Conferencia internacional sobre ingeniería de calidad en tecnología de software, CONQUISTA 2007, Potsdam, Alemania, septiembre de 2007" ( PDF) . Archivado desde el original (PDF) el 2012-03-02 . Consultado 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) . Prensa de la Universidad de Princeton. 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: Prueba sistemática del comportamiento continuo de los sistemas automotrices En: Conferencia internacional sobre ingeniería de software: Actas del taller internacional de software de 2006, Shanghai, China, 2006" (PDF) . Consultado el 8 de agosto de 2013 .
- ^ "Lehmann, TPT - Disertación, 2003" (PDF) . Consultado el 8 de agosto de 2013 .
- ^ "Lehmann: prueba 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. [1]
- ^ "Grossmann, Müller: una semántica de comportamiento formal para TestML; en: procedimiento de ISOLA 06, Paphos, Chipre, noviembre de 2006" (PDF) . Immos-project.de.
- ^ Bringmann, E .; Krämer, A. (2008). "Pruebas basadas en modelos de sistemas automotrices" (PDF) . 2008 Conferencia Internacional 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.
- ^ Conrad, Mirko; Fey, Ines; Grochtmann, Matthias; 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 automotriz de Hauser. Abgerufen am 16. de marzo de 2015 Archivado el 24 de noviembre de 2015 en la Wayback Machine.
enlaces externos
- PikeTec