BDD TDD ATDD

23
BDD-TDD-ATDD Joan Sebastián Ramírez Pérez 2015

Transcript of BDD TDD ATDD

Page 1: BDD TDD ATDD

BDD-TDD-ATDDJoan Sebastián Ramírez Pérez

2015

Page 2: BDD TDD ATDD

Agenda

• Pair programming• BDD• TDD• ATDD• Bibliografía

Page 3: BDD TDD ATDD

Agenda

• Pair programming• BDD• TDD• ATDD• Bibliografía

Page 4: BDD TDD ATDD

¿En qué consiste?

• Dos desarrolladores en un mismo sitio de trabajo, donde uno codifica y el otro planea lo que sigue y vigila el camino.

• El que codifica se llama controlador y el otro es navegador.

• Los roles se van intercambiando en periodos de tiempo regulares.

• El navegador no le puede quitar el teclado al controlador, debe esperar su turno.

Page 5: BDD TDD ATDD

Ventajas

• Disciplina• Calidad• Enfoque• Moral• Propiedad colectiva o distribución de conocimiento• Enseñanza• Pocas interrupciones.

Page 6: BDD TDD ATDD

Desventajas

• Diferencias considerables entre los programadores pueden hacer tedioso el trabajo.

• Trabajo en equipo cuando se tiene el habito de trabajo individual.

• Medición de productividad.• Diferencias en estilo de programación puede

desencadenar conflictos.• Se dificulta con el teletrabajo.

Page 7: BDD TDD ATDD

Agenda

• Pair programming• BDD• TDD• ATDD• Integración continua• Bibliografía

Page 8: BDD TDD ATDD

Notación Gerkins

• Usado para BDD y ATDD.• Precondición-Acción-Resultado esperado= Given-when-

then.• Se escriben los criterios de aceptación como escenarios.

Estos escenarios deberán ser automatizado mediante pruebas.

Page 9: BDD TDD ATDD

Notación Gerkins

https://github.com/cucumber/cucumber/wiki/Given-When-Then

Page 10: BDD TDD ATDD
Page 11: BDD TDD ATDD

BDD

• Behaviour Driven Development• Termino asociado a metodologías ágiles.• Usar ejemplos para crear un entendimiento compartido

para evitar incerteza y entregar software que realmente importa.

Page 12: BDD TDD ATDD

BDD

• Se definen requisitos funcionales en términos de historias de usuario.

• Para cada historia de usuario definimos escenarios que expliquen, en lenguaje natural, el comportamiento que queremos del software.

• Usamos Gherkins como sintaxis para la descripción de los escenarios de la historia de usuario.

• Así guiamos nuestro desarrollo en el comportamiento esperado por el cliente con todas sus variaciones de implementación.

Page 13: BDD TDD ATDD
Page 14: BDD TDD ATDD
Page 15: BDD TDD ATDD

Agenda

• Pair programming• BDD• TDD• ATDD• Integración continua• Bibliografía

Page 16: BDD TDD ATDD
Page 17: BDD TDD ATDD

TDD

• Técnica de desarrollo de aplicaciones fundamentada en escribir primero las pruebas, generalmente unitarias, para luego escribir el código fuente del requisito que dará por cumplida la prueba. Luego de esto se realiza una revisión del código escrito para buscar mejoras a dicho código (refactor).

• Nos ayuda a tener código más robusto, seguro, mantenible y desarrollo más rápido.

• También ayuda a construir solo lo que realmente se necesita y no perder el tiempo haciendo de más.

Page 18: BDD TDD ATDD

Agenda

• Pair programming• BDD• TDD• ATDD• Integración continua• Bibliografía

Page 19: BDD TDD ATDD
Page 20: BDD TDD ATDD

ATDD

• Comienza con una discusión entre los stake holders y desarrolladores. En ella se discuten las historias de usuario buscando respuestas a los cuestionamientos del negocio con el fin de definir claramente los criterios de aceptación.

• Luego hacemos refinamiento de las historias de usuario, si algo no quedo claro de la discusión. Se llevan los criterios de aceptación a un formato (Gherkins) que pueda ser procesado por alguno de los frameworks de automatización de pruebas funcionales.

Page 21: BDD TDD ATDD

ATDD

• Se desarrolla la historia en TDD.• Se procede a la comprobación por parte del usuario de la

historia de usuario terminada.

Page 22: BDD TDD ATDD

Agenda

• Pair programming• BDD• TDD• ATDD• Bibliografía

Page 23: BDD TDD ATDD

Bibliografía

• Laurie Williams & Robert Kessler. (2002). Pair Programming Illuminated. (1st ed.). : Addison-Wesley Professional.

• Dan North. (2006). Behavior Modification. Better Software magazine, 2006-03(03).