14
Introdução ao BDD Ana Carolina Hermann [email protected]

Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

Introdução ao BDD

Ana Carolina [email protected]

Page 2: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

Behaviour-Driven Development: Origens

• Dan North (“Introducing BDD”, 2003-2006)

• A partir de dúvidas que se repetiam sobre TDD...• O que testar• O quanto testar• Como saber o que falhou

... se chegou em uma técnica para implementar uma aplicação através da descrição do seu comportamento do ponto de vista dos stakeholders

Page 3: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

Vantagens

• Aproximar a área técnica da área de negócios através de• Linguagem ubíqua• Criação colaborativa de cenários

• Esclarecer cenários complexos de forma sucinta através de exemplos

• Fornecer um guia de testes para o desenvolvedor

• Eliminar documentação desnecessária

Page 4: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

Vantagens

• Automação de cenários com Cucumber/SpecFlow/Jbehave

• Testes de regressão

• Rastreabilidade

• Documentação viva • Testes quebram ao alterar a documentação

• Reutilização na criação de cenários

Page 5: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

Lições Aprendidas

• Colaboração!

• Treinar a equipe

• Alinhamento para entender Automação• O quanto testar• Ordem de eventos, etc.

• Depois que você sai do básico, não existe padrão

• Melhoria contínua!

Page 6: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

BDD – Estrutura Básica

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árioQuando ... Evento que estou testandoEntão... deve... Resultado esperado

Page 7: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

Exemplo

Funcionalidade: Controle de acessoEu, como uma general rebelde, Quero ocultar os planos da rebeliãoPara que eles não caiam em mãos erradas

Cenário: Planos devem estar protegidos por senhaDado que R2D2 tem os planos da rebeliãoQuando alguém tentar acessá-losEntão R2D2 deve pedir a senha de acesso

Page 8: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

BDD – Contexto e ParâmetrosContexto: Dado que R2D2 tem os planos da rebeliãoE que um usuário está tentando acessá-los

Cenário: Usuários autorizados devem acessar os planosDado que R2D2 solicitou a senha de acessoQuando a senha correta for informadaEntão R2D2 deve responder "Beep! Beep!"E deve apresentar o holograma com os planos

Cenário: Usuários não autorizados devem ser punidosDado que R2D2 solicitou a senha de acessoQuando a senha incorreta for informadaEntão R2D2 deve responder "Beep beep! Beeeeeep! Beep!"E deve acertar o usuário com um choque de "0.001" ampE não deve apresentar o holograma com os planos

Page 9: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

BDD – Múltiplos testes com um cenário

Contexto: Dado que R2D2 tem os planos da rebelião

Esquema de Cenário: Usuários não autorizados devem ser punidosDado que um usuário do <TIPO> quer acessar os planosE que a senha de acesso foi solicitadaQuando a senha incorreta for informadaEntão R2D2 deve responder <MENSAGEM>E deve acertar o usuário com um choque de <QTD> amp

Exemplos: | TIPO | QTD | MENSAGEM || Contrabandista | 0.01 | Beep || Stormtrooper | 0.1 | Beep Beeeep || Lorde dos Sith | 0.2 | BEEEP BEEEP BEEP BEEEEP |

Page 10: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados
Page 11: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

BDD Warriors - Cartas de cláusulas

Jogadora 1

Jogadora 2

1 ptEntão ____________

Jogadora 3

Page 12: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

BDD Warriors - Cartas de cláusulas

1 ptDado um ____________

Jogadora 1

Jogadora 2

1 ptEntão ____________

Jogadora 3

Page 13: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

BDD Warriors - Cartas de cláusulas

1 ptDado um ____________

Jogadora 1

1 ptQuando ____________

Jogadora 2

1 ptEntão ____________

Jogadora 3

Placar:1 pt (carta)1 pt (carta) + 2 pts (cenário)1 pt (carta)

Page 14: Introdução ao BDD - DBServer · 2018-06-19 · BDD –Múltiplos testes com um cenário Contexto: Dado que R2D2 tem os planos da rebelião Esquema de Cenário: Usuários não autorizados

BDD Warriors – Cartas especiais

3 pt____ tubarão ____________

Cartas Coringas:

Somente pode ser jogada para fechar um cenário!

Trocar uma carta com alguém

Cartas de ação

Leia as instruções na carta