Caso práctico
"Por favor, esto es una locura", dice Antonio. "¿Hay herramientas que automaticen todo esto? No habrá que ir haciendo prueba a prueba manualmente… ¿no?" "Claro que sí", responde Juan. "Ahora verás unas cuantas."
"Por favor, esto es una locura", dice Antonio. "¿Hay herramientas que automaticen todo esto? No habrá que ir haciendo prueba a prueba manualmente… ¿no?" "Claro que sí", responde Juan. "Ahora verás unas cuantas."
Ya sabes que la prueba consiste en la ejecución de un programa con el único objetivo de encontrar defectos. Las condiciones bajo las cuales se realizará la prueba tienen que estar prefijadas para poder evaluar los resultados que obtengamos.
Es decir, las pruebas no se hacen al azar, sino que seguirán una estrategia. En ella, será necesario definir una serie de casos de prueba, que son un conjunto de entradas, de condiciones de ejecución y resultados esperados, desarrollados para un objetivo particular.
Todos los tipos de pruebas que estamos viendo se ejecutan de manera regular con el objetivo de probar que la evolución del software desarrollado funciona perfectamente, tanto para las funcionalidades nuevas como para aquellas que ya existían. Una de las claves es que las pruebas sean automatizadas, porque si se ejecutaran manualmente, el coste de hacerlo "continuamente" sería inasumible.
¿Por qué automatizar?
La razón obvia es ganar tiempo y facilitarnos la vida.
Aparte de esta, que es evidente, los otros motivos son:
Es importante, en caso de utilizar una herramienta que automatice el proceso de pruebas, realizar una correcta selección de la misma.
En el mercado disponemos de una amplia gama de herramientas en este sentido. Existen infinidad de herramientas gratuitas que, según las características de nuestro proyecto (número de requisitos, grado de estabilidad, organización del equipo, etc.), podemos valorar muy positivamente.
Según Meudec, las herramientas de pruebas de software persiguen automatizar tres tareas fundamentales:
En los últimos años se han desarrollado una serie de frameworks (plataforma, entorno, marco de trabajo rápido de desarrollo de aplicaciones) (como el conocido entorno JUnit) para automatizar pruebas unitarias y hay una multitud de entornos de desarrollo (como NetBeans) que incorporan plugins (son complementos de aplicaciones que añaden una funcionalidad nueva y, generalmente, muy específica) y componentes que permiten su integración.