Tarea: Implementar la prueba de desarrollador
En esta tarea se describe cómo crear un conjunto de pruebas para comprobar que el componente funciona correctamente antes de que se realicen más pruebas formales en él.
Disciplinas: Implementación
Objetivo
  • Implementar una o varias pruebas que permitan la validación de los componentes de software individuales mediante la ejecución física
  • Desarrollar pruebas que se puedan ejecutar conjuntamente con otras pruebas como parte de una infraestructura de prueba mayor
Relaciones
Pasos
Perfeccionar el ámbito e identificar las pruebas
Objetivo:  Identificar el componente que se está probando y definir un conjunto de pruebas que aporten el máximo de ventajas a la iteración actual

En un entorno formal, los componentes y las pruebas que se deben desarrollar se especifican en el artefacto Diseño de pruebas, con lo que este paso es opcional. Existen otras ocasiones en las que las pruebas de desarrollador están controladas por solicitudes de cambio, arreglos de errores, decisiones de implementación que se tienen que validar o pruebas de subsistemas que tienen el modelo de diseño como única entrada. Para cada uno de estos casos:

  • defina el objetivo: validación de interfaz de subsistema/componente, validación de implementación, reproducción de un defecto
  • defina el ámbito: subsistema, componente, grupo de componentes
  • defina el tipo de prueba y los detalles: caja negra, caja blanca, condiciones previas, condiciones posteriores, invariantes, condiciones de ejecución y entrada/salida, puntos de observación/control, acciones de limpieza
  • decida cuál es el ciclo vital de la prueba; por ejemplo, una prueba creada especialmente para solucionar un defecto puede ser desechable, mientras que una que ejercite las interfaces externas tendrá el mismo ciclo vital que el componente que se está probando
Seleccionar la técnica de implementación adecuada
Objetivo:  Determinar la técnica adecuada para implementar la prueba

Existen varias técnicas disponibles para implementar una prueba, pero se pueden considerar en términos de dos categorías generales: prueba manual y automatizada. La mayoría de pruebas de desarrollador se implementan utilizando las técnicas de prueba automatizada:

  • pruebas programadas, que utilizan los mismos entornos y técnicas de programación de software que el componente que se está probando, o herramientas y lenguajes de programación menos complejos (por ej., lenguajes de scripts: tcl, basados en shell, etc.)
  • pruebas registradas o capturadas, que se crean utilizando herramientas de automatización de pruebas que capturan las interacciones entre el componente que se está probando y el resto del sistema, y producen las pruebas básicas
  • pruebas generadas: algunos aspectos de la prueba, ya sean los procedimientos o los datos de prueba, se pueden generar automáticamente utilizando herramientas de automatización de pruebas más complejas
Aunque el enfoque más utilizado es la "prueba programada", en algunos casos (por ejemplo, las pruebas relacionadas con la GUI), la forma más eficaz de realizar una prueba es manualmente, siguiendo una secuencia de instrucciones que se han capturado en forma de descripción textual.
Implementar la prueba
Objetivo:  Implementar las pruebas identificadas en la tarea o el paso de definición

Implemente todos los elementos definidos en el primer paso. Detalle y especifique claramente las condiciones previas del entorno de prueba y cuáles son los pasos necesarios para llevar el componente que se está probando al estado en el que se puedan realizar las pruebas. Identifique los pasos de limpieza a seguir para poder restaurar el entono al estado original. Preste especial atención a la implementación de los puntos de observación/control, ya que estos aspectos pueden necesitar la implementación de un soporte especial en el componente que se está probando.

Establecer conjuntos de datos externos
Objetivo:  Crear y mantener datos, almacenados externamente a la prueba, que se van a utilizar en la prueba durante la ejecución

En la mayoría de los casos, la separación de los datos de prueba de la prueba da lugar a una solución más mantenible. Si el ciclo vital de la prueba es muy corto, la codificación de los datos de la prueba puede ser más eficaz, pero si se necesitan muchos ciclos de ejecución de la prueba utilizando distintos conjuntos de datos, la forma más sencilla es almacenarlos externamente. Existen otras ventajas si los datos de prueba se separan de la prueba:

  • más de una prueba puede utilizar el mismo conjunto de datos
  • modificaciones y/o multiplicaciones más sencillas
  • se puede utilizar para controlar la lógica de ramificaciones condicionales dentro de la prueba
Verificar la implementación de la prueba
Objetivo:  Verificar el funcionamiento correcto de la prueba

Pruebe la prueba. Compruebe la configuración del entorno y las instrucciones de limpieza. Ejecute la prueba, observe su comportamiento y solucione los defectos de la prueba. Si la prueba va a durar mucho, pida a una persona con menos conocimiento interno que la ejecute y compruebe si contiene suficiente información de soporte. Revísela con otras personas dentro del equipo de desarrollo y otras partes interesadas.

Mantener relaciones de rastreabilidad
Objetivo:  Permitir ejecutar el análisis de impactos y el informe de valoración en el elemento rastreado.

Dependiendo del nivel de formalidad, puede que tenga que mantener relaciones de rastreabilidad. En caso afirmativo, utilice los requisitos de rastreabilidad descritos en el plan de prueba para actualizar las relaciones de rastreabilidad según sea necesario.


Más información