Inicio / Wikis / Tutoriales / Pruebas unitarias con CPPUnit - Pero... ¿en qué consisten las pruebas unitarias?

Pruebas unitarias con CPPUnit - Pero... ¿en qué consisten las pruebas unitarias?

(5 opiniones)
Tutorial creado por Juan Manuel. Extraido de: http://www.lawebdejm.com
27 de Agosto de 2005
Programación estructurada

2 - Pero... ¿en qué consisten las pruebas unitarias?

Es típico que los programadores verifiquemos un algoritmo través del depurador del entorno de desarrollo. Ejecutando paso a paso podemos ir comprobando el valor de la variables, y verificando así que cada variable toma el valor adecuado en cada momento. Este es un proceso lento y complicado, ya que requiere mucha atención del programador, para ir comprobando todas las variables, y es muy fácil perderse en algún detalle o equivocarse en alguna operación. Además, el proceso de depuración requiere mantener la atención al máximo durante mucho tiempo, y yo, no soy capaz de mantener ese nivel de concentración durante un proceso de depuración largo, de por ejemplo, una o dos horas.

Otra opción es desarrollar un pequeño programa que utilice la unidad que estamos probando. Una ventana con un botón, o un programa de consola, desde el que vamos codificando “lo que se nos ocurre”, para ir viendo que todo funciona correctamente: llamadas a funciones o métodos, pruebas con casos “raros”, usos típicos... una vez que hemos visto que funciona, lo típico es desechar el programa.

El último enfoque, y el más acertado, es el diseño y programación de pruebas unitarias, a través de “Casos de pruebas” y “Colecciones de pruebas”.
La pruebas unitarias son pequeños módulos auxiliares, que se encargan de verificar el funcionamiento de otras unidades lógicas del sistema.
Una “Colección de Pruebas” (Test Suite) es un conjunto de pruebas que hacemos sobre una unidad lógica. Si, por ejemplo, tenemos una unidad que hace operaciones matemáticas, deberíamos hacer sobre ella varias pruebas: una que compruebe que sume bien, otra que divida bien, otra que verifique que es capaz de manejar números negativos o decimales, etc. Cada una de estas pruebas individuales la llamaremos un “Caso de Prueba” (Test Case).

La forma de programar las pruebas es sencilla: simplemente basta con hacer una serie de llamadas a las funciones que queremos verificar, utilizando para ello valores conocidos en sus parámetros. Después comprobaremos que el valor retornado por la función es el que esperábamos, y si la función ha hecho algún cambio global (crear ficheros, cambios en base de datos, etc.), comprobaremos que estos cambios son los esperados. Más adelante veremos un ejemplo concreto.

Las colecciones de pruebas se debe mantener junto con el código fuente, para ir ampliándola según se amplía la unidad. Por ejemplo, si aparece un nuevo método público, tendremos que modificar la colección de pruebas, para hacer un nuevo caso de prueba. Cada vez que aparezca un nuevo bug, debemos realizar un nuevo caso de prueba que verifique que el bug no ha vuelto a aparecer, simulando todos los pasos necesarios para reproducirlo.

Los gurús de la Programación eXtrema y en general de las metodologías de desarrollo guiado por pruebas (TDD: Test Driven Development), recomiendan desarrollar las pruebas unitarias antes que la propia unidad. La principal razón de esto es muy sencilla: durante la programación, pasamos por muchas fases de investigación y descubrimiento de nuestras propias necesidades. Muy pocas veces desarrollamos algo con el conocimiento absoluto de lo que queremos conseguir y a dónde queremos llegar, sino que este conocimiento se va adquiriendo mientras escribimos el código. Si programamos las pruebas antes, vamos definiendo cómo queremos utilizar la unidad, qué queremos pasarle como parámetros de entrada y qué nos gustaría que nos respondiese como salida, en definitiva: el conocimiento que se obtiene durante la programación. Lo más habitual es ir adquiriendo este conocimiento durante la vida del proyecto, mejorándolo poco a poco en cada una de las iteraciones (o versiones). Sin embargo, si lo primero que hacemos es programar las pruebas, conseguimos este conocimiento antes de desarrollar el producto, por lo que una vez que hemos terminado las pruebas, ya sabemos lo suficiente como para programar la unidad de una forma mucho más rápida y consistente que de la otra forma.

Valora este capítulo: (5 opiniones)
Autor y licencia de 'Pruebas unitarias con CPPUnit - Pero... ¿en qué consisten las pruebas unitarias?'
Juan Manuel Extraído de: http://www.lawebdejm.com

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Opiniona sobre 'Pruebas unitarias con CPPUnit - Pero... ¿en qué consisten las pruebas unitarias?' (5)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este tutorial



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Pruebas unitarias con CPPUnit - Pero... ¿en qué consisten las pruebas unitarias?'

La realización de las pruebas de trabajo la hace habitualmente el futuro jefe de trabajo... Más »
Berlín, en comparación con otras ciudades europeas, tiene una historia joven, con apenas 800 años... Más »
Parece que Jacob Getzels y Philip Jackson hicieron, en los años 60, un estudio comparativo... Más »
Voy a escribir aquí todas mis penurias con el ircII. Primero serán un desastre, pero... Más »
El objetivo de este curso es aprender a programar en el lenguaje Ada, desde sus... Más »
¿Estás seguro de que deseas eliminar este capítulo?