¿Alguna vez has usado la prueba unitaria? Seguro que como buen desarrollador no empiezas a implementar ningún código sin realizar exhaustivas pruebas con anterioridad, pero ¿has incluido la prueba unitaria entre tus verificaciones? A través de los test unitarios puedes probar los módulos individuales de un programa grande y descubrir si este funciona correctamente.
El concepto de prueba unitaria puede ser llevado a todos los lenguajes de programación y es ideal que, como desarrollador, tengas una buena cantidad de test unitarios por código, para asegurar a los demás desarrolladores la efectividad de tu código. Recuerda, si un código fuente es probado con una prueba unitaria, generará mayor seguridad.
¿Te gustaría aprender más en profundidad qué es un test unitario? ¿Aprender cómo hacer una prueba unitaria? ¿Cuáles son las ventajas y desventajas de estas pruebas unitarias de software? Aquí solucionaremos todas esas dudas.
¿Qué es una prueba unitaria?
Hafeezul Kareem Shaik en su artículo Prueba unitaria con el módulo unittest de Python del portal GeekFlare presenta a la prueba unitaria como una técnica para comprobar si está funcionando de manera correcta un pequeño bloque de código independiente (que no depende de otras piezas de código del proyecto), que en la mayoría de casos podría ser una función.
Según explica Andres Sacco en el curso online de Crea tus primeros tests unitarios con JAVA, una prueba unitaria “es aquella que se encarga de chequear la parte más pequeña de una aplicación o una librería, como puede ser un método de una clase. Esto se hace para reducir el riesgo de que un fragmento de un código pueda tener fallas y que luego sea difícil encontrar el origen de un error”.
Aunque, como se mencionó antes, las herramientas de las pruebas unitarias pueden ser usadas con cualquier lenguaje de programación, siempre es bueno manejarlo en un lenguaje en específico, como el lenguaje de Java, que utiliza Sacco en el curso.
Tipos de pruebas unitarias
Sacco aclara en el curso online que existen dos tipos de test unitarios:
- Las pruebas manuales: es una técnica de prueba unitaria que implica la interacción de una persona. Por ejemplo, cuando debes entrar a una página web y completar un formulario y comprobar que tus datos son correctos. En las pruebas manuales, los humanos deben realizar la prueba unitaria de forma manual tras completar el desarrollo. Lo cual hace que crear pruebas unitarias manualmente sea largo.
- Las pruebas automáticas: pueden ser de varios tipos los unitarios, los de integración, los de componente y los de end to end. Esta es una técnica de prueba unitaria donde los programas realizan la prueba automáticamente y aunque cada una aporta un scope distinto, todas son repetibles en el tiempo y tienen la menor intervención humana posible o ningún tipo de intervención.
¿Cuándo generar una prueba unitaria?
Para Sacco el momento ideal para crear un test unitario es siempre. Según él en cada caso posible debería realizarse una prueba unitaria de software, por cada valor que genere un comportamiento distinto en el código.
También, es importante identificar dónde se encuentran los posibles casos de error de código y los casos de éxito, “para no generar un conjunto de pruebas unitarias que demuestren exáctamente lo mismo y que nos den una falsa sensación de buena cantidad de test unitarios”, según aclara Sacco.
Busque que cada prueba produzca los resultados correctos (éxito o fracaso), incluso si la prueba unitaria será la única prueba que se ejecute.
Recuerda que las ventajas de las pruebas unitarias son:
- Detectar errores que no se contemplaron en la fase de desarrollo.
- Respaldar futuros cambios en la lógica de los métodos o funciones.
- Mejora la calidad del código.
- Sirven como documentación del proyecto.
¿Cómo hacer una prueba unitaria?
Ahora que ya sabes qué es una prueba unitaria, los tipos de pruebas unitarias que existen y cuándo deberías hacer uso de un test unitario, veamos cómo se hace una prueba unitaria.
Escoge la librería correcta
Lo primero que se debe hacer es escoger la librería de programación con la que harás tu prueba unitaria. Para hacer esa elección, Sacco te sugiere tener en cuenta los siguientes puntos:
- El nivel de mantenimiento de las librerías: ¿cada cuánto publican una nueva versión?
- ¿Cuántos bugs o problemas tiene la librería?: aunque la librería saque muchas nuevas versiones, es posible que esté reportada por muchos bugs o problemas. Esto complicaría tu prueba unitaria, porque si falla no sabrás si fue por la forma en la que hiciste el test unitario o por la librería que usaste.
- Qué tan grande es la comunidad de desarrolladores que lo utiliza: si es muy pequeña habrá poca bibliografía sobre esta librería. Aunque no es algo directamente malo, si afecta los dos puntos anteriores, porque la cantidad de problemas reportados y de versiones nuevas será menor en comparación a otras librerías.
Para el siguiente paso a paso se utilizará la librería JUnit 5, que es muy utilizada para las pruebas unitarias en Java.
Paso a paso para crear la prueba unitaria
1. Lo primero que se debe hacer es incluir como dependencia a JUnit 5 en el código, dentro del scope de “test”, para que cuando este se empaquete la dependencia no sea incluida, ya que solo será requerida para los test.
2. Una vez hecho eso genera un paquete y ponle el nombre que consideres, por ejemplo: prueba unitaria #1.
3. Dentro del mismo genera una clase que se llame ‘Operation Test’, el cual se encargará de hacer la prueba unitaria que necesites.
4. Como en este ejemplo, vamos a hacer una prueba unitaria acerca de la suma de dos valores, debes generar un método que no regresará nada (should return sum two numbers).
5. Luego, hay que seguir la estructura When-Given-Then. En donde: en When debes poner las condiciones que debe cumplir el código. En Given debes poner cuál es la operación que se va a medir. Y en Then pruebas que el código llega al resultado esperado.
6. Y cuando ya tengas listo todo el código de la prueba unitaria, ejecutas el test unitario.
7. Si el código que fue puesto a prueba está bien, el resultado debe tener un chulo verde.
Esperamos que ahora sepas qué es una prueba unitaria y sus principales características. Quizás con este nuevo conocimiento tengas más opciones para escoger la mejor herramienta con la cual probar la eficiencia de un código.
Si tras aprender sobre esto te llama la atención el desarrollo de códigos y confirmar si estos funcionan adecuadamente, te invitamos a que revises nuestro catálogo de cursos online de Desarrollo web y tecnología, donde seguro encontrarás la guía que necesitas para impulsar tus proyectos e ideas. ¡Nos vemos en la próxima!