Sie sind auf Seite 1von 19

Pruebas Unitarias Uso de NUnit dentro de proyectos .

NET

Junio 2007

Contenido
Qu son Pruebas Unitarias? Frameworks Ventajas Desventajas y limitaciones Mitos sobre Pruebas Unitarias Prcticas recomendadas en DBAccess NUnit Referencias

Qu son Pruebas Unitarias?


Las pruebas unitarias son una de las formas que tenemos de probar pequeas e individuales porciones de cdigo. A travs de ellas se verifica que cierto mdulo o funcionalidad se ejecuta dentro de los parmetros y especificaciones concretadas en documentos tales como los casos de uso y el diseo detallado: proporcionan un contrato escrito que la porcin de cdigo debe cumplir. Permiten detectar efectivamente la inyeccin de defectos durante fases sucesivas de desarrollo o mantenimiento.

Qu son Pruebas Unitarias?


Las pruebas unitarias tpicamente son automatizadas, pero pueden llevarse a cabo de forma manual. Cuando son automatizadas es buena prctica que formen parte del repositorio que contiene al cdigo probado.

Se dice que una prueba unitaria es completa o es buena si cumple con los siguientes elementos:
Cobertura Repetibles Independiente Profesionales

Frameworks
Para llevar acabo pruebas unitarias, cada organizacin se apoya en frameworks que ofrecen un conjunto completo de utilidades, motores de ejecucin y reportes. Entre los frameworks ms empleados destacan:
JUnit TestNG CPPUnit NUnit Visual Studio UnitTesting

Ventajas
Dependiendo del framework empleado podemos encontrar las siguientes ventajas:
Automatizadas, por lo cual se hacen repetibles. Fomentan el cambio: ya que permiten probar cambios en el cdigo y asegurar que en stos no se hayan introducido errores funcionales; habilitan el refactoringdel cdigo. Simplifican la integracin: permiten llegar a la fase de integracin con un grado alto de seguridad sobre el cdigo.

Ventajas
Documenta el cdigo. Separa la interfaz y la implementacin. Los defectos estn acotados y fciles de localizar. Permiten al desarrollador pensar como el consumidor del cdigo y no como el productor.

Desventajas y limitaciones
No descubrirn todos los defectos del cdigo. No permite determinar problemas de integracin o desempeo. No es trivial anticipar todos los casos especiales de entradas. Las pruebas unitarias determinan la presencia de defectos, no la ausencia de stos. Son efectivas al combinarse con otras actividades de pruebas.

Mitos sobre Pruebas Unitarias


Mito Realidad Durante el desarrollo una prueba automatizada puede ahorrar cientos de veces el tiempo requerido para No se puede dedicar tiempo para desarrollarla, ya que encuentra y protge contra los bugs. implementarlas por que el tiempo de entrega Mientras ms dificil es la implementacin de la prueba, ms est cerca. necesaria es para el desarrollo, por que el ahorro de tiempo ser mayor. Con la ausencia de las pruebas unitarias el desarrollo consumir las 3 semanas y probablemente ms. Incluso si el tiempo est disponible, el desarrollo de buenas pruebas unitarias requiere tiempo y el tiempo se incrementa mientras menos reciente sea el conocimiento sobre el cdigo a probar.

Las pruebas unitarias pueden ser escritas durante las ltimas semanas del desarrollo

Prcticas recomendadas en DBAccess


Seguir el procedimiento de integracin continua al pie de la letra, evitando hacer commit al repositorio si las pruebas unitarias preexistentes fallan. Toda falla es producida por un defecto. Antes de corregir el defecto, debe escribirse una prueba unitaria que, al fallar, compruebe que el defecto est all, y que al pasar compruebe que el defecto fue eliminado. Aprovechar que se tiene la atencin en esa parte del cdigo y escribir otras pruebas que se piensen empleando las capacidades del motor de pruebas unitarias. Es a tiempo de diseo que debe definirse formalmente la estrategia para implementar las pruebas unitarias.

NUnit
Es un framework opensource para pruebas unitarias de sistemas realizados con la plataforma Microsoft .NET. Sirve al mismo propsito que realiza JUnit en el mundo Java, y es uno de muchos en la familia xUnit.

NUnit
Consiste en un conjunto de metaatributos y aserciones que permiten probar los mtodos de una clase especificada. Se puede ejecutar desde la consola o a travs de una interfaz grfica.

NUnit
Se puede integrar con el Visual Studio en cualquiera de sus versiones. Actualmente soporta los frameworks 1.1/2.0. Tambin soporta la plataforma opensource Mono. Soporte de archivos de configuracin. Ejecucin de mltiples ensamblados. Es extensible. Autodetecta cambios de los ensamblados.

Versin actual 2.4.1

Elementos de NUnit
La declaracin de la prueba

La declaracin de un caso de prueba

Elementos de NUnit
Elemento de inicio para la prueba

Elemento de inicio para cada prueba

Elemento de disposicin para la prueba

Elementos de NUnit
Elemento de disposicin para cada prueba

Capturando una excepcin esperada

Ignorando un caso de prueba

Demostracin

Preguntas

Referencias

Kent Beck's original testing framework paper http://www.xprogramming.com/testfram.htm http://en.wikipedia.org/wiki/Unit_testing http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks http://www.xprogramming.com/xpmag/acsUsingNUnit.htm http://msdn2.microsoft.com/en-us/library/ms364064(vs.80).aspx http://msdn2.microsoft.com/en-us/library/aa292197(VS.71).aspx
http://msdn.microsoft.com/msdnmag/issues/06/01/UnitTesting/default.aspx

http://buho.dbaccess.com/pages/viewpage.action?pageId=817 Consultas al Ing. Juancarlo Aez (juancarlo.anez@gmail.com)

Das könnte Ihnen auch gefallen