Pruebas y el Ciclo de Vida Ágil

Publicado en

Aplicar los principios de los métodos ágiles al ciclo de vida de las pruebas permite mantener y mejorar su velocidad, la documentación, reutilización de casos de prueba, así como también la capacidad de repetir y automatizar las mismas.

Por otro lado, las mejores prácticas en el ciclo de vida del desarrollo de las aplicaciones indican que el ciclo de vida de las pruebas debe iniciar en el momento que los requerimientos han sido finalizados, esto permite que las pruebas sean basadas en las solicitudes iniciales del usuario/cliente y no ejecutadas sobre aquellas funcionalidades que el equipo de desarrollo generó, porque no necesariamente podría ser lo mismo.

Este inicio temprano del ciclo de vida de las pruebas sirve para aplicar uno de los principios de administración de la calidad: “empezar a probar temprano y probar más”. En consecuencia, tener más resultados de pruebas permitirá maximizar la probabilidad de encontrar errores.

Las pruebas en el ciclo de vida ágil

Dado que las pruebas deben de formar parte integral del ciclo de vida del desarrollo de las aplicaciones, el flujo de proceso ideal debería ser el siguiente:

1. Requerimientos. Conforme los requerimientos, o solicitudes de cambio, van siendo definidos, revisados y autorizados, cada uno de ellos sirve como entrada para definir los casos de prueba con los que estos requerimientos serán cubiertos y probados.

2. Planeación y diseño. Con base en la planeación de las actividades de construcción y codificación de las aplicaciones, que a su vez ha tenido como entrada aquellos requerimientos adecuadamente priorizados y asignados a la iteración actual, es posible para el equipo de pruebas ir planeando e iniciar el proceso de aprovisionamiento del ambiente de pruebas. De igual manera, la planeación inicial de las pruebas, permitirá identificar aquellos casos, previamente creados y/o utilizados, que sean similares y que puedan ser reutilizados. Lo más importante, es que el equipo de pruebas no necesite “descubrir el agua tibia” con cada prueba que se requiera, y únicamente dedicar el tiempo a crear los pasos necesarios para validar las deltas que existen entre la aplicación anterior con la aplicación futura basada en las modificaciones que se estén creando en la iteración actual.

3. Ejecución. Conforme se implementan las piezas funcionales de código, los casos de prueba son ejecutados contra éstas, validando que el requerimiento original esté cubierto e implementado. A partir de los resultados de las pruebas se generan los protocolos pertinentes ya sea de aceptación de las piezas o la documentación de las solicitudes de mejora en forma de reportes de defectos o cambios.

4. Retroalimentación del proceso. Con el paso anterior, se generan nuevas entradas a la planeación de actividades de construcción y codificación, creando un macro-ciclo a través de las diferentes disciplinas del ciclo de vida del desarrollo de las aplicaciones.

Agilizando las pruebas

Un factor fundamental para mantener la agilidad de las diversas actividades de las pruebas, está basado en el ejercicio amplio y abierto de la colaboración entre los diversos equipos. La colaboración propuesta debe permitir el intercambio de la documentación intrínseca que se va generando durante el proceso de madurez de los artefactos e interacciones entre los diferentes actores del proceso de desarrollo de las aplicaciones. De esta manera, se satisface uno de los principios de las metodologías ágiles, “documentación mínima necesaria”.

Para aceptar el “cambio como una constante”, es necesario poder identificar y analizar fácilmente el impacto de los cambios a través de todo el ciclo de vida del desarrollo de las aplicaciones. Esto se logra conociendo: las actividades de construcción y codificación que están incluidas en una iteración, los casos de prueba que validan cada uno de los requerimientos, y los resultados de las pruebas ya que afectan la planificación de las actividades en la iteración actual y futuras.

Para poder hacer más sencillos estos procesos complejos que involucran equipos, prácticas y disciplinas diversas, es necesario poseer herramientas y/o repositorios donde la información, documentación y resultados estén disponibles para todos los equipos.

Hablar de pruebas en el contexto de desarrollo ágil me recuerda la premisa que plantea Eric S. Raymond en su ensayo “The Cathedral and the Bazaar”:

Bio

Germán Domínguez (germand@mx1.ibm.com) es Client Technical Professional para IBM Rational en México desde el 2008. Tiene 17 años de experiencia en desarrollo de aplicaciones de negocios, consultoría de procesos y lenguajes de programación. Actualmente apoya a diversos clientes con estrategias de modernización empresarial, application lifecycle management, arquitectura empresarial y herramientas de desarrollo.