SlideShare una empresa de Scribd logo
1 de 24
Giving an agile flavor to
Use Case documentation
Regional Scrum Gathering Ecuador 2015
(Universidad de Las Américas)
José Cahuana Turpo
jcahuana@ucsm.edu.pe
Walter A. Carpio
wcarpiom@ucsm.edu.pe
@wcarpiom
1
Agenda
● Introducción
○ Estado del arte
○ Terminología
○ Formatos
● Desarrollo
○ Formalización
○ Algunos números
○ Caso de estudio
○ Aplicación de la propuesta
○ Demostración
● Conclusiones y trabajos futuros
2
Estado del arte
- Use cases
- User stories
- Persona stories
3
Terminología
User Stories
Acceptance
Test
CodeTest green - TDD
Test green - AT Working Software
4
Pruebas de aceptación (AT)
5
● Son las pruebas que configuran los criterios de aceptación por parte del
usuario. El enfoque está basado en pruebas de caja negra, donde el
usuario en base a lo que ve en la interfaz, prueba la funcionalidad y
demás atributos del software.
Desarrollo basado en pruebas (TDD)
6
● En un desarrollo basado en pruebas, las pruebas son el proceso inicial de
todo el desarrollo del software. Luego se produce el código mínimo
necesario para superar las pruebas.
Extraído de http://crowdsourcetesting.com/test-driven-development/
Desarrollo basado en pruebas de aceptación (ATDD)
7
● Es un tipo particular de TDD, donde cada prueba representa un requerimiento que pueda ser
probado, entonces la prueba de aceptación se va a dar por el comportamiento que muestre el
sistema, respecto de la funcionalidad solicitada.
● Algo importante de este desarrollo es que fomenta la comunicación entre el cliente y el
desarrollador.
Casos de uso
8
Constituye un aspecto del software que enmarca el comportamiento requerido.
User Story
9
● Una user story es la descripción de la funcionalidad solicitada que tiene un
valor intrínseco.
● Previo a dicha descripción, se conversa con el usuario respecto de su
situación, y de sus necesidades.
10
Fuente: J. Braz (2008)
Formatos de especificación de los Use Cases
11
Fuente: Dr Simon Spacey
12
13Fuente: Gong Zhang, Tao Yue y Shaukat Ali (2013)
Algunos números
User stories
Use cases
Customer Oriented
Main success scenario
Story points
Faster and shorter
Model interaction
Many scenarios
Use case points
More time for analysis and writing
14Fuente: Ambysoft, url: http://www.ambysoft.com/surveys/howAgileAreYou2013.html
Formalización de un Caso de Uso
15
Sea un UC un caso de uso representado por la tupla
(A, d, F), donde:
-A es el conjunto de actores.
-d es la descripción de la funcionalidad requerida.
-F es un conjunto de flujos básico y alternativos.
Formalización de una Historia de Usuario
16
Sea una US una User Story representada por la tupla
(A, s, F, O), donde:
-A es quien necesita la funcionalidad.
-s es la historia del usuario que provocó la necesidad.
-F es la expresión de la necesidad.
-V es el valor que tiene la necesidad para el usuario.
Caso estudio
17
● Se desea especificar las necesidades de una biblioteca.
● El usuario puede buscar en el inventario de publicaciones.
● La información de cada publicación será mostrada en una ficha individual.
● Se deben poder administrar préstamos de las publicaciones.
18
19
Formalización de un test de aceptación
20
Sea un AT (Test de aceptación) una tupla formada por (F,
S, d, A), donde
-F es un feature a comprobar.
-S es el conjunto de steps que componen el feature.
-d es el conjunto de funciones de implementación para cada
step, donde una de esas funciones di es la que comprueba
si se alcanza el estado de aceptación.
-A es el estado de aceptación para la prueba.
Formalización: Resultado
21
Sea un UC-S (satisfiable use case) una tupla formada por
(A, d, F, ATs), donde
-A, d y F corresponden a la definición habitual de un UC, y
-ATs es un conjunto de funciones booleanas, que luego de su
ejecución, todas dan true. En caso alguna de false producto
de un test de regresión, se realiza una verificación del
sistema, hasta que sea totalmente satisfecha.
Demo
22
Conclusiones
23
1. Uno de los inconvenientes de los casos de uso es que no son ejecutables.
2. Los criterios de aceptación agregados a la especificación de casos de uso
sí se pueden automatizar.
3. La propuesta se ajusta al segundo valor del agilismo: se prefiere software
funcionando a la documentación exhaustiva.
4. Las especificaciones de los flujos principal o alternos en los casos de uso,
generan procesos de pruebas manuales.
5. Se automatizan las pruebas que protegen contra daños colaterales.
6. Los tests de aceptación facilitan las pruebas de regresión
Trabajos a futuro
24
● UC-S para requerimientos no funcionales.
● Generación automática de informe de pruebas.

Más contenido relacionado

Destacado

Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)Daniel Wellman
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing MethodologyGaya1985
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing ProcessIntetics
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testingKMS Technology
 

Destacado (6)

Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testing
 

Similar a Giving an agile flavor to Use Case documentation

Tema 2 - T3: Casos de prueba
Tema 2 - T3:  Casos de pruebaTema 2 - T3:  Casos de prueba
Tema 2 - T3: Casos de pruebaMagemyl Egana
 
Mejores prácticas para testing de aplicaciones
Mejores prácticas para testing de aplicacionesMejores prácticas para testing de aplicaciones
Mejores prácticas para testing de aplicacionesSoftware Guru
 
Modelo de prototipos
Modelo de prototiposModelo de prototipos
Modelo de prototiposjuriberuiz
 
Trabajo de teoria de sistema 2
Trabajo de teoria de sistema 2Trabajo de teoria de sistema 2
Trabajo de teoria de sistema 2Darwis Gonzalez
 
Clase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqawClase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqawRubens Diaz Pulli
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de softwareYamnibel
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasSergio Sanchez
 
Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Professional Testing
 
Actividad 3 prueba de software juan esteban uribe m
Actividad 3 prueba de software juan esteban uribe mActividad 3 prueba de software juan esteban uribe m
Actividad 3 prueba de software juan esteban uribe mjuanesellanza1
 
Prototipado rapido de interfaces
Prototipado rapido de interfacesPrototipado rapido de interfaces
Prototipado rapido de interfacesFahyr
 
Interfaz de uusario cintya alban
Interfaz de uusario cintya albanInterfaz de uusario cintya alban
Interfaz de uusario cintya albanDavid Casanova
 
Taller 3 calidad_de_software_jcom
Taller 3 calidad_de_software_jcomTaller 3 calidad_de_software_jcom
Taller 3 calidad_de_software_jcomJuan Carlos Ospina
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?TestingUy
 
Sistemas de Informacion Unidad 4
Sistemas de Informacion Unidad 4Sistemas de Informacion Unidad 4
Sistemas de Informacion Unidad 4CasssandraG
 
Storyboards como herramienta de validación
Storyboards como herramienta de validaciónStoryboards como herramienta de validación
Storyboards como herramienta de validaciónGustavo Soto Miño
 

Similar a Giving an agile flavor to Use Case documentation (20)

Tema 2 - T3: Casos de prueba
Tema 2 - T3:  Casos de pruebaTema 2 - T3:  Casos de prueba
Tema 2 - T3: Casos de prueba
 
Mejores prácticas para testing de aplicaciones
Mejores prácticas para testing de aplicacionesMejores prácticas para testing de aplicaciones
Mejores prácticas para testing de aplicaciones
 
Modelo de prototipos
Modelo de prototiposModelo de prototipos
Modelo de prototipos
 
auditoria de sistemas
auditoria de sistemasauditoria de sistemas
auditoria de sistemas
 
Calidad del software cap2
Calidad del software   cap2Calidad del software   cap2
Calidad del software cap2
 
Trabajo de teoria de sistema 2
Trabajo de teoria de sistema 2Trabajo de teoria de sistema 2
Trabajo de teoria de sistema 2
 
Clase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqawClase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqaw
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Prototipado
PrototipadoPrototipado
Prototipado
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De Sistemas
 
Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3
 
Prototipos
PrototiposPrototipos
Prototipos
 
Actividad 3 prueba de software juan esteban uribe m
Actividad 3 prueba de software juan esteban uribe mActividad 3 prueba de software juan esteban uribe m
Actividad 3 prueba de software juan esteban uribe m
 
Prototipado rapido de interfaces
Prototipado rapido de interfacesPrototipado rapido de interfaces
Prototipado rapido de interfaces
 
Interfaz de uusario cintya alban
Interfaz de uusario cintya albanInterfaz de uusario cintya alban
Interfaz de uusario cintya alban
 
Taller 3 calidad_de_software_jcom
Taller 3 calidad_de_software_jcomTaller 3 calidad_de_software_jcom
Taller 3 calidad_de_software_jcom
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
 
Sistemas de Informacion Unidad 4
Sistemas de Informacion Unidad 4Sistemas de Informacion Unidad 4
Sistemas de Informacion Unidad 4
 
Storyboards como herramienta de validación
Storyboards como herramienta de validaciónStoryboards como herramienta de validación
Storyboards como herramienta de validación
 
Manejo de prototipos
Manejo de prototiposManejo de prototipos
Manejo de prototipos
 

Giving an agile flavor to Use Case documentation

  • 1. Giving an agile flavor to Use Case documentation Regional Scrum Gathering Ecuador 2015 (Universidad de Las Américas) José Cahuana Turpo jcahuana@ucsm.edu.pe Walter A. Carpio wcarpiom@ucsm.edu.pe @wcarpiom 1
  • 2. Agenda ● Introducción ○ Estado del arte ○ Terminología ○ Formatos ● Desarrollo ○ Formalización ○ Algunos números ○ Caso de estudio ○ Aplicación de la propuesta ○ Demostración ● Conclusiones y trabajos futuros 2
  • 3. Estado del arte - Use cases - User stories - Persona stories 3
  • 4. Terminología User Stories Acceptance Test CodeTest green - TDD Test green - AT Working Software 4
  • 5. Pruebas de aceptación (AT) 5 ● Son las pruebas que configuran los criterios de aceptación por parte del usuario. El enfoque está basado en pruebas de caja negra, donde el usuario en base a lo que ve en la interfaz, prueba la funcionalidad y demás atributos del software.
  • 6. Desarrollo basado en pruebas (TDD) 6 ● En un desarrollo basado en pruebas, las pruebas son el proceso inicial de todo el desarrollo del software. Luego se produce el código mínimo necesario para superar las pruebas. Extraído de http://crowdsourcetesting.com/test-driven-development/
  • 7. Desarrollo basado en pruebas de aceptación (ATDD) 7 ● Es un tipo particular de TDD, donde cada prueba representa un requerimiento que pueda ser probado, entonces la prueba de aceptación se va a dar por el comportamiento que muestre el sistema, respecto de la funcionalidad solicitada. ● Algo importante de este desarrollo es que fomenta la comunicación entre el cliente y el desarrollador.
  • 8. Casos de uso 8 Constituye un aspecto del software que enmarca el comportamiento requerido.
  • 9. User Story 9 ● Una user story es la descripción de la funcionalidad solicitada que tiene un valor intrínseco. ● Previo a dicha descripción, se conversa con el usuario respecto de su situación, y de sus necesidades.
  • 10. 10 Fuente: J. Braz (2008) Formatos de especificación de los Use Cases
  • 12. 12
  • 13. 13Fuente: Gong Zhang, Tao Yue y Shaukat Ali (2013)
  • 14. Algunos números User stories Use cases Customer Oriented Main success scenario Story points Faster and shorter Model interaction Many scenarios Use case points More time for analysis and writing 14Fuente: Ambysoft, url: http://www.ambysoft.com/surveys/howAgileAreYou2013.html
  • 15. Formalización de un Caso de Uso 15 Sea un UC un caso de uso representado por la tupla (A, d, F), donde: -A es el conjunto de actores. -d es la descripción de la funcionalidad requerida. -F es un conjunto de flujos básico y alternativos.
  • 16. Formalización de una Historia de Usuario 16 Sea una US una User Story representada por la tupla (A, s, F, O), donde: -A es quien necesita la funcionalidad. -s es la historia del usuario que provocó la necesidad. -F es la expresión de la necesidad. -V es el valor que tiene la necesidad para el usuario.
  • 17. Caso estudio 17 ● Se desea especificar las necesidades de una biblioteca. ● El usuario puede buscar en el inventario de publicaciones. ● La información de cada publicación será mostrada en una ficha individual. ● Se deben poder administrar préstamos de las publicaciones.
  • 18. 18
  • 19. 19
  • 20. Formalización de un test de aceptación 20 Sea un AT (Test de aceptación) una tupla formada por (F, S, d, A), donde -F es un feature a comprobar. -S es el conjunto de steps que componen el feature. -d es el conjunto de funciones de implementación para cada step, donde una de esas funciones di es la que comprueba si se alcanza el estado de aceptación. -A es el estado de aceptación para la prueba.
  • 21. Formalización: Resultado 21 Sea un UC-S (satisfiable use case) una tupla formada por (A, d, F, ATs), donde -A, d y F corresponden a la definición habitual de un UC, y -ATs es un conjunto de funciones booleanas, que luego de su ejecución, todas dan true. En caso alguna de false producto de un test de regresión, se realiza una verificación del sistema, hasta que sea totalmente satisfecha.
  • 23. Conclusiones 23 1. Uno de los inconvenientes de los casos de uso es que no son ejecutables. 2. Los criterios de aceptación agregados a la especificación de casos de uso sí se pueden automatizar. 3. La propuesta se ajusta al segundo valor del agilismo: se prefiere software funcionando a la documentación exhaustiva. 4. Las especificaciones de los flujos principal o alternos en los casos de uso, generan procesos de pruebas manuales. 5. Se automatizan las pruebas que protegen contra daños colaterales. 6. Los tests de aceptación facilitan las pruebas de regresión
  • 24. Trabajos a futuro 24 ● UC-S para requerimientos no funcionales. ● Generación automática de informe de pruebas.