LA IMPORTANCIA DE LAS PRUEBAS UNITARIAS PARA COMPROBAR FRAGMENTOS DE CÓDIGO

Las pruebas unitarias, también denominadas unit testing, es una forma de comprobar que el fragmento de código funciona de forma correcta, estamos ante un procedimiento vital para el trabajo de los desarrolladores.

En este artículo vas a descubrir que son las pruebas unitarias, cómo llevarlas a cabo y como realizar buenas prácticas a la hora de realizar text unitarios.

 

Definición de las pruebas unitarias

Se puede definir el unit testing como el aislamiento de una parte del código para comprobar que funciona sin problemas, se trata de pequeños test que tiene el propósito de validar el comportamiento de la lógica y de un objeto.

Se suelen realizar en la fase de desarrollo de las aplicaciones de software, por lo general  las llevan a cabo los desarrolladores, aunque también lo pueden hacer  los responsables de QA.

Hay que decir que existe “un cierto desprecio” hacia las pruebas unitarias por parte de algunos desarrolladores que consideran que son una pérdida de tiempo para el desarrollo de los proyectos, pero lo cierto es que no es así, ya que evitar hacer estas pruebas, puede comprometer el desarrollo de la aplicación.

El unit testing sirve para encontrar errores que de otra forma no podrían ser detectados hasta fases más avanzadas, como por ejemplo la fase de pruebas beta, de sistema o de integración, por ello hacer pruebas unitarias de forma regular hace que en el proyecto se ahorre tiempo y todos sabemos que el tiempo es dinero.

Razones de peso hacer un test unitario

Es probable que, a estas alturas del artículo, aún no estés plenamente convencido de la conveniencia de realizar pruebas unitarias para comprobar fragmentos de código, pues bien como desarrollador estos son algunos motivos más por los que no debes descartar la realización de estas pruebas:

  • Las pruebas unitarias son un gran avance porque te permiten realizar un buen número de pruebas en muy poco tiempo, de esta forma estas reduciendo costes.
  • Estas pruebas son capaces de demostrar que la lógica del código está bien y que va a responder en todos los casos.
  • Las pruebas aumentan la legibilidad del código y ayudan al desarrollador a entenderlo mejor, gracias a ello es mucho más fácil hacer cambios más rápido.
  • También sirven para documentar el proyecto en un tiempo más reducido.
  • Gracias a que las pruebas dividen el código en fragmentos pequeños, el desarrollador puede probar partes distintas del proyecto sin esperar a que otras estén completadas.
  • Con estas pruebas el desarrollador puede re factorizar el código más adelante, así tiene la seguridad de que el módulo sigue funcionando correctamente.
  • La mejora en la calidad final del código es notable porque al hacer pruebas constantes, el código final tendrá mucha calidad.
También te puede interesar:   Los 6 Pasos que hay que seguir para hacer una aplicación móvil

 

Que son las 3 A’s del unit testing

Para hacer pruebas unitarias de calidad, es preciso que éstas estén estructuradas siguiendo las tres A’s del Unit Testing.

Estamos ante un concepto fundamental para el desarrollo de este tipo de pruebas, que describe un proceso que consta de tres pasos.

  • Organizar: Este es el primer paso que se debe llevar a cabo, aquí es donde se definen los requisitos que debe cumplir el código.
  • Actuar: Se trata de un paso intermedio en la realización de pruebas, en este momento se ejecuta el test que va a dar lugar a los resultados que el desarrollador deberá analizar.
  • Afirmar: Aquí es donde se comprueba si los resultados obtenidos son los esperados, de ser así se validad y se continúa, si no es así, se corrige hasta que el error desaparezca.


Cómo llevarlas a cabo las pruebas unitarias

Si bien el proceso de los unit texting se pueden realizar manualmente, lo más normal es automatizar el procedimiento mediante el uso de herramientas.

El desarrollador tiene muchas opciones a su alcance que cambian según el lenguaje de programación que se use.

A continuación, te muestro algunas de estas herramientas:

  • PHPUnit: Es un entorno de pruebas unitarias en el lenguaje de programación PHP.
  • xUnit: Herramienta de pruebas unitarias para el framework .NET.
  • Nunit :Inicialmente fue portado desde JUnit, NUnit 3 se ha reescrito por completo para darle nuevas funcionalidades y soporte para un buen número de plataformas .
  • Junit: Se trata de un conjunto de bibliotecas que sirven para hacer pruebas unitarias de aplicaciones Java.

Utilizando estas herramientas, el desarrollador puede codificar los criterios en la prueba que verificarán la corrección del código,  durante la fase de ejecución, estas herramientas pueden detectar las pruebas con errores.

En el caso de que alguno de los errores fuese grave, se pueden detener las  pruebas que se iban a realizar después.

También te puede interesar:   Libros para programadores que deberías leer
¿Necesitas un App o un desarrollo web? Contacta con nosotros

 

TDD y pruebas unitarias

El TDD test (driven development) o lo que es lo mismo el desarrollo guiado por pruebas, implica el desarrollo de las pruebas unitarias a las que se va a someter el software antes de su escritura.

De esta forma, el desarrollo se hace en consonancia a los requisitos que se han establecido en la prueba, el objetivo del TDD es conseguir un código que funcione y que sea limpio.

Gracias a esta metodología, se elige un requisito de la lista y se plantea una prueba que se ejecuta para comprobar que es lo que puede estar fallando.

En el caso de no fallar, la causa puede ser que no se haya planteado de forma correcta o porque la función ya estaba implementada.

Después de esto, se escribe el código que haga posible pasar la prueba, se ejecutan las pruebas y, si todo está ok, se re factoriza el código para eliminar las partes duplicadas.

Recomendación de buenas prácticas para el unit testing

Esta es una relación de recomendaciones para hacer pruebas unitarias de software, te serán especialmente útiles si no cuentas con demasiada experiencia:

  • Es importante que sigas un esquema claro, no es una cuestión que debas tomar a ligera, también es importante ser consistente cuando nombres tus unit test.
  • Es vital que, a la hora de hacer pruebas, las hagas solamente con un código a la vez.
  • Las pruebas unitarias deben ser independientes, de producirse cambios o mejoras en los requerimientos, las pruebas no deberían verse afectadas.
  • No se puede esperar que el unit testing descubra todos los errores de un software, sin embargo es indudable que se localizan los errores de forma más sencilla y que se ahorra tiempo.
  • De producirse un cambio en el código de cualquier módulo, el desarrollador se debe asegurar de que hay una prueba unitaria que se corresponda con ese módulo y que este pasa las pruebas antes de cambiar la implementación.
  • Hay que acostumbrarse a realizar pruebas de forma regular mientras se programa.
  • También hay que corregir los bugs identificados durante las pruebas antes de continuar.

 

¿Necesitas un App o un desarrollo web? Contacta con nosotros

 

Photo by Markus Spiske on Unsplash

Facebook
Twitter
LinkedIn
WhatsApp
  • Te podría interesar…