際際滷

際際滷Share a Scribd company logo
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
Bdd beyond testing
References
 BDD in Action (http://www.manning.com/smart/)
 Bridging the communication gap
(http://www.acceptancetesting.info/the-book/)
 Specification by example
(http://specificationbyexample.com/)
 http://lizkeogh.com/2013/10/24/bdd-before-thetools/
 http://dannorth.net/introducing-bdd/

More Related Content

Bdd beyond testing

  • 31. References BDD in Action (http://www.manning.com/smart/) Bridging the communication gap (http://www.acceptancetesting.info/the-book/) Specification by example (http://specificationbyexample.com/) http://lizkeogh.com/2013/10/24/bdd-before-thetools/ http://dannorth.net/introducing-bdd/

Editor's Notes

  • #4: Vamos a ver un poco de historia. Todo esto empez坦 en 2003 gracias a Dan North. Dan siempre se encontraba con los mismos problemas planteados por sus alumnos de cursos de TDD: - Por donde empiezo? - Qu辿 testeo? - Como llamo a mis tests? - Como entiendo pq un test ha fallado?Su respuesta a todo esto fue BDD.
  • #5: Lo primero que vio Dan es que estaban probando una herramienta que generaba una especie de documentaci坦n a partir de los proyectos de test (como el reporter de Jasmine). Vio que si los tests ten鱈a como nombre una sentencia realizada con el lenguaje del dominio, les pod鱈a servir de documentaci坦n.
  • #6: Lo segundo que se dio cuenta es que empezar los tests con la palabra should, ayudaba a mantenerse focalizado, ya que esa clase o m辿todo solo pod鱈a testear eso.
  • #7: Un nombre expresivo es importante cuando un test falla. Al igual que un buen mensaje en el assert. Podemos saber pq ha fallado y lo que tenemos que arreglar con solo ver el nombre y el error.
  • #8: La palabra comportamiento es m叩s 炭til que la palabra test. Si nuestros m辿todos de test no est叩n definiendo el comportamiento de nuestro sistema, tendremos una falsa sensaci坦n de seguridad. Centrarnos en el comportamiento nos ayuda much鱈simo en el desarrollo. Y de aqu鱈 naci坦 el t辿rmino BDD y jBehave, el primer framework basado en jUnit.
  • #9: Dan charl坦 de todo esto con Chris Matts (el autor del libro Commitment) y le hizo ver la importancia del valor de negocio en BDD. Cuando estamos desarrollando nos tenemos que preguntar: qu辿 es lo siguiente m叩s importante que el sistema no hace? Y eso es lo que tenemos que implementar. Eso es lo que nos har叩 entregar el mayor valor.
  • #10: Explicando todo esto a Chris Matts (el lenguaje utilizado en BDD) Chris le hizo ver que era lo mismo que un an叩lisis. Lo que estaban describiendo los tests de Dan eran los requisitos del sistema. Se pod鱈an utilizar estos comportamientos para definir los requisitos de un sistema. Solo se necesitaba encontrar un vocabulario que todo el mundo pudiera utilizar y que eliminara las ambig端edades y faltas de entendimiento entre la gente de negocio y los desarrolladores.
  • #11: BDD da un lenguaje ub鱈cuo para la fase de an叩lisis. Un lenguaje que puede entender la gente de negocio, los desarrolladores, testers, etc. Se desarrolla el patr坦n Given, When, Then.
  • #12: Los criterios de aceptaci坦n tienen que ser ejecutables. Nos da velocidad, tests de regresi坦n, etc.
  • #13: Es como las hist坦rias de usuario: CardConversationConfirmation
  • #14: Pq hacemos todo esto?
  • #15: Lo hacemos por dinero! En el 2012, la fuerza armada estadounidense pago 1 bill坦n de d坦lares por un proyecto para mejorar el abastecimiento de las tropas. 7 a単os de desarrollo despu辿s todav鱈a era utilizable y llevaba un coste de 1.1 billones de d坦lares extra.Obama healthcare cost坦 618 millones de euros y el dia que se lanz坦 no funcionaba.En lo que m叩s pierde la industria del software es por no saber lo que necesitamos hacer.Obviamente antes de todo esto hay una etapa de descubrir estos requisitos. Real options, deliberate Discovery, featureinjection, impactmapping, etc.
  • #16: Hacer este tipo de t辿cnicas nos permites saltar el agujero que hay entre lo que unos y otros entienden de un proyecto. Esto viene de dar cosas por supuestas, de no preguntar, etc.The single biggest problema in communicationistheillusionthatit has taken place George Bernard Shaw (Founder of London School of Echonomics)Como podemos salvar estas diferencias?
  • #17: Con ejemplos. Si os par叩is a pensar, siempre hemos trabajado con ejemplos. Pero estos ejemplos no se comunican.
  • #18: Necesitamos diversidad cognitiva. Los grupos sin diversidad cognitiva tienden a llegar a consensos r叩pidos. Si yo me reh炭no con unos amigos muy cul辿s, llegar辿 a la conclusi坦n que el Espanyol se va a dejar ganar contra el Madrid (y el campo aplaudir叩) y que el Levante jug坦 primado (y mucho). Esto es cierto, pero podr鱈a no serlo.Si me reuno con gente que sepa de futbol y que sea de diferentes equipos, har辿 un estudio mucho m叩s pormenorizado de los partidos.Cada uno es bueno sacando ejemplos de su 叩rea (happypath, cosas de desarrollo, testing, etc).
  • #20: Living documentation. Una de las ventajas que nos da BDD es el de tener como resultado una documentaci坦n viva, que se modifica asiduamente, que se va a mirar siempre que hay dudas y que es ejecutable.
  • #21: Ganamos en entendimiento compartido. Todas las partes saben de que est叩n hablando.
  • #22: Este es el patr坦n t鱈pico de BDD. Estas especificaciones hay que tratarlas como el c坦digo: - Que sean f叩ciles de leer y mantener. - Eliminar la duplicidad - tablas - scenariooutline + example
  • #23: Y sobretodo ser expresivo. Centrarnos en el qu辿 y no en el como. Un escenario no debe ser un script de test, on debe meterse en UI ni especificar los pasos que hay que hacer. Debe centrarse en temas de negocio. Si hace falta automatizar la UI tenemos que utilizar page objects.
  • #25: Ciclo de BDD