BDD
Behavior-driven Development
Eron Rodrigues Alves
04/08/2015
Introdução
Dan North (2006)
TDD? ATDD? DDD?
• Por onde começar?
• O que testar?
• O teste precisa começar falhando? (Baby steps)
Introdução
TDD (e ATDD) DDD
BDD
Práticas
• Outside-in Development.
• Exemplos para descrever o comportamento.
(Estórias - Requisitos)
• Automatizar os exemplos. (Testes de
Aceitação)
– Testes são chamados de “Cenários” ou
“Especificações”.
Práticas
• Usar deve (should).
• Usar simuladores de teste (mocks, stubs,
fakes, dummies, spies).
• Linguagem Ubíqua.
Ciclo de desenvolvimento
1. Descrever a estória;
2. Detalhar o comportamento esperado da estória
através de cenários;
3. Mapear o cenário em uma classe de teste
automatizado;
4. Implementar o código para que o teste passe com
sucesso. (Red – Yellow – Green)
Ferramentas
• JSpec (Java)
• ScalaTest (Scala)
• Specter (.Net)
• RSpec (Ruby)
• Cucumber
Cucumber
Descrevendo Comportamento
Given (Dado): Representa a situação inicial do teste e pode ser
considerado como a pré-condição.
When (Quando): Representa uma ação ou evento. Pode ser
considerado como um procedimento.
Then (Então): Representa uma resposta, comportamento ou resultado
esperado.
And (E): usado para estender o given, when ou then positivamente.
But (Mas): usado para estender o given, when ou then negativamente.
Cucumber
Descrevendo Comportamento
Feature Inscrição
Inscrição deve ser rápida e amigável.
Scenario: Inscrição com sucesso.
Novos usuários devem receber um e-mail de confirmação e
uma saudação personalizada ao entrar no sistema.
Given Escolhi me inscrever
When Me inscrever com dados válidos
Then Devo receber um e-mail de confirmação
And Devo visualizar uma saudação personalizada
Cucumber
Descrevendo Comportamento
Scenario: E-mail duplicado
Quando alguém tenta criar uma conta para um endereço de
e-mail que já está cadastrado.
Given escolhi me inscrever
But inseri e-mail já cadastrado
Then devo ser informado que o e-mail já está cadastrado
And deve ser oferecida uma opção para recuperar a senha
Cucumber
Desenvolvendo o Teste
BDD
Conclusão
Referências
http://dannorth.net/introducing-bdd/
http://guide.agilealliance.org/
http://www.thoughtworks.com/pt/insights/
http://www.bugbang.com.br/
https://cucumber.io/docs/reference
http://www.toolsqa.com/

Introdução à BDD (Behavior-driven Development)