Las pruebas unitarias son hoy una de las medidas estándar en el proceso de desarrollo de software. Con su ayuda se reduce la tasa de error de los módulos individuales y se simplifica la integración posterior. Las pruebas unitarias permiten comprobar condiciones de error que no pueden o no deben alcanzarse en una prueba del sistema.
FORTecH lleva utilizando pruebas unitarias en su propio proceso de desarrollo desde que se publicaron los primeros marcos de trabajo. Debido a la gran diversidad de entornos de destino en el entorno embebido, confiamos en nuestro propio marco, sencillo y pragmático, para C y C++, que se basa en los conceptos de CppUnit.
En contraste con los complejos sistemas de pruebas integrados, partimos de la base de que la comprobabilidad comienza con el diseño. Los módulos utilizan interfaces que permiten realizar pruebas aisladas. Esto permite probar el código del producto para C y C++ en bibliotecas estáticas que se ejecutan sin cambios en el producto. De este modo pueden excluirse fuentes de error como el uso de distintas opciones del compilador. Los resultados de las pruebas se generan en un formato compatible con JUnit, lo que permite integrarlos fácilmente en sistemas de integración continua como Jenkins/Hudson.
En los sistemas de destino más potentes, con su propio sistema operativo y funcionalidad shell, solemos utilizar el despliegue y la transferencia de resultados controlados por secuencias de comandos. Para aplicaciones de microcontroladores más pequeños, por ejemplo basados en ARM Cortex M0...M4, el control de las pruebas y la evaluación se traslada a la máquina de desarrollo. En el microcontrolador sólo se carga el código que se va a probar, los casos de prueba y un servidor minimalista. La interfaz utilizada para la comunicación depende de los recursos del sistema de destino (USB, CAN, LIN, ...) y puede personalizarse. El ordenador de desarrollo controla la ejecución de la prueba mediante una interfaz gráfica de usuario o una línea de comandos. El entorno de desarrollo y el control de las pruebas funcionan en paralelo, de modo que es posible la ejecución selectiva de pruebas unitarias individuales en el depurador.
Estaremos encantados de ayudarle a adaptar nuestras herramientas a su entorno de desarrollo específico. Si lo desea, estamos a su disposición para ayudarle a integrar las pruebas unitarias en sus procesos.