La prueba en tiempo real es el proceso de probar sistemas informáticos en tiempo real .
Las pruebas de software se realizan para detectar y ayudar a corregir errores (errores) en el software de computadora. Las pruebas implican garantizar no solo que el software esté libre de errores, sino que proporcione la funcionalidad requerida al usuario. Los métodos de prueba estáticos y convencionales pueden detectar errores, pero estas técnicas pueden no garantizar resultados correctos en sistemas de software en tiempo real.
Los sistemas de software en tiempo real tienen restricciones estrictas de tiempo y tienen un comportamiento determinista. Estos sistemas tienen que programar sus tareas de manera que se cumplan las limitaciones de tiempo que se les imponen. La forma convencional de análisis estático no es adecuada para hacer frente a tales limitaciones de tiempo, por lo que es importante realizar pruebas adicionales en tiempo real. [1]
Estrategia
El diseño de casos de prueba para pruebas en tiempo real se puede proponer en cuatro pasos [2]
- Prueba de tareas
- En el primer paso, cada tarea se prueba individualmente con pruebas estáticas convencionales. Esta prueba se realiza solo para descubrir los errores en la lógica o la sintaxis del programa. El orden de los eventos no importa, ya que la prueba de tareas no se ocupa de las limitaciones de tiempo y las propiedades de tiempo de los eventos.
- Pruebas de comportamiento
- Usando los modelos de sistema diseñados con la ayuda de herramientas de prueba automatizadas, es posible simular el comportamiento del sistema en tiempo real y el impacto de eventos externos concurrentes en su comportamiento.
- Pruebas entre tareas
- Una vez que se realiza la prueba con la tarea individual, se supone que la tarea está libre de errores en el área de codificación y comportamiento. Las limitaciones relacionadas con el tiempo se prueban con pruebas entre tareas. Para revelar los errores en la comunicación, las tareas asincrónicas se prueban con velocidades de datos variables y diferentes cargas útiles.
- Prueba del sistema
- En esta prueba, el software y el hardware se integran y se lleva a cabo una gama completa de pruebas del sistema para descubrir errores, si los hay, durante la interfaz de software y hardware .
Herramientas para pruebas en tiempo real
A medida que las pruebas de sistemas en tiempo real se vuelven más importantes, existen algunas herramientas diseñadas para tales pruebas.
MSC
Los gráficos de secuencia de mensajes son un estándar aceptado internacionalmente para capturar requisitos. [3] MSC proporciona un lenguaje gráfico 2-D que a menudo se requiere para recopilar requisitos a través de algunos escenarios de interacción.
SDL
El lenguaje de especificación y descripción es un estándar que se utiliza para el diseño y el análisis. SDL [4] admite la especificación de sistemas de software complejos y se ha aplicado ampliamente en una amplia gama de dominios, desde las telecomunicaciones y la automatización hasta el desarrollo de software en general.
TTCN
Testing and Test Control Notation es el único lenguaje de prueba estándar internacional. TTCN3 [5] proporciona una aplicabilidad más amplia, en comparación con versiones anteriores de TTCN, que se centraban principalmente en protocolos OSI únicamente.
Estos tres estándares juntos se utilizan para probar aplicaciones en tiempo real. Es necesario que los requisitos se cumplan con estos modelos y los casos de prueba generados deben capturar la información funcional y en tiempo real necesaria para probar los sistemas. Además, los cambios en los requisitos de diseño y la nueva información sobre las propiedades en tiempo real de los sistemas deben introducirse en los modelos para poder conocer su impacto.
Para capturar con precisión las propiedades en tiempo real de un sistema de prueba dado y garantizar que los requisitos y modelos se utilicen para generar información de tiempo realista y ejecutable, es esencial que el lenguaje en sí (TTCN-3) tenga un modelo bien entendido y semánticamente sólido de hora.
TTCN-3
Fondo
TTCN-3 es el único idioma de prueba estandarizado internacionalmente disponible actualmente. Antes de TTCN3, sus versiones anteriores tenían una funcionalidad limitada y un alcance limitado sobre el protocolo OSI. Pero TTCN3 es una versión avanzada y tiene una aplicabilidad más amplia.
Las características de TTCN3 son:
- capacidad para especificar pruebas dinámicas concurrentes
- operaciones para comunicaciones basadas en mensajes y procedimientos
- la capacidad de especificar plantillas de datos y firmas con poderosos mecanismos de coincidencia
- parametrización de tipo y valor
- la asignación y manejo de veredictos de prueba
- Mecanismos de parametrización de la suite de pruebas y selección de casos de prueba
La razón para usar TTCN3 para pruebas en tiempo real se debe a sus temporizadores. Estos temporizadores se definen en conjuntos de pruebas funcionales . No se utilizan temporizadores de tipo global en TTCN3. Estos temporizadores se pueden iniciar, detener y verificar mediante funciones simples como timer.start, timer.stop y timer.read.
Snapshot Semantics es una técnica en TTCN3 (también en TTCN2), que se ocupa del mensaje que se pasa durante la comunicación de sistema a sistema o implementación bajo prueba. Cuando el sistema bajo prueba recibe una serie de respuestas, se toma una instantánea y se evalúan en orden de llegada. Entonces, cada vez que se rodea un conjunto de atributos, se toma una instantánea y solo se evalúan aquellos eventos que están presentes en la instantánea.
Pero esta técnica no es eficiente ya que algunos eventos y la información de sus atributos pueden perderse mientras se toma la instantánea. Es posible que algunos eventos se registren en la cola de procesamiento, pero no en la instantánea. Tales eventos nunca pueden procesarse. Además, si el equipo de ejecución de pruebas no es lo suficientemente rápido, no podrá comunicarse correctamente con el sistema bajo prueba. Por lo tanto, se pueden generar fallas durante dicha evaluación de prueba.
Herramientas de Linux [6] [7]
Ver también
Referencias
- ^ Tsai, JJP; Fang, K.-Y .; Bi, Y.-D. (1990). "Sobre pruebas y depuración de software en tiempo real". Proceedings., Decimocuarta Conferencia Anual Internacional de Software y Aplicaciones de Computación . págs. 512–518. doi : 10.1109 / CMPSAC.1990.139423 . ISBN 978-0-8186-2054-6.
- ^ Pressman, Roger S. (2005). Ingeniería de software: enfoque de un profesional (6ª ed.). Boston, Mass .: McGraw-Hill. ISBN 0-07-285318-2. OCLC 53848343 .
- ^ Generación de casos de prueba TTCN-3 a partir de gráficos de secuencia de mensajes (PDF) .
- ^ "SDL Forum Society - Página de inicio" . sdl-forum.org . Consultado el 8 de marzo de 2021 .
- ^ Usuario, Super. "Inicio" . TTCN-3 . Consultado el 8 de marzo de 2021 .
- ^ Dahlke, Patrick (6 de febrero de 2018). "Linux en tiempo real" . Medio . Consultado el 10 de marzo de 2021 .
- ^ "Mejores prácticas de pruebas en tiempo real - eLinux.org" . elinux.org . Consultado el 10 de marzo de 2021 .