Saltar la navegación

2.8.- Manuales y automáticas.

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."

Imagen que muestra a una mujer, ligeramente de espaldas, que está arreglando unos cables que se encuentran en el interior de un armario.
Ministerio de Educación y Formación Profesional (Elaboración propia)



Imagen que muestra a un hombre abriendo la carcasa de un ordenador.
Ministerio de Educación y Formación Profesional (Elaboración propia)


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:

  • Mejorar la calidad del producto.
  • Detectar errores en etapas tempranas del desarrollo del proyecto.
  • Disminuir el tiempo de pruebas y, por tanto, el tiempo de salida al mercado.
  • Reducir costes.
  • Ejecutar pruebas de manera continua.

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:

  1. Tareas administrativas y generación de documentación.
  2. Tareas mecánicas (ejecución).
  3. Tareas de generación de casos de prueba.

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.

La elección de la herramienta de automatización es muy importante y depende del tipo de pruebas a automatizar, del entorno de desarrollo utilizado y del lenguaje de programación con el que hayamos codificado la aplicación.