Autentia - Agile Testing PDF
Autentia - Agile Testing PDF
Autentia - Agile Testing PDF
Definición
El Agile Testing son prácticas de Testing colaborativas que suceden continuamente, desde el inicio hasta la entrega
y más allá, y que respaldan la entrega frecuente de valor a nuestros clientes. Las actividades de Testing se centran
en crear calidad en el producto, usando rápidos ciclos de retroalimentación para validar nuestra comprensión. Las
prácticas fortalecen y respaldan la idea de que todo el equipo es responsable de la calidad.
El Testing es una parte integral del desarrollo de Software, En el Agile Testing se introduce la idea de 10 principios para los
entendemos las necesidades de nuestros clientes, las Agile Testers y no sólo para ellos sino para cualquiera dentro
construimos, las entregamos y aprendemos como las usan y
del equipo:
hacemos el Testing parte integral del ciclo de DevOps.
El Manifiesto
Testing Manifesto
del Testing (AASfñasdhflasjdfjlflahsf)
Creado por Karen Greaves y Samantha Laing, el Testing Manifesto (el Manifiesto del Testing) refleja el
cambio de mentalidad necesario para un enfoque de Agile Testing exitoso.
Si un tablero Kanban posee una columna de Testing, ten por seguro que el testing se está viendo como una fase y la actividad de los
testers se está separando de la del resto del equipo. Como alternativa se
recomienda una fase de Verificación donde una vez que el trabajo esté a
DONE un compañero pueda revisarla.
● Valoramos la prevención de errores en lugar de encontrar errores.
Debe hacerse lo antes posible, normalmente la mayoría de los errores se dan
por asunciones sin aclarar en la toma de requisitos.
● Valoramos la comprensión de las pruebas sobre la verificación de la
funcionalidad.
Los testers deben ser los representantes del cliente en cada decisión del
diseño, asegurándose que la feature satisfaga las verdaderas necesidades de estos y no solo las especificaciones.
● Valoramos construir el mejor sistema sobre romper el sistema.
Tradicionalmente los Testers se han centrado en buscar la forma de romper el sistema, enfocándose en el Testing Negativo. Sin
embargo, un tester se debe enfocar en el objetivo principal: crear un producto que aporte valor y cumpla su función como se espera.
● Valoramos la responsabilidad del equipo por la calidad sobre la responsabilidad del probador.
Los testers por sí sólos no pueden mejorar la calidad. Su función es la de determinar el nivel de calidad e informar de ella a los
interesados. Sólo puedes mejorar la calidad uniendo tus esfuerzos a los del equipo.
Agile Testing
No todos los equipos que se crean son El nivel de calidad que las partes El Testing diferentes niveles requiere
iguales. Podemos tener 2 casos: interesadas quieren depende del de una planificación extra, los niveles
producto así como del tipo y cantidad de identificados son:
1. Equipo pequeños. pruebas que pudiera ser requerido.
a. Ubicados en la misma Consideraciones del producto: ● Nivel de Release/Feature, las
sala/edificio. actividades deben ser coordinadas
b. Buenas oportunidad para ● Tamaño: ¿Cuánta gente lo va a usar? entre equipos.
aprender los valores del resto y ¿Está integrado con Apps Externas? ● Nivel de Historias, emplear la
compartirlos. ● Riesgos: Para reducir riesgos los Specification By Example para
c. La planificación es mucho más equipos necesitan conocer el dominio incrementar el entendimiento de la
fácil. del negocio. historia y convertirla en pruebas.
2. Equipos grandes y distribuidos. ○ Los expertos de dominio deben ● Nivel de Tareas, usar TDD para
a. Trabajan en múltiples proyectos y ayudar en la planificación de las escribir pruebas unitarias de bajo
con múltiples equipos. pruebas. nivel. También se puede emplear DDD
b. Surge la necesidad de tener ○ ¿Tiene idea el equipo de como se como alternativa.
especialistas en el equipo. usa el producto?
c. Se incrementan las dependencias. ○ ¿Tienen todos los miembros del
d. La planificación se vuelve más equipo conocimiento del
compleja. dominio?
Agile Testing
BDD (Behavior Driven Development) ATDD (Acceptance Test-Driven SBE (Specification By Example), se
captura ejemplos de escenarios en un Development) es una forma más empieza identificando los objetivos
lenguaje natural y específico del genérica de guiar el desarrollo con entorno a la Historia usando un
dominio. ejemplos sin un lenguaje o reglas planteamiento como el Impact Mapping.
estrictas. Se lleva a cabo:
Su sintaxis es: A partir de aquí el equipo obtiene
● ANTES de implementar una ejemplos clave que se convierten en
GIVEN: Precondiciones necesidad todos los miembros del especificaciones.
WHEN: Disparadores equipo contribuyen para generar
THEN: Post Condiciones escenarios de cómo se comportará A medida que avanza el desarrollo, los
dicha necesidad. ejemplos se perfeccionan y se
Ejemplo: ● DESPUÉS el equipo convierte esos convierten en especificaciones
escenarios en pruebas de Aceptación ejecutables que permiten validar el
GIVEN que he hecho una compra por Automatizadas. producto con frecuencia.
valor de 9,75€.
WHEN entrego al cajero 10 €. Estos ejemplos ejecutables junto con
THEN espero 0,25€ de vuelta. BDD y ATDD, se convierten en
documentación viva de la aplicación.
Agile Testing
El Manifiestoladel
Habilitando Colaboración
Testing (AASfñasdhflasjdfjlflahsf)
La colaboración dentro del equipo y entre los equipos es una de las piedras angulares para hacer que los
equipos ágiles tengan éxito. Sin embargo, nos encontramos con que muchos equipos no saben como
empezar a construir estas relaciones. Te presentamos algunas prácticas que te pueden ayudar en ello.
PRÁCTICAS
El Manifiesto
Pruebas Exploratorias
del Testing (AASfñasdhflasjdfjlflahsf)
En las pruebas exploratorias, una persona interactúa con el sistema y observa el comportamiento real, diseñando
pequeños experimentos. Según lo que aprenden, adaptan el experimento y continúan aprendiendo más sobre el
sistema. En el proceso, pueden hacer descubrimientos sorprendentes, incluyendo implicaciones de interacciones que
nadie había considerado. Las pruebas exploratorias exponen malentendidos sobre lo que se supone que debe
hacer el software.
TÉCNICAS
Charters
Los charters te ayudan a organizar la información que necesitas para aprender sobre tu aplicación adecuadamente en sesiones de
tiempo fijo. Funcionan mejor cuando se utiliza junto con la técnica Personas. Siguen el esquema:
El Manifiesto
Atributos de Calidad
del Testing
del Testing
(AASfñasdhflasjdfjlflahsf)
Un atributo de calidad, también conocido como requisito no funcional, describe las propiedades bajo las
cuales una característica debe operar. Podemos pensar en él como una restricción que el equipo debe
considerar con cada Feature o Historia.
TIPOS
1. DESARROLLO, estos atributos vienen a representar el CÓMO desarrollamos nuestro código e incluyen:
Para mitigar los riesgos el equipo debe colaborar de forma temprana, siendo proactivo. No esperes a que el Product Owner inicie la
conversación.
Agile Testing
El Manifiesto
Visualización de del Testing (AASfñasdhflasjdfjlflahsf)
una Estrategia de Automatización de Pruebas
La Automatización de Pruebas es un reto constante para los equipos de desarrollo de software en cualquier
parte. Te mostramos cómo el uso de Modelos Visuales pueden ayudar a tu equipo a diseñar su propia
estrategia de automatización.
AUTOMATIZACIÓN
asegura que no se vayan a propagar hacia arriba. API Tests
Además, la amplia cobertura de Pruebas Unitarias nos documenta
nuestro producto. Hace que sepamos qué está fallando, dónde Pruebas de
Integración
está el fallo y facilita su lectura (incluso para las nuevas
incorporaciones en el equipo). Pruebas de
Componentes
Normalmente podemos encontrar un planteamiento diferente a
la pirámide de Mike Cohn y este no tiene por qué estar mal PRUEBAS UNITARIAS
necesariamente (pirámide invertida o reloj de arena), aunque si la MÁS
AISLADAS
MÁS
FÁCIL
El Agile
Manifiesto
Testerdel Testing (AASfñasdhflasjdfjlflahsf)
A diferencia del tester tradicional encargado de elaborar suites de prueba (a partir de diseños funcionales),
y luego ser un mero ejecutor de checklist. El Agile Tester trabaja con el equipo siendo su prioridad principal
la calidad y domina las herramientas de automatización, así como las metodologías ágiles.
T
El Agile Tester tiene una amplia base
- Se empareja con otros desarrolladores y testers. de habilidades y conocimientos
- SHAPED SKILLS
generales que apoyan el conocimiento
- Dan apoyo al Product Owner. profundo en el área del Testing.
- Organiza y adapta la estrategia de QA general.
- Obtiene buenos datos de las pruebas.
- Identifica riesgos.
- Es experto en guiar el desarrollo con ejemplos empleando para ello TDD, ATDD y SBE.
- Trabajo con el equipo para asegurar la cabay observabilidad de las pruebas para poder probarlas y monitorizarlas en Producción.
- Tiene pasión por la calidad y las pruebas, abogan por ellas y las defienden.