Probar el ciclo de vida en Scrum
Entrar en un entorno de prueba en un equipo Scrum puede ser un shock si ha estado probando bajo un proceso de desarrollo secuencial de Waterfall. Los equipos Agile Scrum operan entregando pequeñas piezas de funcionalidad en iteraciones muy cortas que se repiten en intervalos regulares. Se permite que el desarrollo comience con una buena cantidad de incertidumbre, asumiendo que se descubrirán soluciones útiles a medida que avanza el trabajo. Por lo tanto, las prácticas de prueba iterativas deben lidiar con esta incertidumbre, pero al mismo tiempo respetar algunos procedimientos de prueba estándar como parte del proceso de extremo a extremo conocido como ciclo de vida de prueba .
Antes de que comience el desarrollo
Se puede dedicar tiempo antes de las iteraciones de desarrollo en una serie de actividades útiles. Durante este tiempo, todos en el equipo comenzarán a familiarizarse con las historias que forman la acumulación de productos existente, y algunos miembros del personal de pruebas pueden participar en actividades de planificación de lanzamiento a mayor escala que describirán el trabajo que otros equipos realizarán al mismo tiempo. Estas actividades, que ayudarán a familiarizar al personal con la naturaleza básica de las tareas de desarrollo planificadas, también ayudarán a garantizar que el personal de control de calidad sea capaz de configurar entornos de prueba adecuados para fines de prueba tanto manuales como automatizados. Los equipos también querrán asegurarse de que los conjuntos de datos razonables estén disponibles o se estén creando activamente antes del inicio del desarrollo.
Prueba durante iteraciones de desarrollo
Dado que es poco probable que se ponga a disposición un conjunto voluminoso de requisitos de software para guiar la creación de casos de prueba, una función clave para probar durante cualquier iteración será traducir rápidamente el desarrollo de historias en curso en casos de prueba funcionales . Las historias de desarrollo ágil suelen tener un tono más conversacional que las especificaciones de software rigurosas. Es posible que se requiera una cantidad considerable de trabajo para traducir estas historias en pruebas funcionales útiles, que se utilizan para garantizar que el software realmente hace lo que estaba destinado a hacer cuando se ejecuta de manera conocida y controlada.
Si bien las pruebas funcionales a menudo se ejecutan manualmente, es probable que muchas pruebas funcionales se creen como pruebas automatizadas o, en última instancia, se conviertan en ellas . Estas pruebas automatizadas pueden detectar rápidamente cualquier error de regresión causado por errores lógicos posteriores cometidos en la base del código a lo largo del tiempo. Estos conjuntos de pruebas automatizados generalmente se ejecutarán en un entorno de prueba separado, pero aún así imitarán las acciones de un usuario final que ejecuta el software real.
Un concepto que potencialmente puede ayudar a reducir el volumen de casos de prueba funcional necesarios es que las pruebas participen en el desarrollo impulsado por pruebas . En este proceso, las pruebas y el desarrollo funcionarán de manera colaborativa, creando pequeñas pruebas unitarias que están integradas en el código fuente. En lugar de probar amplias funciones de usuario, las pruebas unitarias están destinadas a garantizar la integridad de fragmentos muy pequeños de código fuente. Debido a que estas pruebas unitarias son en realidad parte del código fuente, se pueden ejecutar con cada compilación, detectando muy rápidamente cualquier error básico de codificación.
¿Qué significa vivir una buena vida? Más allá de la felicidad inmediata
Al final de cada iteración, el equipo tendrá un proceso para evaluar si las historias que han proporcionado están realmente hechas. Las pruebas contribuyen al finalizar cualquier prueba funcional y realizar cualquier otra prueba de aceptación final que se considere necesaria. Por ejemplo, como parte del proceso de aceptación, podría ser necesario asegurarse no solo de que el software funcione, sino de que funcione dentro de ciertos límites de rendimiento definidos.
La naturaleza iterativa del desarrollo Agile significa que estos procesos de prueba básicos deberán repetirse en todas y cada una de las iteraciones. Durante este tiempo, el personal de pruebas forma una parte integral del equipo en general, participando en reuniones diarias y, en general, asegurándose de que cualquier problema en la evaluación de la calidad no se pase por alto ni se ignore durante los períodos relativamente pequeños y rápidos de progreso iterativo.
Transición al lanzamiento
Una vez que se completen todas las iteraciones de construcción, el personal de pruebas comenzará a centrarse en los requisitos de prueba de lanzamiento. En este momento, se hará hincapié en las pruebas de sistemas más amplias , que probablemente se realizarán en colaboración con otros equipos. Cualquier otra función que normalmente maneja la organización de prueba también deberá realizarse antes del lanzamiento. Por ejemplo, puede ser necesaria una prueba piloto del software de producción real antes de que el software esté disponible para los clientes.
Gestión de la liberación
El papel de las pruebas en el soporte de un lanzamiento generalmente continúa más allá del lanzamiento de producción. Muy a menudo, el equipo respaldará el lanzamiento en el campo, generalmente ayudando al servicio de atención al cliente a identificar e informar los defectos del cliente encontrados en el sitio del cliente.
La participación en una retrospectiva de lanzamientos también es un aspecto importante del papel de las pruebas una vez que se lanza un lanzamiento. Ya sea que se realice a nivel de equipo individual o en toda la organización en su conjunto, la retrospectiva proporciona un lugar para analizar los procedimientos del equipo e identificar las mejoras de proceso que se pueden realizar en el futuro.
¿Qué es el Ciclo de Vida de un Negocio?
Resumen de la lección
El ciclo de vida de las pruebas en Scrum iterativo comienza con un período de preparación para las iteraciones de desarrollo. Durante el desarrollo, las pruebas se concentrarán en escribir y ejecutar casos de prueba funcionales . Estos pueden ejecutarse manualmente o colocarse en un entorno de prueba automatizado , que se puede ejecutar según sea necesario. Los equipos que dependen del desarrollo basado en pruebas también utilizarán personal de pruebas y de desarrollo en la generación de pruebas unitarias que se ejecutan continuamente como parte del sistema de compilación. A menudo se requieren algunas pruebas de aceptación adicionales al final de cada iteración. Antes del lanzamiento, es habitual ejecutar algunas pruebas del sistema a mayor escalacon otros equipos, y después de la liberación, el personal de pruebas a menudo participa en el soporte al cliente informando los defectos del cliente . La parte final del ciclo de vida completo será participar en una retrospectiva de lanzamientos .
Explora más sobre este tema
Selecciona un tema y sigue aprendiendo...
