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 ...
Introdução
TDD (e ATDD) DDD
BDD
Práticas
• Outside-in Development.
• Exemplos para descrever o comportamento.
(Estórias - Requisitos)
• Automatizar os exe...
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. M...
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é-...
Cucumber
Descrevendo Comportamento
Feature Inscrição
Inscrição deve ser rápida e amigável.
Scenario: Inscrição com sucesso...
Cucumber
Descrevendo Comportamento
Scenario: E-mail duplicado
Quando alguém tenta criar uma conta para um endereço de
e-ma...
Cucumber
Desenvolvendo o Teste
BDD
Conclusão
Referências
http://dannorth.net/introducing-bdd/
http://guide.agilealliance.org/
http://www.thoughtworks.com/pt/insights/
...
Próximos SlideShares
Carregando em…5
×

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

254 visualizações

Publicada em

Pequeno overview a respeito de BDD com alguns exemplos utilizando Cucumber.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
254
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. BDD Behavior-driven Development Eron Rodrigues Alves 04/08/2015
  2. 2. Introdução Dan North (2006) TDD? ATDD? DDD? • Por onde começar? • O que testar? • O teste precisa começar falhando? (Baby steps)
  3. 3. Introdução TDD (e ATDD) DDD BDD
  4. 4. 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”.
  5. 5. Práticas • Usar deve (should). • Usar simuladores de teste (mocks, stubs, fakes, dummies, spies). • Linguagem Ubíqua.
  6. 6. 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)
  7. 7. Ferramentas • JSpec (Java) • ScalaTest (Scala) • Specter (.Net) • RSpec (Ruby) • Cucumber
  8. 8. 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.
  9. 9. 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
  10. 10. 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
  11. 11. Cucumber Desenvolvendo o Teste
  12. 12. BDD Conclusão
  13. 13. 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/

×