miércoles, 13 de abril de 2011

Pruebas Unitarias (CLASE)

Primero, ¿Qué son las Pruebas Unitarias?
Son pruebas dirigidas a probar clases java aisladamente y están relacionadas con el código y la
responsabilidad de cada clase y sus fragmentos de código más criticos.

¿Porqué realizar pruebas unitarias?
• Asegura calidad del código entregado. Es la mejor forma de detectar errores
tempranamente en el desarrollo. No obstante, esto no asegura detectar todos los errores, por tanto prueba de integración y aceptación siguen siendo necesarias.
• Ayuda a definir los requerimientos y responsabilidades de cada método en cada clase
probada.
• Constituye una buena forma de ejecutar pruebas de concepto. Cuando es necesario
hacer pruebas de conceptos sin integrar usar pruebas unitarias se convierte en un método
efectivo.
• Permite hacer refactoring tempranamente en el código. No es necesario todo un ciclo de
integración para hacer refactoring en la aplicación, basta con ver como se comporta un caso
de prueba para hacer refactoring unitario sobre la clase que estamos probando en cuestión.
• Permite incluso hacer pruebas de estress tempranamente en el código. Por ejemplo un
método que realize una consulta SQL que exceda los tiempos de aceptación es posible
optimizarla antes de integrar con la aplicacíón.
• Permite encontrar errores o bugs tempranamente en el desarrollo. Y está demostrado
que mientras más temprano se corrigan los errores, menos costará corregirlos.

En la imágen anterior se cuenta la secuencia que se sigue en un programa para realizar éstas pruebas, primero, tenemos la clase bajo prueba (Class Under Test) esta sera la prueba funcional o prueba de "caja negra" .
El proceso de una prueba de caja negra es simple, ejecutamos la unidad de prueba con datos y se observa la salida, la comparamos con el resulado esperado. En caso de que la prueba se supere, es decir, el resultado obtenido y el esperado son iguales, lo llamamos “oráculo”.
Conforme vamos pasando las pruebas de caja negra podemos determinar que “cantidad” de código hemos cubierto, es decir, cuanto procentaje de código hemos ejecutado. Esto son las pruebas de caja blanca.
Con las pruebas de caja blanca lo que buscamos es encontrar fragmentos del programa que no son ejecutados por los casos de pruebas.
Si encontramos que el resultado de estas pruebas es menor al 100%, debemos ejecutar otros casos para intentar llegar al 100%. Si aun así no conseguimos ese 100%, deberíamos preguntarnos si sirve de algo ese trozo de código.

Para realizar pruebas unitarias en Java por lo regular se utiliza la herramienta JUnit.

Aquí el link de junit: http://www.junit.org/
Para descargar JUnit https://github.com/KentBeck/junit/downloadshttps://github.com/KentBeck/junit/downloads recomiendo descarguen el primero que viene ahí junit4.9b2.zip Sample ya que ese contiene ejemplos con los que podemos realizar las pruebas.

Al descargar, nos posecionamos en la terminal en la dirección dónde está contenido el junit4.9b2.zip lo descomprimimos y configuramos el path entrando a .bashrc y al final ponemos la dirección en la que se encuentra el junit-4.9b2-src.


Aquí adjunto 2 capturas de pantalla en dónde accedemos al .bashrc, configuramos el path, y ejecutamos las pruebas de uno de los ejemplos.

 

Links de Referencia:
http://www.informatizando.es/?p=24
http://blog.continuum.cl/wp-content/uploads/2008/08/pruebas-unitarias.pdf

1 comentario:

  1. Falta completar la parte sobre qué funcionalidad en particular habrá que verificar con pruebas unitarias en tu proyecto. Volveré a ver esto el día 4 de mayo para calificar.

    ResponderEliminar