Desarrollo ágil basado
en pruebas de aceptación
Patricio Letelier
[email protected]
Definición: Prueba de Aceptación (PA)
Definición: Prueba de Aceptación (PA)
Definición: Prueba de Aceptación (PA)
Definición: Prueba de Aceptación (PA)
“Una PA tiene como propósito demostrar al cliente el cumplimiento de
un requisito del software”
Precisando más, una PA:
Describe un escenario, compuesto por una situación del sistema
(condición de ejecución) una secuencia de pasos de uso y el
resultado alcanzado, todo ello desde la perspectiva del usuario
Puede estar asociada a requisitos funcionales o no funcionales
Un requisito tendrá una o más PAs asociadas
Las PAs cubren desde escenarios típicos/frecuentes hasta los más
excepcionales
Motivación
Motivación
Motivación
Motivación
Gestión de Requisitos y Testeo de Aceptación.
Métodos Ágiles … Test-Driven Development (TDD) “and beyond” …
Las pruebas deben dirigir el proceso de desarrollo.
TDD actúa a nivel de implementación a través de testeo unitario.
“No escribas código hasta que no tengas los casos de prueba
que ese código deberá satisfacer”
TDRE –––– TestTestTestTest----Driven
TDRE
Driven Requirement
Requirement Engineering
Engineering. Una interpretación
TDRE
Engineering
Requirement
Driven
TDRE
Driven
Requirement
Engineering
más amplia, incluyendo todo el proceso de desarrollo sería:
“No implementes un requisito hasta que no tengas definidas las
pruebas de aceptación que ese requisito debe satisfacer”
3333
TDRE, TDD a nivel de
TDRE, TDD a nivel de PAsPAsPAsPAs
TDRE, TDD a nivel de
TDRE, TDD a nivel de
TDRE
Requisitos
Test-Driven Requirements Engineering
Pruebas de
Aceptación
Análisis
Diseño de
Arquitectura
Pruebas de
Sistema
Pruebas de
Integración
Especificación y
Diseño de Pruebas
Diseño de
Módulos
Pruebas
Unitarias
Programación
TDD
Aplicación de Pruebas
4444
Desarrollo basado en
Desarrollo basado en PAsPAsPAsPAs
Desarrollo basado en
Desarrollo basado en
Cambio en
comportamiento
Un ítem es un cambio
implementado en el
producto
Versióni
Tipos de cambios
en el producto
Versióni+1
Nuevo requisito
Mejora
Corrección de defecto
Expresados en términos
de Pruebas de Aceptación
5555
Identificación de Pruebas de Aceptación
Identificación de Pruebas de Aceptación
Identificación de Pruebas de Aceptación
Identificación de Pruebas de Aceptación
Ejemplo: Requisito Reintegro
Escenarios => Pruebas de de de de Aceptación
Escenarios => Pruebas
Aceptación
Escenarios => Pruebas
Escenarios => Pruebas
Aceptación
Aceptación
Reintegro normal (suficiente saldo)
Intento de reintegro con saldo insuficiente, cliente estándar
Falta de ciertos tipos de billetes
Cancelación de operación
Aviso de no entrega de recibo
Fuera de servicio por falta de billetes
Excedido tiempo comunicación con banco
Excedido tiempo inactividad usuario
…
6666
Definición de Pruebas de Aceptación
Definición de Pruebas de Aceptación
Definición de Pruebas de Aceptación
Definición de Pruebas de Aceptación
Estructura de una PA
Ejemplo de PA
Nombre
Nombre
Nombre
Nombre
Condición
Condición
Condición
Condición
---
---
Pasos
Pasos
Pasos
Pasos
---
---
Resultado esperado
Resultado esperado
Resultado esperado
Resultado esperado
---
---
«Intento de reintegro con saldo insuficiente,
«Intento de reintegro con saldo insuficiente,
«Intento de reintegro con saldo insuficiente,
«Intento de reintegro con saldo insuficiente,
ccccliente estándar»
liente estándar»
liente estándar»
liente estándar»
Condición
Condición
Condición
Condición
Cliente estándar con saldo positivo
Acceder a ventana de reintegro
Pasos
Pasos
Pasos
Pasos
Introducir cantidad mayor que el saldo
Resultado esperado
Resultado esperado
Resultado esperado
Resultado esperado
Mensaje «saldo insuficiente»
Se ofrece nueva introducción
7
Gestión del Proyecto →→→→ Gestión del Producto
Gestión del Proyecto
Gestión del Producto
Gestión del Proyecto
Gestión del Proyecto
Gestión del Producto
Gestión del Producto
Estructura de
Requisitos del
Producto
Reintegro
Reintegro
Reintegro
Reintegro
Requisito afectado por
un ítem. Si el nodo no
existe se debería crear.
Cada nodo representa
una característica o
requisito con cierto
nivel de abstracción
Ítem
«Reintegro»
Cada nodo contiene un conjunto de
PAs que representan el
comportamiento del sistema respecto
de dicha característica o requisito
8888
Software basado en
Mantenimiento del Software
Mantenimiento del
basado en PAsPAsPAsPAs
basado en
Software
Mantenimiento del
Mantenimiento del
Software
basado en
Ejemplo
Ejemplo: Ítem «Adaptación a nuevo protocolo internacional». Esta es una mejora
Ejemplo
Ejemplo
que afectará a varios nodos, uno de ellos el de Reintegro.
CCCCambios
ambios en el requisito Reintegro
en el requisito Reintegro
ambios
ambios
en el requisito Reintegro
en el requisito Reintegro
(2 nuevas PAs, 1 PA modificada)
Reintegro normal (suficiente saldo)
Configuración de moneda
Advertir comisión aplicada en otro país
Intento de reintegro con saldo insuficiente, cliente estándar
Falta de ciertos tipos de billetes, según moneda
Cancelación de operación
Aviso de no entrega de recibo
Fuera de servicio por falta de billetes
Excedido tiempo comunicación con banco
Excedido tiempo inactividad usuario
…
9999
Maintenance based
Software Maintenance
Software
based onononon ATsATsATsATs
based
Maintenance
Software
Software
Maintenance
based
Estructura
de requisitos
del producto
Reintegro
Reintegro
Reintegro
Reintegro
PAs añadidas
PAs modificadas
PAs eliminadas
Un ítem puede afectar
a varios requisitos
Ítem
«Adaptación al nuevo
protocolo internacional»
El ítem puede añadir,
modificar o eliminar PAs
en un nodo afectado
10101010
Proceso de Desarrollo dirigido por
Proceso de Desarrollo dirigido por PAsPAsPAsPAs
Proceso de Desarrollo dirigido por
Proceso de Desarrollo dirigido por
Cliente
Cliente
Cliente
Cliente
Definen ítems
Definen ítems
Definen ítems
Definen ítems
eeeen términos
n términos
n términos
n términos
dddde e e e PAsPAsPAsPAs
Ítems
Ítems
Ítems
Ítems
Cambios en la
Cambios en la
Cambios en la
Cambios en la
estructura de
estructura de
estructura de
estructura de
requisitos y/o
requisitos y/o
requisitos y/o
requisitos y/o
en en en en PAsPAsPAsPAs
Escribe ccccódigo
Escribe
ódigo
Escribe
Escribe
ódigo
ódigo
para satisfacer las
para satisfacer las
para satisfacer las
para satisfacer las
PAsPAsPAsPAs
“Encargado de”
“Encargado de”
“Encargado de”
“Encargado de”
programar
programar
programar
programar
Diseña
Diseña
Diseña
Diseña
instanciaciones y
instanciaciones y
instanciaciones y
instanciaciones y
aplica las
aplica las PAsPAsPAsPAs
aplica las
aplica las
“Encargado de”
“Encargado de”
“Encargado de”
“Encargado de”
analizar
analizar
analizar
analizar
“Encargado de”
“Encargado de”
“Encargado de”
“Encargado de”
testear
testear
testear
testear
11111111
de TUNE----UP UP UP UP Process
screenshots de TUNE
Algunos screenshots
Algunos
Process
de TUNE
screenshots
Algunos
Algunos
screenshots
de TUNE
Process
Process
12121212
de TUNE----UP UP UP UP Process
screenshots de TUNE
… Algunos screenshots
… Algunos
Process
de TUNE
screenshots
… Algunos
… Algunos
screenshots
de TUNE
Process
Process
13131313
¿Qué resultados de I+D tenemos?
TUNE-UP Process: Metodología y herramienta de apoyo
para gestión ágil de proyectos y equipos de trabajo.
http://www.tuneupprocess.com
TDRE: Método para desarrollo ágil centrado en las
pruebas de aceptación (incluido en TUNE-UP Process).
Método y herramienta de apoyo para implantación de
prácticas ágiles: Agile Roadmap+.
http://agile-roadmap.tuneupprocess.com
14141414
¿Cómo pueden ayudar a las empresas a mejorar?
Ventajas de un enfoque ágil basado en PAs (los requisitos se
especifican básicamente como PAs).
Se evita el esfuerzo invertido en derivar de PAs a partir de
requisitos (tradicionales).
Se facilita el mantenimiento del producto y de su
especificación de requisitos.
La validación con el cliente basada acordar PAs puede ser
más detallada y precisa.
La granuralidad ofrecida por las PAs favorece las tareas
de estimación, planificación y seguimiento.
La satisfacción de las PAs permite al programador contar
con un criterio preciso para finalizar su trabajo.
15151515
¿Qué evidencias tenemos que esto funciona?
Más de 15 años aplicando y refinando nuestro enfoque y
herramienta TUNE-UP Process.
Aplicación de TDRE en más de 10 productos industriales. El más
representativo es un ERP donde tenemos más de 15.000 PAs
definidas y más de 4.000 pruebas automatizadas asociadas a
dichas PAs.
Consultoría y apoyo a la implantación de prácticas ágiles en más
de 20 empresas (en España, Chile y Paraguay).
Aplicación del enfoque y herramienta en dos asignaturas de
informática. Unos 100 alumnos cada año trabajando en equipos
de hasta 8 integrantes.
16161616
Datos de contacto
Patricio Letelier Torres
Departamento de Sistemas Informáticos y Computación (DSIC)
Universidad Politécnica de Valencia (UPV)
Despacho: 3D03 (Tercer Piso, Edif. DSIC)
Camino de Vera s/n
46022 Valencia, España
Email
LinkedIn
Blog
Twitter
:
[email protected]
: linkedin.com/in/letelier
: agilismoatwork.blogspot.com
: twitter.com/yopolt
17171717
Comentarios de: Desarrollo ágil basado en pruebas de aceptación (0)
No hay comentarios