BDD TDD ATDD

Post on 16-Jan-2017

261 views 1 download

Transcript of BDD TDD ATDD

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

2015

Agenda

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

Agenda

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

¿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.

Ventajas

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

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.

Agenda

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

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.

Notación Gerkins

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

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.

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.

Agenda

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

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.

Agenda

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

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.

ATDD

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

historia de usuario terminada.

Agenda

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

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).