SlideShare uma empresa Scribd logo
1 de 36
Ana Carolina Hermann
anah@dbserver.com.br
 Parte I
 Introdução
 Sintaxe básica
 Vantagens
 Dinâmica: BDD Warriors
 Fechamento
 Parte II
 Dinâmica: Example Mapping
 Formas de uso
 Automação
 Sintaxe avançada
 Dinâmica: Escrita de Cenários
 Lições aprendidas
 Fechamento
 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… tenho uma situação inicial
Quando ... ocorre um evento
Então… deve... acontecer o resultado esperado
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
Cenário: Deve gerar cobrança
Dado que o valor anual é 100,00
Quando gerar a cobrança anual
Então deve ser criada uma parcela de 50,00 para janeiro
E deve ser criada uma parcela de 50,00 para julho
Cenário: Deve gerar cobrança com desconto
Dado uma categoria com desconto de 90,00
E que o valor anual é 100,00
Quando gerar a cobrança anual
Então deve ser criada uma parcela de 10,00 para janeiro
 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
 Focar no que agrega valor
 Fornecer um guia de testes para o desenvolvedor
 Documentação viva com uso de automação
 Jogo de cartas print&play disponível sob
Creative Commons 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
 Pontos são somados ao completar cenários. Quem
tiver mais pontos ganha o jogo
Alessandra
Gabriel
Ana
1 pt
Então ____ deve se transformar em ______
(Jogador pode começar por qualquer cláusula)
Alessandra
Gabriel
Ana
1 pt
Então ____ deve se transformar em ______
2 pts
Quando ____________
(Jogador pode continuar o cenário ou criar um
novo)
Alessandra
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)
Alessandra
Gabriel
Ana
1 pt
Então ____ deve se transformar em ______
1 pt
Dado um vampiro ____________
2 pts
Quando ____________
Alessandra:
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
 PRÁTICA!
 Perguntas?
 Técnica para estruturar a conversa em torno de uma
estória
 3 Amigos – Negócios, Teste, Desenvolvimento
Estória
Regra
Exemplo
Pergunta
Sacar dinheiro da
conta
Cliente normal não
pode sacar mais
que o saldo
Saque maior que o
saldo
Limite de conta
especial é fixo?
Cliente especial
pode atingir o
limite
Saque igual ou
menor ao saldo
Deve imprimir
comprovante
Limite 100
Saldo 10
Saque 110 -> OK
Limite 100
Saldo 10
Saque 120 -> NOK
 PRÁTICA!
Alunos e funcionários pagam por acesso.
Visitantes pagam por hora, até 2 horas é um valor, depois
cobra hora adicional até um limite de 31 reais.
A pessoa passa o ticket ou crachá na saída do
estacionamento.
 Entendimento compartilhado
 Captura das informações da conversa
 Interativo
 Simplicidade: sem sintaxe Gherkin e sem detalhes de
implementação
 Visualização do estado da estória
 Muitos post-its rosas – muita incerteza para começar?
 Muitos post-its azuis – estória grande demais?
 Muitos post-its verdes por regra – regra abrangente demais?
Discovery Formalização
Testes de Aceitação
TDD
Software em
Produção
Funcionalidade: US001_Gerar Cobrança
Eu, como funcionário do setor Financeiro,
Quero gerar a cobrança anual
Para que possamos receber o valor devido
Cenário: US001_Gerar cobrança normal
Dado…
…
Cenário: US001_Gerar cobrança com
desconto
Dado…
….
Funcionalidade: US002_Consultar Cobrança
Eu, como funcionário do setor Financeiro,
Quero consultar a cobrança
Para saber o que está em aberto
Cenário: US002_Consultar por período
Dado…
…
Cenário: US002_Consultar por situação
Dado…
….
Arquivo .feature por estória com
múltiplos cenários
Outros documentos:
protótipo de interface, padrão de sistema
 BDD não gera documentação extensiva
 Detalhar os cenários importantes/diferentes
 BDD/Automação não substitui testes
 Estilo imperativo x Estilo declarativo
 Como x para quê
 Detalhado x resumido
…
E informei dados do funcionário
Quando salvar o funcionário
…
…
E preenchi nome “Ana”
E preenchi sobrenome “Hermann”
E selecionei a profissão “Dev.”
Quando cliquei no botão “Salvar”
…
 Pode haver BDD sem automação!
 Ferramentas: Cucumber/SpecFlow/etc.
 Exige mais tempo e conhecimento técnico da equipe
 Vantagens:
• Testes de regressão
• Documentação viva
▪ Testes quebram ao alterar a especificação
▪ Especificação quebra ao alterar a aplicação
 Tela
 Maior tempo de execução
▪ Pirâmide de testes!
 Regras mais importantes
 Interface precisa estar estável
 Serviço
 Maior cobertura
 Regras de negócio
 Guia o desenvolvimento
▪ Testes de regressão = bônus!
UI
Serviço
Unitários
 Contexto
 Passos em comum que acontecem antes de cada cenário
 Parâmetros
 Permite reutilização na automação
 Tabelas como parâmetros
 Forma de estruturar dados quando há vários parâmetros
 Esquema do Cenário
 Repete o mesmo cenário com valores diferentes
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 |
Contexto:
Dado que o valor anual para 2016 é 100,00
Esquema do Cenário: US001_Deve gerar exercício para o mês
seguinte
Dado um cliente com categoria “Aposentado” com desconto de 90,00
E a data atual é <DataAtual>
Quando gerar a cobrança anual
Então deve ser criada uma parcela com valor 10,00 para o
<Exercício>
Exemplos:
| DataAtual | Exercício |
| 23/10/2016 | 11/2016 |
| 23/12/2016 | 01/2017 |
 Cenários mais importantes primeiro
 Título do cenário deve ser único e diferenciável dos demais
 Uma regra por cenário
 O quê em vez de como - sem detalhes de implementação ou
interface
 Evitar misturar domínios
 Usar linguagem ubíqua
 Refatorar!
 PRÁTICA!
• Colaboração!
• Treinar a equipe
• Alinhamento para entender automação
• Depois que você sai do básico, não existe padrão
• Melhoria contínua!
 Perguntas?
 Links para recursos sobre BDD e jogos:
https://bddwarriors.wordpress.com/recursos/

Mais conteúdo relacionado

Mais procurados

Não há agile sem práticas ágeis
Não há agile sem práticas ágeisNão há agile sem práticas ágeis
Não há agile sem práticas ágeisMarco Baccaro
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword drivenQualister
 
[MTC 2021] QAs que não codificam e seus 12% de vagas - Paulo César de Oliveira
[MTC 2021] QAs que não codificam e seus 12% de vagas - Paulo César de Oliveira[MTC 2021] QAs que não codificam e seus 12% de vagas - Paulo César de Oliveira
[MTC 2021] QAs que não codificam e seus 12% de vagas - Paulo César de Oliveiraminastestingconference
 
[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de TestesGUTS-RS
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeterEdlaine Zamora
 
Introdução a BDD
Introdução a BDDIntrodução a BDD
Introdução a BDDIsmael
 
Falha ao conectar a um serviço do windows
Falha ao conectar a um serviço do windowsFalha ao conectar a um serviço do windows
Falha ao conectar a um serviço do windowsjcis_udo
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimElias Nogueira
 

Mais procurados (8)

Não há agile sem práticas ágeis
Não há agile sem práticas ágeisNão há agile sem práticas ágeis
Não há agile sem práticas ágeis
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword driven
 
[MTC 2021] QAs que não codificam e seus 12% de vagas - Paulo César de Oliveira
[MTC 2021] QAs que não codificam e seus 12% de vagas - Paulo César de Oliveira[MTC 2021] QAs que não codificam e seus 12% de vagas - Paulo César de Oliveira
[MTC 2021] QAs que não codificam e seus 12% de vagas - Paulo César de Oliveira
 
[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeter
 
Introdução a BDD
Introdução a BDDIntrodução a BDD
Introdução a BDD
 
Falha ao conectar a um serviço do windows
Falha ao conectar a um serviço do windowsFalha ao conectar a um serviço do windows
Falha ao conectar a um serviço do windows
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fim
 

Semelhante a [GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development

Workshop de Introdução ao BDD
Workshop de Introdução ao BDDWorkshop de Introdução ao BDD
Workshop de Introdução ao BDDinovacaoDBServer
 
Introdução ao BDD com BDD Warriors
Introdução ao BDD com BDD WarriorsIntrodução ao BDD com BDD Warriors
Introdução ao BDD com BDD WarriorsinovacaoDBServer
 
QArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoQArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoJosé Correia
 
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...Fabiano Milani
 
TDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX DesignTDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX Designtdc-globalcode
 
O Raio-X de um Projeto Ágil: Erros e Acertos no Desenvolvimento de uma Plataf...
O Raio-X de um Projeto Ágil: Erros e Acertos no Desenvolvimento de uma Plataf...O Raio-X de um Projeto Ágil: Erros e Acertos no Desenvolvimento de uma Plataf...
O Raio-X de um Projeto Ágil: Erros e Acertos no Desenvolvimento de uma Plataf...Rodrigo Veiga
 
Chat GPT para Pessoas de Produto.pptx
Chat GPT para Pessoas de Produto.pptxChat GPT para Pessoas de Produto.pptx
Chat GPT para Pessoas de Produto.pptxAnderson Diniz Hummel
 
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alemTDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alemtdc-globalcode
 
Dark Waves Pitch Deck modelo de presentacion power point
Dark Waves Pitch Deck modelo de presentacion power pointDark Waves Pitch Deck modelo de presentacion power point
Dark Waves Pitch Deck modelo de presentacion power pointccoldlife1
 
Introduction to finance management - in Portuguese
Introduction to finance management - in PortugueseIntroduction to finance management - in Portuguese
Introduction to finance management - in Portugueseferguardia
 
Atividades - Palestra de Vendas
Atividades - Palestra de VendasAtividades - Palestra de Vendas
Atividades - Palestra de VendasLuis Sciena
 
Gostar de métricas é melhor do que não gostar de métricas
Gostar de métricas é melhor do que não gostar de métricasGostar de métricas é melhor do que não gostar de métricas
Gostar de métricas é melhor do que não gostar de métricasWill Sertório
 
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SPBernardo Srulzon
 

Semelhante a [GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development (20)

Workshop de Introdução ao BDD
Workshop de Introdução ao BDDWorkshop de Introdução ao BDD
Workshop de Introdução ao BDD
 
Introdução ao BDD com BDD Warriors
Introdução ao BDD com BDD WarriorsIntrodução ao BDD com BDD Warriors
Introdução ao BDD com BDD Warriors
 
QArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoQArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio Araújo
 
casos de uso
casos de usocasos de uso
casos de uso
 
User Stories -
User Stories - User Stories -
User Stories -
 
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
 
TDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX DesignTDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX Design
 
User stories
User storiesUser stories
User stories
 
O Raio-X de um Projeto Ágil: Erros e Acertos no Desenvolvimento de uma Plataf...
O Raio-X de um Projeto Ágil: Erros e Acertos no Desenvolvimento de uma Plataf...O Raio-X de um Projeto Ágil: Erros e Acertos no Desenvolvimento de uma Plataf...
O Raio-X de um Projeto Ágil: Erros e Acertos no Desenvolvimento de uma Plataf...
 
Arvore de decisao na gestao de projetos quando como e porque utilizar
Arvore de decisao na gestao de projetos   quando como e porque utilizarArvore de decisao na gestao de projetos   quando como e porque utilizar
Arvore de decisao na gestao de projetos quando como e porque utilizar
 
Chat GPT para Pessoas de Produto.pptx
Chat GPT para Pessoas de Produto.pptxChat GPT para Pessoas de Produto.pptx
Chat GPT para Pessoas de Produto.pptx
 
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alemTDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
 
Dark Waves Pitch Deck modelo de presentacion power point
Dark Waves Pitch Deck modelo de presentacion power pointDark Waves Pitch Deck modelo de presentacion power point
Dark Waves Pitch Deck modelo de presentacion power point
 
Introduction to finance management - in Portuguese
Introduction to finance management - in PortugueseIntroduction to finance management - in Portuguese
Introduction to finance management - in Portuguese
 
Curso hp12 c_u2
Curso hp12 c_u2Curso hp12 c_u2
Curso hp12 c_u2
 
Atividades - Palestra de Vendas
Atividades - Palestra de VendasAtividades - Palestra de Vendas
Atividades - Palestra de Vendas
 
Gostar de métricas é melhor do que não gostar de métricas
Gostar de métricas é melhor do que não gostar de métricasGostar de métricas é melhor do que não gostar de métricas
Gostar de métricas é melhor do que não gostar de métricas
 
Aula 4
Aula 4Aula 4
Aula 4
 
Back Log User Stories
Back Log User StoriesBack Log User Stories
Back Log User Stories
 
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
 

Mais de GUTS-RS

[GUTS-RS] Testes de Performance
 [GUTS-RS] Testes de Performance [GUTS-RS] Testes de Performance
[GUTS-RS] Testes de PerformanceGUTS-RS
 
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejarGUTS-RS
 
Evento novembro 2018 - Desafios do QA - Da automação ao Ágil
Evento novembro 2018 - Desafios do QA - Da automação ao ÁgilEvento novembro 2018 - Desafios do QA - Da automação ao Ágil
Evento novembro 2018 - Desafios do QA - Da automação ao ÁgilGUTS-RS
 
Evento setembro 2018 - Criando comunidades de prática na organização
Evento setembro 2018 - Criando comunidades de prática na organizaçãoEvento setembro 2018 - Criando comunidades de prática na organização
Evento setembro 2018 - Criando comunidades de prática na organizaçãoGUTS-RS
 
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOSGUTS-RS
 
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAPGUTS-RS
 
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de TestesGUTS-RS
 
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testesGUTS-RS
 
GUTS Talks Março 2018
GUTS Talks Março 2018GUTS Talks Março 2018
GUTS Talks Março 2018GUTS-RS
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de TestesGUTS-RS
 
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...GUTS-RS
 
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...GUTS-RS
 
[GUTS-RS] GUTS Talks - Soft Skills
[GUTS-RS] GUTS Talks - Soft Skills[GUTS-RS] GUTS Talks - Soft Skills
[GUTS-RS] GUTS Talks - Soft SkillsGUTS-RS
 
[GUTS-RS] Test Thinking
[GUTS-RS] Test Thinking[GUTS-RS] Test Thinking
[GUTS-RS] Test ThinkingGUTS-RS
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...GUTS-RS
 
[GUTS-RS] Mobile Testing
[GUTS-RS] Mobile Testing[GUTS-RS] Mobile Testing
[GUTS-RS] Mobile TestingGUTS-RS
 
[GUTS-RS] Testar Interfaces com UX
[GUTS-RS] Testar Interfaces com UX[GUTS-RS] Testar Interfaces com UX
[GUTS-RS] Testar Interfaces com UXGUTS-RS
 
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
[GUTS-RS] GUTS Talks - Ferramentas de Automação de TestesGUTS-RS
 
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...GUTS-RS
 
[GUTS-RS] DevOps pela visão de QA
[GUTS-RS] DevOps pela visão de QA[GUTS-RS] DevOps pela visão de QA
[GUTS-RS] DevOps pela visão de QAGUTS-RS
 

Mais de GUTS-RS (20)

[GUTS-RS] Testes de Performance
 [GUTS-RS] Testes de Performance [GUTS-RS] Testes de Performance
[GUTS-RS] Testes de Performance
 
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 
Evento novembro 2018 - Desafios do QA - Da automação ao Ágil
Evento novembro 2018 - Desafios do QA - Da automação ao ÁgilEvento novembro 2018 - Desafios do QA - Da automação ao Ágil
Evento novembro 2018 - Desafios do QA - Da automação ao Ágil
 
Evento setembro 2018 - Criando comunidades de prática na organização
Evento setembro 2018 - Criando comunidades de prática na organizaçãoEvento setembro 2018 - Criando comunidades de prática na organização
Evento setembro 2018 - Criando comunidades de prática na organização
 
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
 
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
 
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
 
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
 
GUTS Talks Março 2018
GUTS Talks Março 2018GUTS Talks Março 2018
GUTS Talks Março 2018
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes
 
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
 
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
 
[GUTS-RS] GUTS Talks - Soft Skills
[GUTS-RS] GUTS Talks - Soft Skills[GUTS-RS] GUTS Talks - Soft Skills
[GUTS-RS] GUTS Talks - Soft Skills
 
[GUTS-RS] Test Thinking
[GUTS-RS] Test Thinking[GUTS-RS] Test Thinking
[GUTS-RS] Test Thinking
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
 
[GUTS-RS] Mobile Testing
[GUTS-RS] Mobile Testing[GUTS-RS] Mobile Testing
[GUTS-RS] Mobile Testing
 
[GUTS-RS] Testar Interfaces com UX
[GUTS-RS] Testar Interfaces com UX[GUTS-RS] Testar Interfaces com UX
[GUTS-RS] Testar Interfaces com UX
 
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
 
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
 
[GUTS-RS] DevOps pela visão de QA
[GUTS-RS] DevOps pela visão de QA[GUTS-RS] DevOps pela visão de QA
[GUTS-RS] DevOps pela visão de QA
 

[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development

  • 2.  Parte I  Introdução  Sintaxe básica  Vantagens  Dinâmica: BDD Warriors  Fechamento  Parte II  Dinâmica: Example Mapping  Formas de uso  Automação  Sintaxe avançada  Dinâmica: Escrita de Cenários  Lições aprendidas  Fechamento
  • 3.  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
  • 4. Funcionalidade: <Título> Eu, como um <papel>, Quero <funcionalidade> Para que <benefício> Cenário: <Título do Cenário> Dado que… tenho uma situação inicial Quando ... ocorre um evento Então… deve... acontecer o resultado esperado
  • 5. 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
  • 6. Cenário: Deve gerar cobrança Dado que o valor anual é 100,00 Quando gerar a cobrança anual Então deve ser criada uma parcela de 50,00 para janeiro E deve ser criada uma parcela de 50,00 para julho Cenário: Deve gerar cobrança com desconto Dado uma categoria com desconto de 90,00 E que o valor anual é 100,00 Quando gerar a cobrança anual Então deve ser criada uma parcela de 10,00 para janeiro
  • 7.  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  Focar no que agrega valor  Fornecer um guia de testes para o desenvolvedor  Documentação viva com uso de automação
  • 8.  Jogo de cartas print&play disponível sob Creative Commons 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
  • 9.  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  Pontos são somados ao completar cenários. Quem tiver mais pontos ganha o jogo
  • 10. Alessandra Gabriel Ana 1 pt Então ____ deve se transformar em ______ (Jogador pode começar por qualquer cláusula)
  • 11. Alessandra Gabriel Ana 1 pt Então ____ deve se transformar em ______ 2 pts Quando ____________ (Jogador pode continuar o cenário ou criar um novo)
  • 12. Alessandra 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)
  • 13. Alessandra Gabriel Ana 1 pt Então ____ deve se transformar em ______ 1 pt Dado um vampiro ____________ 2 pts Quando ____________ Alessandra: 1 ponto (carta) + 2 pontos (completar cenário) Gabriel: 2 pontos (carta) Ana: 1 ponto (carta)
  • 14. 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
  • 17.  Técnica para estruturar a conversa em torno de uma estória  3 Amigos – Negócios, Teste, Desenvolvimento Estória Regra Exemplo Pergunta
  • 18. Sacar dinheiro da conta Cliente normal não pode sacar mais que o saldo Saque maior que o saldo Limite de conta especial é fixo? Cliente especial pode atingir o limite Saque igual ou menor ao saldo Deve imprimir comprovante Limite 100 Saldo 10 Saque 110 -> OK Limite 100 Saldo 10 Saque 120 -> NOK
  • 19.  PRÁTICA! Alunos e funcionários pagam por acesso. Visitantes pagam por hora, até 2 horas é um valor, depois cobra hora adicional até um limite de 31 reais. A pessoa passa o ticket ou crachá na saída do estacionamento.
  • 20.  Entendimento compartilhado  Captura das informações da conversa  Interativo  Simplicidade: sem sintaxe Gherkin e sem detalhes de implementação  Visualização do estado da estória  Muitos post-its rosas – muita incerteza para começar?  Muitos post-its azuis – estória grande demais?  Muitos post-its verdes por regra – regra abrangente demais?
  • 21. Discovery Formalização Testes de Aceitação TDD Software em Produção
  • 22. Funcionalidade: US001_Gerar Cobrança Eu, como funcionário do setor Financeiro, Quero gerar a cobrança anual Para que possamos receber o valor devido Cenário: US001_Gerar cobrança normal Dado… … Cenário: US001_Gerar cobrança com desconto Dado… …. Funcionalidade: US002_Consultar Cobrança Eu, como funcionário do setor Financeiro, Quero consultar a cobrança Para saber o que está em aberto Cenário: US002_Consultar por período Dado… … Cenário: US002_Consultar por situação Dado… …. Arquivo .feature por estória com múltiplos cenários Outros documentos: protótipo de interface, padrão de sistema
  • 23.  BDD não gera documentação extensiva  Detalhar os cenários importantes/diferentes  BDD/Automação não substitui testes  Estilo imperativo x Estilo declarativo  Como x para quê  Detalhado x resumido … E informei dados do funcionário Quando salvar o funcionário … … E preenchi nome “Ana” E preenchi sobrenome “Hermann” E selecionei a profissão “Dev.” Quando cliquei no botão “Salvar” …
  • 24.  Pode haver BDD sem automação!  Ferramentas: Cucumber/SpecFlow/etc.  Exige mais tempo e conhecimento técnico da equipe  Vantagens: • Testes de regressão • Documentação viva ▪ Testes quebram ao alterar a especificação ▪ Especificação quebra ao alterar a aplicação
  • 25.
  • 26.
  • 27.
  • 28.  Tela  Maior tempo de execução ▪ Pirâmide de testes!  Regras mais importantes  Interface precisa estar estável  Serviço  Maior cobertura  Regras de negócio  Guia o desenvolvimento ▪ Testes de regressão = bônus! UI Serviço Unitários
  • 29.  Contexto  Passos em comum que acontecem antes de cada cenário  Parâmetros  Permite reutilização na automação  Tabelas como parâmetros  Forma de estruturar dados quando há vários parâmetros  Esquema do Cenário  Repete o mesmo cenário com valores diferentes
  • 30. 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 |
  • 31. Contexto: Dado que o valor anual para 2016 é 100,00 Esquema do Cenário: US001_Deve gerar exercício para o mês seguinte Dado um cliente com categoria “Aposentado” com desconto de 90,00 E a data atual é <DataAtual> Quando gerar a cobrança anual Então deve ser criada uma parcela com valor 10,00 para o <Exercício> Exemplos: | DataAtual | Exercício | | 23/10/2016 | 11/2016 | | 23/12/2016 | 01/2017 |
  • 32.  Cenários mais importantes primeiro  Título do cenário deve ser único e diferenciável dos demais  Uma regra por cenário  O quê em vez de como - sem detalhes de implementação ou interface  Evitar misturar domínios  Usar linguagem ubíqua  Refatorar!
  • 34. • Colaboração! • Treinar a equipe • Alinhamento para entender automação • Depois que você sai do básico, não existe padrão • Melhoria contínua!
  • 36.  Links para recursos sobre BDD e jogos: https://bddwarriors.wordpress.com/recursos/

Notas do Editor

  1. Limitar o jogo em 12 pontos devido ao tempo.