Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ThoughtWorks JC Session - BDD

ThoughtWorks JC Session - BDD

Apresentação que fizemos para JCs da ThoughtWorks, falando um pouco sobre o surgimento do BDD, as vantagens em se utilizar exemplos concretos na descrição de um domínio, efeitos positivos que BDD causa na comunicação de um time ágil e materiais interessantes sobre o tema.

Nicholas Pufal

July 03, 2014
Tweet

More Decks by Nicholas Pufal

Other Decks in Programming

Transcript

  1. Com exemplos: Dado que quero uma estrela de 8 pontos

    Quando peço para o app gerar a estrela Então temos a estrela à esquerda como resultado Dado que quero uma estrela de 12 pontos Quando peço para o app gerar a estrela Então temos a estrela à esquerda como resultado
  2. O senso comum nos engana • O simples pode ser

    complexo • Exemplos auxiliam muito na compreensão • Exemplos como forma de iniciar uma conversa
  3. Linha do tempo 1996 Kent Beck (Primeiras ideias TDD) 2001

    2003 2007 2008 Manifesto Ágil 2011 Kent Beck, Martin Fowler e outros Dan North JBehave (Primeiras ideias BDD) RSpec David Chelimsky, Dan North, Aslak Hellesoy e outros RBehave Dan North Cucumber, Gherkin parser/standard Aslak Hellesoy Specification by example Gojko Adzic
  4. TDD é uma técnica de desenvolvimento utilizada para entregar código

    de alta qualidade • Testes de regressão de baixo nível • Design emergente (revisão e evolução constantes do código)
  5. TDD != Unit Testing • Unit é um termo vago

    e confuso • Faz com que os desenvolvedores tenham a ideia de proporção 1:1 • Unit Tests são altamente dependentes da estrutura interna
  6. "TDD era uma idéia fabulosa embrulhada em um nome que

    fazia com que as pessoas pensassem a partir de uma perspectiva equivocada de testes." ~ ASTELS, DAVE
  7. "Eu decidi que deve ser possı́vel apresentar TDD de uma

    forma que vá direto às suas coisas boas e evite todas as suas armadilhas." ~ NORTH, DAN
  8. BDD portanto foi uma evolução natural do TDD trazendo consigo

    novas terminologias • Behavior - Tests • Expectations - Assertions • Specification-centric - Test-centric
  9. Links interessantes • A new look at Test Driven Development

    - Dave Astels • Introducing BDD - Dan North • RSpec and Behavior-Driven Development - Dave Astels & Steven Baker • Stubbing Is Not Enough - Gregory Moeck • BDD: Busting the myths - Gojko Adzic