BDD-TDD-ATDD
Joan Sebastián Ramírez Pérez
2017
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
Ejemplo Combinación de números
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.
Ejemplo Combinación de números
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).
• John Ferguson Smart. (2014). BDD in action. (1st ed.)

Bddtddatdd

  • 1.
  • 2.
    Agenda • Pair programming •BDD • TDD • ATDD • Bibliografía
  • 3.
    Agenda • Pair programming •BDD • TDD • ATDD • Bibliografía
  • 4.
    ¿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.
  • 5.
    Ventajas • Disciplina • Calidad •Enfoque • Moral • Propiedad colectiva o distribución de conocimiento • Enseñanza • Pocas interrupciones.
  • 6.
    Desventajas • Diferencias considerablesentre 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.
  • 7.
    Agenda • Pair programming •BDD • TDD • ATDD • Integración continua • Bibliografía
  • 8.
    Notación Gerkins • Usadopara 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.
  • 9.
  • 10.
  • 12.
    BDD • Behaviour DrivenDevelopment • Termino asociado a metodologías ágiles. • Usar ejemplos para crear un entendimiento compartido para evitar incerteza y entregar software que realmente importa.
  • 13.
    BDD • Se definenrequisitos 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.
  • 16.
  • 17.
    Agenda • Pair programming •BDD • TDD • ATDD • Integración continua • Bibliografía
  • 19.
    TDD • Técnica dedesarrollo 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.
  • 20.
    Agenda • Pair programming •BDD • TDD • ATDD • Integración continua • Bibliografía
  • 22.
    ATDD • Comienza conuna 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.
  • 23.
    ATDD • Se desarrollala historia en TDD. • Se procede a la comprobación por parte del usuario de la historia de usuario terminada.
  • 24.
    Agenda • Pair programming •BDD • TDD • ATDD • Bibliografía
  • 25.
    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). • John Ferguson Smart. (2014). BDD in action. (1st ed.)