O documento discute as técnicas de Test Driven Development (TDD) e Behavior Driven Development (BDD), comparando-as e explicando como o BDD evoluiu do TDD. Ele fornece exemplos de como especificar funcionalidades usando BDD e enfatiza a importância de exemplos concretos para compreender claramente um domínio.
4. 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
5. O senso comum nos engana
● O simples pode ser complexo
● Exemplos auxiliam muito na compreensão
● Exemplos como forma de iniciar uma
conversa
7. 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
9. 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)
10. 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
11. Não pense em termos de unidade e sim em
facetas de comportamento
12. "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
13. "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
14. BDD portanto foi uma evolução natural do TDD
trazendo consigo novas terminologias
● Behavior - Tests
● Expectations - Assertions
● Specification-centric - Test-centric
23. 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