Ana Carolina Hermann
anah@dbserver.com.br
 Técnica para implementar uma aplicação através da
descrição do seu comportamento do ponto de vista dos
stakeholders
 Iniciou a partir do TDD: como saber o que testar?
 Evolução: foco na comunicação entre as pessoas
 Usos:
 Análise: levantamento de requisitos
 Desenvolvimento: guia de implementação
 Testes: automação/testes de regressão
Funcionalidade: <Título>
Eu, como um <papel>,
Quero <funcionalidade>
Para que <benefício>
Cenário: <Título do Cenário>
Dado que...  Setup do cenário
E que ....
Quando ...  Evento que estou descrevendo
Então... deve...  Resultado(s) esperado(s)
E... deve...
Funcionalidade: US001_Cobrança
Eu, como funcionário do setor Financeiro,
Quero gerar a cobrança anual
Para que possamos receber o valor devido
Critérios de aceitação:
O sistema deve gerar parcelas a partir do valor para o ano
atual
Deve ser possível realizar desconto por categoria
Contexto:
Dado que o valor anual para 2016 é 100,00
Cenário: US001_Deve gerar cobranças
Dado um cliente com categoria “Efetivo”
Quando gerar a cobrança anual
Então devem ser criadas as seguintes parcelas a pagar
| Valor | Exercício |
| 50,00| Jan/2016 |
| 50,00| Jul/2016 |
Cenário: US001_Deve gerar cobrança com desconto
Dado um cliente com categoria “Aposentado”
E a categoria “Aposentado” tem desconto de 90,00
Quando gerar a cobrança anual
Então devem ser criadas as seguintes parcelas a pagar
| Valor | Exercício |
| 10,00| Jan/2016 |
 Aproximar a área técnica da área de negócios através de
• Linguagem ubíqua
• Criação colaborativa de cenários: Três amigos, Example Mapping
• Entendimento compartilhado
 Esclarecer cenários complexos de forma sucinta através de
exemplos
 Fornecer um guia de testes para o desenvolvedor
 Documentação viva com uso de automação
▪ Testes quebram ao alterar a especificação
▪ Especificação quebra ao alterar a aplicação
 Jogo de cartas print&play disponível em
https://bddwarriors.wordpress.com/
 Objetivos:
 Ajudar na popularização do BDD
 Fixar a estrutura básica da sintaxe
 Prevenir o apocalipse zumbi
 Demonstrar a construção conjunta de cenários
 Dois a seis jogadores
 Cada um recebe cinco cartas e uma pilha de fichas
para identificação
 Quem viu filme de Ficção Científica, Fantasia ou
Terror mais recentemente começa o jogo
Abilio
Gabriel
Ana
1 pt
Então ____ deve se transformar em ______
(Jogador pode começar por qualquer cláusula)
Abilio
Gabriel
Ana
1 pt
Então ____ deve se transformar em ______
2 pts
Quando ____________
(Jogador pode continuar o cenário ou criar um novo)
Abilio
Gabriel
Ana
1 pt
Então ____ deve se transformar em ______
1 pt
Dado um vampiro ____________
2 pts
Quando ____________
(Jogador deve ler o cenário
completando os espaços)
Abilio
Gabriel
Ana
1 pt
Então ____ deve se transformar em ______
1 pt
Dado um vampiro ____________
2 pts
Quando ____________
Abilio:
1 ponto (carta) +
2 pontos (completar cenário)
Gabriel:
2 pontos (carta)
Ana:
1 ponto (carta)
3 pts
____ sorvete ____________
Cartas Coringa:
Somente pode ser jogada ao
completar um cenário!
Cenário: Comprar duas cartas
Dado que é a sua vez
Quando jogar essa carta
Então compre duas cartas e descarte qualquer
uma carta da sua mão
Cartas de Ação:
Siga as instruções na carta
 https://github.com/abiliogp/bddBancoExemplo/
 https://sukesh15.gitbooks.io/cucumber-jvm-test-framework-
/content/index.html
 Dúvidas?
 Abilio Gambim Parada - abiliop@dbserver.com.br
 Gabriel Moreira Carlos - gabrielc@dbserver.com.br

Introdução ao BDD com BDD Warriors

  • 1.
  • 2.
     Técnica paraimplementar uma aplicação através da descrição do seu comportamento do ponto de vista dos stakeholders  Iniciou a partir do TDD: como saber o que testar?  Evolução: foco na comunicação entre as pessoas  Usos:  Análise: levantamento de requisitos  Desenvolvimento: guia de implementação  Testes: automação/testes de regressão
  • 3.
    Funcionalidade: <Título> Eu, comoum <papel>, Quero <funcionalidade> Para que <benefício> Cenário: <Título do Cenário> Dado que...  Setup do cenário E que .... Quando ...  Evento que estou descrevendo Então... deve...  Resultado(s) esperado(s) E... deve...
  • 4.
    Funcionalidade: US001_Cobrança Eu, comofuncionário do setor Financeiro, Quero gerar a cobrança anual Para que possamos receber o valor devido Critérios de aceitação: O sistema deve gerar parcelas a partir do valor para o ano atual Deve ser possível realizar desconto por categoria
  • 5.
    Contexto: Dado que ovalor anual para 2016 é 100,00 Cenário: US001_Deve gerar cobranças Dado um cliente com categoria “Efetivo” Quando gerar a cobrança anual Então devem ser criadas as seguintes parcelas a pagar | Valor | Exercício | | 50,00| Jan/2016 | | 50,00| Jul/2016 | Cenário: US001_Deve gerar cobrança com desconto Dado um cliente com categoria “Aposentado” E a categoria “Aposentado” tem desconto de 90,00 Quando gerar a cobrança anual Então devem ser criadas as seguintes parcelas a pagar | Valor | Exercício | | 10,00| Jan/2016 |
  • 6.
     Aproximar aárea técnica da área de negócios através de • Linguagem ubíqua • Criação colaborativa de cenários: Três amigos, Example Mapping • Entendimento compartilhado  Esclarecer cenários complexos de forma sucinta através de exemplos  Fornecer um guia de testes para o desenvolvedor  Documentação viva com uso de automação ▪ Testes quebram ao alterar a especificação ▪ Especificação quebra ao alterar a aplicação
  • 7.
     Jogo decartas print&play disponível em https://bddwarriors.wordpress.com/  Objetivos:  Ajudar na popularização do BDD  Fixar a estrutura básica da sintaxe  Prevenir o apocalipse zumbi  Demonstrar a construção conjunta de cenários
  • 8.
     Dois aseis jogadores  Cada um recebe cinco cartas e uma pilha de fichas para identificação  Quem viu filme de Ficção Científica, Fantasia ou Terror mais recentemente começa o jogo
  • 9.
    Abilio Gabriel Ana 1 pt Então ____deve se transformar em ______ (Jogador pode começar por qualquer cláusula)
  • 10.
    Abilio Gabriel Ana 1 pt Então ____deve se transformar em ______ 2 pts Quando ____________ (Jogador pode continuar o cenário ou criar um novo)
  • 11.
    Abilio Gabriel Ana 1 pt Então ____deve se transformar em ______ 1 pt Dado um vampiro ____________ 2 pts Quando ____________ (Jogador deve ler o cenário completando os espaços)
  • 12.
    Abilio Gabriel Ana 1 pt Então ____deve se transformar em ______ 1 pt Dado um vampiro ____________ 2 pts Quando ____________ Abilio: 1 ponto (carta) + 2 pontos (completar cenário) Gabriel: 2 pontos (carta) Ana: 1 ponto (carta)
  • 13.
    3 pts ____ sorvete____________ Cartas Coringa: Somente pode ser jogada ao completar um cenário! Cenário: Comprar duas cartas Dado que é a sua vez Quando jogar essa carta Então compre duas cartas e descarte qualquer uma carta da sua mão Cartas de Ação: Siga as instruções na carta
  • 14.
     https://github.com/abiliogp/bddBancoExemplo/  https://sukesh15.gitbooks.io/cucumber-jvm-test-framework- /content/index.html Dúvidas?  Abilio Gambim Parada - abiliop@dbserver.com.br  Gabriel Moreira Carlos - gabrielc@dbserver.com.br