SlideShare uma empresa Scribd logo
1 de 13
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/

Mais conteúdo relacionado

Semelhante a BDD: Behavior-driven Development

Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmineRangel Javier
 
Test é para os fracos
Test é para os fracosTest é para os fracos
Test é para os fracosThiago Avelino
 
O que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilO que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilSamanta Cicilia
 
Java e o mercado de trabalho
Java e o mercado de trabalhoJava e o mercado de trabalho
Java e o mercado de trabalhoClaudiney Marques
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Bernardo Fontes
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
[Campus code] Boas práticas em Rails
[Campus code] Boas práticas em Rails[Campus code] Boas práticas em Rails
[Campus code] Boas práticas em Railsfabio perrella
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testesCarlos Santana
 
Tecnicas de projeto design especificacao modelagem de casos de testes
Tecnicas de projeto design especificacao modelagem de casos de testesTecnicas de projeto design especificacao modelagem de casos de testes
Tecnicas de projeto design especificacao modelagem de casos de testesCristiano Caetano
 
Testes automatizados mobile - uma prova de conceito
Testes automatizados mobile - uma prova de conceitoTestes automatizados mobile - uma prova de conceito
Testes automatizados mobile - uma prova de conceitoJoyce Bastos
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDDDextra
 
Por que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasPor que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasLucas Caton
 
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsTestes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsLocaweb
 

Semelhante a BDD: Behavior-driven Development (20)

Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmine
 
Unit test & TDD
Unit test & TDDUnit test & TDD
Unit test & TDD
 
Test é para os fracos
Test é para os fracosTest é para os fracos
Test é para os fracos
 
O que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilO que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágil
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
Java e o mercado de trabalho
Java e o mercado de trabalhoJava e o mercado de trabalho
Java e o mercado de trabalho
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
[Campus code] Boas práticas em Rails
[Campus code] Boas práticas em Rails[Campus code] Boas práticas em Rails
[Campus code] Boas práticas em Rails
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 
Tecnicas de projeto design especificacao modelagem de casos de testes
Tecnicas de projeto design especificacao modelagem de casos de testesTecnicas de projeto design especificacao modelagem de casos de testes
Tecnicas de projeto design especificacao modelagem de casos de testes
 
Agile official
Agile officialAgile official
Agile official
 
Testes automatizados mobile - uma prova de conceito
Testes automatizados mobile - uma prova de conceitoTestes automatizados mobile - uma prova de conceito
Testes automatizados mobile - uma prova de conceito
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDD
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Por que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasPor que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticas
 
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsTestes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJs
 

Mais de Eron Rodrigues Alves

Mais de Eron Rodrigues Alves (8)

Contágio Por que as coisas pegam? - Jonah Berger
Contágio Por que as coisas pegam? - Jonah BergerContágio Por que as coisas pegam? - Jonah Berger
Contágio Por que as coisas pegam? - Jonah Berger
 
Canvas de proposta de valor
Canvas de proposta de valorCanvas de proposta de valor
Canvas de proposta de valor
 
Teste de usabilidade
Teste de usabilidadeTeste de usabilidade
Teste de usabilidade
 
Engineering culture
Engineering cultureEngineering culture
Engineering culture
 
Angular2 - Principais Mudanças
Angular2 - Principais MudançasAngular2 - Principais Mudanças
Angular2 - Principais Mudanças
 
Design Thinking
Design ThinkingDesign Thinking
Design Thinking
 
Marketing 3.0
Marketing 3.0Marketing 3.0
Marketing 3.0
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 

BDD: Behavior-driven Development