Pruebas unitarias

Las pruebas unitarias de software son el primer nivel de las pruebas de módulos individuales, componentes o partes de código. En las pruebas, los módulos individuales se prueban como componentes independientes para garantizar que funcionan correctamente y que son adecuados para su integración con otros componentes.
Estas pruebas las realizan los desarrolladores. Los desarrolladores suelen escribir pruebas unitarias para un fragmento de código escrito por ellos. Como ya se ha dicho, éste es el primer nivel de las pruebas. Una vez comprobados los componentes individuales, se realizan las pruebas de integración.
Las pruebas unitarias no pueden hacerse manualmente. Las pruebas son siempre automatizadas y utilizan con mayor precisión la técnica de pruebas de caja blanca, porque para probar el código se necesita conocer la parte del código y la arquitectura interna. Los desarrolladores crean pruebas unitarias pasando las entradas necesarias a un script de prueba y comparando la salida real con los resultados esperados.
Ventajas de las pruebas unitarias
- Los errores del módulo pueden detectarse en fases más tempranas del desarrollo. Por tanto, el coste de la corrección de errores se reduce considerablemente.
- Las pruebas unitarias aumentan la eficacia de las pruebas y una mejor utilización de los recursos, porque las pruebas de los módulos pueden iniciarse sin tener que esperar a que terminen otros módulos.
- Para las pruebas unitarias, es posible realizar pruebas exhaustivas centradas en funciones individuales.
- Las pruebas unitarias ayudan a acelerar el desarrollo y la depuración, porque ejecutando pruebas unitarias se puede detectar fácilmente el impacto de los nuevos cambios.
- Un informe de pruebas unitarias satisfactorio crea una sensación de confianza sobre la calidad del código. Los módulos probados con éxito mediante pruebas unitarias pueden fusionarse fácilmente con otros módulos.
Limitaciones de las pruebas unitarias
- Las pruebas unitarias no pueden detectar problemas de integración o interconexión entre dos módulos.
- No puede detectar errores complejos del sistema originados en varios módulos.
- No puede probar características no funcionales como la usabilidad, la escalabilidad, el rendimiento general del sistema, etc.
- Las pruebas unitarias no pueden garantizar la corrección funcional ni la conformidad de una aplicación con sus requisitos empresariales.