martes, 3 de mayo de 2011

Diseño de pruebas unitarias

En esta entrada explicaré lo que son las pruebas unitarias y las herramientas que utilizaré.

 
Primero que nada, las pruebas unitarias son una herramienta muy importante para el personal de pruebas pero, sobre todo, para los desarrolladores. Nos sirven para detectar errores dentro de los módulos de código, asegura el correcto funcionamiento de cada uno de estos por separado.

 
Una prueba unitaria es buena cuando:
  • Es automatizable: donde no se requiere una intervención manual.
  • Cubren la mayor cantidad de código.
  • Repetibles o reutilizables: pruebas que se utilizan más de una vez.
  • Independientes: la ejecución de una prueba no afecta la ejecución de otra.
  • Profesionales: las pruebas deben ser consideradas igual que el código, con la misma profesionalidad, documentación, etc.
 Algunas ventajas de utilizar pruebas unitarias son:
  • Fomentan el cambio: facilitan el cambio de código para mejorarlo asegurando que los cambios no introduzcan errores.
  • Sirven como documentación.
  • Los errores están más acotados y son más fáciles de localizar: dado que tenemos pruebas unitarias que pueden desenmascararlos.
Proceso de desarrollo de pruebas unitarias.
Esta metodología ha levantado bastante polémica dentro del mundo de la ingeniería del software en cuanto a los beneficios que proporciona y los límites que sobrepasa más allá de la programación tradicional. Es por esto que hay una gran diversidad de opiniones acerca de las desventajas que puede conllevar el uso de este sistema de programación.
  • En primer lugar el hecho de escribir todos los requerimientos al inicio podría provocar el abuso en la cantidad de los elegidos con el fin de evitar dejar en el olvido alguno.
  • A veces sucede que las propias pruebas unitarias resultan más costosas, desde el punto de vista de la implementación, que la propia implementación del software que se pretende crear, ya que a veces puede resultar más dificultoso encontrar los posibles fallos en los que puede caer la aplicación que la codificación de la misma.
  • Si los casos de prueba que se crean son incorrectos entonces se implementará un código incorrecto, esto en principio sería bastante grave ya que se crearía una aplicación que no tendría el valor que uno esperaba al inicio.
  • Es un sistema de desarrollo que no permite la creación de nuevos algoritmos.
Debido al gran éxito que esta metodología está teniendo en el mundo de la ingeniería del software, son muchas y variadas las herramientas que se han ido desarrollando hasta día de hoy. Algunas han surgido en forma de frameworks, otras en formato plug-in bajo el control de algún browser o incluso como librerías para su uso en plataformas de programación.

En mi caso, utilizaré una herramienta llamada JUnit, este es el framework más importante con que cuenta la metodología TDD (Test-driven Development ), de él han ido surgiendo la mayoría de los frameworks del conjunto de los xUnit. Su importancia seguramente radica en que está basado en el lenguaje java que es un lenguaje muy ágil, reusable y adaptable a otros lenguajes y plataformas.

JUnit es utilizado para testear funcionalidades sobre si funcionarán correctamente o no a través de funciones que ya trae consigo el propio framework, como runners para ejecutar directamente los test o asserts para comprobar la validez de los resultados.

Para instalar JUnit seguimos estos pasos:
  1. Descargamos la librería d la pagina oficial: Aquí.
  2. Descomprimimos el zip en cualquier directorio.
  3. Añadir junit.jar al CLASSPATH. Esta operación puede ser diferente según la máquina de que se trate. Por ejemplo, las máquinas arnelaxx tienen el CLASSPATH configurado (bajo linux) por el administrador y no tienes que hacer nada. En cambio, en la máquina java debes añadir la siguiente línea al fichero .profile del directorio principal de tu usuario y luego volver a conectarte:
    export CLASSPATH=$CLASSPATH:/usr/java13_64/lib/fic/junit.jar:.
En caso de utilizar una IDE como Eclipse (mi caso) ya viene incluido la librería de JUnit. Lo único que hay que hacer es abrir la vista de explorador de proyectos, aquí hacer clic con el botón derecho en la clase Test en concreto, en el menú que aparece elegir "Run as" -> "JUnit Test".


En caso que no se encuentre la librería, una vez descargada solo hay que agregarla. Para añadir un jar externo a nuestro proyecto con Eclipse seguimos los siguientes pasos:
  • Con el botón derecho del ratón sacamos el menú sobre el proyecto y elegimos "propiedades"
  • En la ventana que se abre, en el arbolito de la izquierda elegimos "java build path".
  • En el lado derecho de la ventana, elegimos la pestaña "Libraries"
  • Le damos al botón "add external jar"
  • Buscamos el jar que queremos añadir y lo seleccionamos.
  • Aceptar, aceptar, aceptar
y listo, ese jar ya forma parte de nuestro proyecto Eclipse y podemos usarlo en nuestro programa.
 
Con esto corremos la aplicación como una simp'le aplicación java desde Eclipse.

Las puebas se llevaran a cabo en la entrada de taller.

1 comentarios:

Elisa dijo...

Hubiera sido bueno hablar sobre qué tipo de funcionalidad uno debería probar en un proyecto como el tuyo; 4.

De sistemas distribuidos ya es NP. Era para ayer y no pueden siempre sacar prórrogas - se les acaba el semestre de reprente.

Publicar un comentario