Pruebas de Componentes
Pruebas de Componentes
Pruebas de Componentes
Ventajas
El objetivo de las pruebas unitarias es aislar cada parte del programa y mostrar
que las partes individuales son correctas. Proporcionan un contrato escrito que
el trozo de cdigo debe satisfacer. Estas pruebas aisladas proporcionan cinco
ventajas bsicas:
Fomentan el cambio: Las pruebas unitarias facilitan que el programador
cambie el cdigo para mejorar su estructura (lo que se ha dado en llamar
refactorizacin), puesto que permiten hacer pruebas sobre los cambios y as
asegurarse de que los nuevos cambios no han introducido errores.
Simplifica la integracin Puesto que permiten llegar a la fase de integracin
con un grado alto de seguridad de que el cdigo est funcionando
correctamente. De esta manera se facilitan las pruebas de integracin.
Documenta el cdigo: Las propias pruebas son documentacin del cdigo
puesto que ah se puede ver cmo utilizarlo.
Separacin de la interfaz y la implementacin: Dado que la nica
interaccin entre los casos de prueba y las unidades bajo prueba son las
interfaces de estas ltimas, se puede cambiar cualquiera de los dos sin afectar
al otro, a veces usando objetos mock (mock object) para simular el
comportamiento de objetos complejos.
Los errores estn ms acotados y son ms fciles de localizar
Dado que tenemos pruebas unitarias que pueden desenmascararlos.
Limitaciones
Es importante darse cuenta de que las pruebas unitarias no descubrirn todos
los errores del cdigo. Algunos enfoques se basan en la generacin aleatoria de
objetos para amplificar el alcance de las pruebas de unidad.1 Esta tcnica se
conoce como testing aleatorio (RT, por random testing). Por definicin, slo
prueban las unidades por s solas. Por lo tanto, no descubrirn errores de
integracin, problemas de rendimiento y otros problemas que afectan a todo el
sistema en su conjunto. Adems, puede no ser trivial anticipar todos los casos
especiales de entradas que puede recibir en realidad la unidad de programa
bajo estudio. Las pruebas unitarias slo son efectivas si se usan en conjunto
con otras pruebas de software.