La importancia de los test
El testing es una fase muy importante dentro del desarrollo software y que en ciertas ocasiones no se potencia lo sufiente, en muchos casos se hace un porcentaje muy bajo de test o directamente no se hace, esto puede provocar entregar un producto de mala calidad, y por tanto, puede ocasionar perdidas de clientes e ingresos a la compañia. En la actualidad, la calidad es una parte fundamental de un producto desarrollado.
Con las pruebas de software podremos detectar errores en nuestro código y probar si nuestro desarrollo cumple con los requisitos definidos. Esto ayuda al equipo de desarrollo a corregir los errores y entregar un producto con una buena calidad.
Dentro de los test, nos vamos a basar el la pirámide de testing o pirámide de Cohn para trasmitir la cantidad de tipos de test que debería tener nuestro desarrollo sofware:
Pirámide de testing original
Pirámide Arquitectura adaptada
Centrándonos en nuestra imagen resumida de la pirámide de Cohn, podemos observar que los test unitarios serán de los que más haya, posteriormente pruebas de integración y por último las pruebas de rendimiento.
A continuación, veremos en qué consiste cada módulo de la pirámide:
Test unitarios
Los test unitarias o también llamadas pruebas unitarias son la de más bajo nivel, es decir, cercana al código fuente de nuestra aplicación. Con estos test conseguimos probar de forma individual e independiente las funciones y métodos usados en nuestro desarrollo software.
Por otra parte, se aconseja realizar una práctica de programación denomina TDD o Test-Driven Development que consiste en escribir primero los test unitarios, y posteriormente escribir el código fuente que complete satisfactoriamente dicho test.
Test de integración
Los test de integración comprueban que los servicios usados por nuestra aplicación funcionan correctamente. Por ejemplo, se puede probar la integración con una base de datos, con microservicios que tenga integrados, etc... Son costosas de realizar, ya que depende de más partes y no solo de nuestra propia aplicación o módulo pero se vuelven muy importantes con las arquitecturas de microservicios.
Test rendimiento
Los test de rendimiento son las pruebas que se ejecutan en un sistema para comprobar su carga de trabajo, estabilidad, velocidad, etc, en ciertas condiciones de trabajo.