El documento presenta los desafíos del testing en metodologías ágiles y recomienda automatizar las pruebas para acelerar el proceso. Explica que los equipos que automatizan el 50% de las pruebas reducen el tiempo de testing a la mitad, y aquellos que automatizan el 80% lo reducen a un día. También recomienda alinear el testing con el proceso de desarrollo, generar datos de prueba y utilizar herramientas de automatización de pruebas funcionales.
3. El testing como un cuello de botella
Testing no alineado a la metodología ágil termina en cascada
Bugs que se corrigen en minutos u horas pero se implementan en
días o semanas
El feedback de los testers es tan lento que se termina codificando
encima de los bugs
Re-verificación tediosa de las mismas pruebas, una y otra vez
Las pruebas manuales son propensas a errores
4. Algunos números
Team A
100% manual
• 1000 casos
• 10 min setup
• 10 min/caso
• 5 testers
• = 2010 minutos
• = 4 días !!
Team B
50% automatizado
• 500 casos autom.
• 3 horas ejec.
• = 1200 minutos
• = 2.5 días
Team C
+ automatización
+ hardware
• 800 casos autom.
• 100 no se puede
• 100 nuevos feat.
• 20 minutos ejec.
• = 440 minutos
• = 1 día !!
7. Proceso ordenado y alineado de testing
releaseplanning
Establecer la
estrategia de
testing
Definir el
“done, done”
Establecer
entornos
Crear planes
Generar datos
de prueba
iteraciones
inicio construcción release
releaseiteration
Testeo de
regresión
Testeo de
“completitud”
iterationplanning
Agregar
historias al
plan
Definir
aceptación
Seleccionar
tests de
regresión
iterationexecution
Escribir los
test
Correrlos
Documentar
bugs
Verificar bug
fixes
Automatizar
tests
iterationretrospective
Actualizar el
master plan
Identificar las
debilidades
del producto
Seleccionar
tests para
automatiza-
ción
8. Team Project
Work Items
Source Code
Automated
Builds
Test Plan(s)
Start & End Dates
Test Configuration
(Manual &
Automated)
Test Suite(s)
Requirement
Stand-alone suite
Test Case(s)
Steps
Test Data
Parameters
Automation Status
State
Anatomía de un Test Plan en TFS
10. ¿Qué más podemos hacer?
• Pruebas unitarias, TDD, pruebas de stress y performance
Automatizar en etapas tempranas
• MTM, CUIT
Automatizar en pruebas funcionales
• Lab Management
Automatizar en laboratorios virtuales
11. iteración 1
feature afeature a
iteración 2
iteración de
release
feature b feature c feature d
testing
unitario
testing
manual
testing de
regresión
testing de
performance
Estrategia de Automatización
13. Algunos consejos
En el
Desarrollo
Desacoplar código usando Inyección de Dependencias
Escribir tests unitarios (y mantenerlos!)
Incorporar técnicas (y/o frameworks) de Mocking
Incorporar TDD
En lo
Funcional
Utilizar herramientas integradas al proceso de desarrollo (como MTM)
Automatizar pruebas funcionales (con herramientas como MTM)
Generar bugs “ricos” (como los que genera MTM)
Incorporar labs virtuales (con Lab Management)