“Conocimiento software>Ingeniería del Software

¿Cuáles son las herramientas comunes utilizadas para la automatización de pruebas de software en el campo de tecnología integrada y las empresas de sistemas las usan?

2012/3/1
Las herramientas utilizadas para la automatización de pruebas de software en sistemas integrados son diversas, a menudo dependiendo del hardware específico, la arquitectura de software y las necesidades de prueba. Las compañías de sistemas usan absolutamente estas herramientas, ya que las pruebas manuales de los sistemas integrados son increíblemente lentos y propensos al error, especialmente dadas las interacciones a menudo complejas de hardware-software.

Aquí hay un desglose de las categorías y ejemplos de herramientas comunes:

1. Marcos de prueba: Estos proporcionan la estructura y la organización para las pruebas automatizadas.

* Test de Google (GTEST): Un marco de prueba C ++ ampliamente utilizado conocido por su simplicidad y extensibilidad. Comúnmente utilizado en proyectos integrados que usan C ++.

* Unidad: Un marco de prueba unitario ligero y multiplataforma adecuado para proyectos C y C ++. Popular en sistemas integrados debido a su pequeña huella.

* cpputest: Otro marco de pruebas unitarias de C ++ diseñado específicamente para sistemas integrados, enfatizando un uso mínimo de recursos.

* cunit: Un marco de prueba unitario para C.

* TestComplete: Un marco comercial que admite las secuencias de comandos en varios idiomas y puede automatizar las pruebas de GUI (aunque menos comunes directamente en los sistemas integrados de metal desnudo)

2. Entornos/corredores de ejecución de prueba: Estos administran la ejecución de suites de prueba e informes de resultados.

* Muchos ides incorporan corredores de prueba: Por ejemplo, Eclipse CDT puede integrarse con marcos como Google Test.

* Scripts personalizados: A menudo, los equipos de sistemas integrados escriben sus propios scripts (por ejemplo, utilizando Python o Bash) para orquestar la ejecución de las pruebas, particularmente para las pruebas de integración y nivel del sistema.

* Integración continua/sistemas de implementación continua (CI/CD): Jenkins, Gitlab CI, Azure DevOps, etc., se usan comúnmente para automatizar el proceso de compilación y prueba, incluso para sistemas integrados. Estos a menudo se integran con los marcos de prueba y los corredores.

3. Herramientas específicas del hardware: Estas herramientas a menudo unen la brecha entre el software de automatización de pruebas y el hardware integrado.

* Jtag Debuggers: Herramientas como las de Segger, Lauterbach o ARM proporcionan interfaces para depurar y probar el hardware en un nivel bajo. También pueden activar pruebas y capturar resultados.

* emuladores de circuito (ICES): Los ICE permiten escenarios de prueba más sofisticados que JTAG, que a menudo incluyen capacidades de rastreo y emulación en tiempo real. Estas son típicamente soluciones de alta gama.

* Simuladores de hardware-en-loop (HIL): Estos son sistemas avanzados que simulan el entorno externo del sistema integrado, lo que permite una prueba exhaustiva de la interacción del sistema con el mundo real sin la necesidad de componentes físicos o situaciones potencialmente peligrosas.

* Analizadores de bus de can/lin/Ethernet: Estas herramientas capturan y analizan la comunicación en autobuses automotrices e industriales, cruciales para probar sistemas integrados que se comunican sobre estos protocolos.

* Analizadores de osciloscopio/lógica: Para el examen de señal de hardware directo.

4. Herramientas de análisis de cobertura de prueba: Estos miden cuán completamente el conjunto de pruebas cubre el código.

* gcov (GCC): Una herramienta incorporada dentro del compilador GCC que proporciona información de cobertura de código.

* Herramientas comerciales: Las herramientas más sofisticadas proporcionan informes detallados de cobertura, incluida la cobertura de la sucursal, la cobertura de condición y MC/DC (condición modificada/cobertura de decisión), que a menudo es exigida por los estándares de seguridad (como ISO 26262).

5. Herramientas de gestión de pruebas: Estos ayudan a organizar y administrar el proceso de prueba.

* Jira, Azure DevOps, TestRail: Estas son herramientas comunes para administrar casos de prueba, rastrear errores e informar sobre los resultados de las pruebas.

Qué herramientas usan las empresas: La elección depende en gran medida de factores como:

* Presupuesto: Las herramientas de código abierto como Google Test y Unity son atractivas por razones de costos. Las herramientas comerciales ofrecen características más avanzadas, pero vienen con un precio.

* Complejidad del proyecto: Es posible que los proyectos simples solo necesiten un marco de prueba unitario, mientras que los sistemas complejos requerirán un conjunto de herramientas más extenso.

* Estándares de seguridad: Las aplicaciones críticas de seguridad (automotriz, aeroespacial, médica) a menudo requieren el uso de herramientas que cumplen con estándares específicos y ofrecen un análisis de cobertura avanzada.

* Plataforma de hardware: Las interfaces y el hardware de depuración disponibles influirán en la elección de las herramientas.

* Experiencia del equipo: Las habilidades del equipo de ingeniería determinarán la viabilidad de adoptar y usar herramientas particulares.

En resumen, las empresas de sistemas involucradas en el desarrollo de sistemas integrados utilizan una amplia gama de herramientas, a menudo combinando opciones de código abierto y comerciales para construir una infraestructura de prueba personalizada que satisfaga sus necesidades específicas y requisitos de proyecto. La tendencia es hacia una mayor automatización e integración con tuberías de CI/CD.

Ingeniería del Software
¿Cuál es el propósito de la barra de herramientas de Medisoft?
Como montar funciones lineales en MATLAB
¿Cuál es la diferencia entre Autocad y Autocad LT
¿Qué es el software?
¿Por qué el algoritmo es tan importante en el desarrollo de software?
¿Diferencia entre el programa y el producto de software?
Autocad Tipos tejados
¿Qué es un archivo CVS
Conocimiento de la computadora © http://www.ordenador.online