SlideShare uma empresa Scribd logo
1 de 38
Agosto de 2018
Paulo Júnior
•Graduado em Análises e Desenvolvimento de
Sistema e Especializado em Teste de Software
•Trabalho com análises e automação de testes
na Visual Sistemas
•Paraense, gosto de cozinhar, dançar forró,
adoro uma picanha, mas não sou muito fã de
cerveja.
Quem sou eu?
Como descrever cenários de teste
utilizando Gherkin de forma correta
•Gherkin •BDD • CUCUMBER
Gherkin
•É uma linguagem que foi criada especialmente
para descrições de comportamento, ela tem a
capacidade de remover detalhes da lógica de
programação e focar no comportamento que
uma funcionalidade deve ter.
Gherkin
•A sua documentação deve ser entendida por
todos os integrantes
•Foco no negócio, ou seja, toda e qualquer
particularidade de implementação deve ser
deixada de lado e não deve entrar na
especificação.
BDD
(Behavior Driven Development)
Desenvolvimento Guiado por Comportamento
é uma técnica de desenvolvimento ágil que
encoraja a colaboração entre desenvolvedores,
setores de qualidade e pessoas de negócios em
um projeto de software.
BDD
(Behavior Driven Development)
Tal técnica permite uma melhor
comunicação entre todas as pessoas
técnicas e não técnicas envolvidas,
durante um projeto de software.
BDD
(Behavior Driven Development)
“Gojko Adzic deu ao BDD um novo e
melhor nome: Specification by Example”
(Aslak Hellesøy)
Erros ao falar de BDD
•BDD é uma abordagem só para testes
(BDT)
•Eu automatizo em BDD
•BDD é automação
•Vou salvar minha automação com BDD
Desvantagens em usar BDD
•Quando implementado em sistema muito
antigo, pode ser custoso
•Se não escrever uma boa especificação, o
seu teste fica ruim
CUCUMBER
É uma ferramenta de colaboração que
suporta o BDD.
CUCUMBER
Suporta Gherkin para descrever o
comportamento do negócio em uma
linguagem natural.
CUCUMBER
Cria uma ponte entre o Software
desenvolvido e automação de testes
através das chamadas “Especificações
executáveis”.
Ideia por trás do CUCUMBER
“Combinar testes de aceitação automatizados,
requisitos funcionais e documentação de
software em um formato compreensível por
pessoas não técnicas, bem como ferramentas de
teste.”
Fonte: https://cucumber.io/blog/2014/03/03/the-worlds-most-misunderstood-
collaboration-tool
(Aslak Hellesøy)
A ferramenta de colaboração mais
incompreendida do mundo
“Fico feliz em ter criado uma ferramenta
tão popular, mas entristecido ao ver
como ela é mal utilizada e mal
entendida.”
Fonte: https://cucumber.io/blog/2014/03/03/the-worlds-most-misunderstood-
collaboration-tool
(Aslak Hellesøy)
Gherkin x BDD x CUCUMBER
“Não é só baixar o plugin e automatizar, existe
um processo é este processo se chama BDD.”
Fonte: https://cucumber.io/blog/2014/03/03/the-worlds-most-misunderstood-
collaboration-tool
(Aslak Hellesøy)
Gherkin com CUCUMBER
Dado... (Given)
Quando... (When)
Então... (Then)
E... (And)
Mas... (But)
Gherkin com CUCUMBER
Dado que está chovendo
Quando andar na rua
Então a camisa fica molhada
Gherkin com CUCUMBER
Dado que está chovendo
Quando andar na rua
Então a camisa fica molhada
Gherkin com CUCUMBER
Dado que está chovendo
Quando andar na rua
Então a camisa fica molhada
Gherkin com CUCUMBER
Dado que está chovendo
Quando andar na rua
Então a camisa fica molhada
#Para finalizar a especificação Gherkin,
eu preciso de um resultado esperado.
Dica: Reaproveitar sentenças
Dado que está chovendo e estou sem
guarda-chuva
#Separar a sentença para reaproveitá-las
Dica: Reaproveitar sentenças
Dado que está chovendo
E estou sem guarda-chuva
#Separar a sentença para reaproveitá-las
Dica: Especificar o que for
relevante
Dado que está chovendo
E está de noite
Quando andar na rua
Então a camisa fica molhada
#O fato de está de noite não tem
relevância no resultado do meu teste
Dica: Para quem já automatiza
Tentar deixar os cenários mais independentes
possíveis
Cenário 1
Cenário 2
Cenário 3
Dica: Para quem já automatiza
Tentar deixar os cenários mais independentes
possíveis
Cenário 1
Cenário 2
Cenário 3
Se o primeiro falhou, a dependência
está condenada a falhar.
Erros ao especificar com Gherkin
Dado que eu preencho o campo nome
E preencho o campo senha
Quando clico no botão Entrar
Então vejo a tela principal
#A especificação foca no que DEVE SER FEITO,
e NÃO em COMO DEVE SER FEITO
Como deveria ser
Dado que eu tenho o usuário e a senha válidos
Quando faço login
Então vejo a mensagem “Seja bem vindo”
Funcionalidade Controla Salgados
# language: pt
Funcionalidade: Controla Salgados
Tendo Salgados na mesa do Testing Dojo UAI, quero controlar
o número de salgados, para que não falte e os lutadores
não fiquem com fome
Cenário: Decrementa número de salgados
Dado que estou na plateia
E vou até a mesa
E na mesa tem 10 salgados
Quando eu como 2 salgados
Então na mesa restam 8 salgados
# language: pt
Funcionalidade: Controla Salgados
Tendo Salgados na mesa do Testing Dojo UAI, quero controlar o número de
salgados, para que não falte e os lutadores não fiquem com fome
Cenário: Decrementa 2 de salgados
Dado que estou na plateia
E vou até a mesa
E na mesa tem 10 salgados
Quando eu como 2 salgados
Então na mesa restam 8 salgados
Cenário: Decrementa 5 de salgados
Dado que estou na plateia
E vou até a mesa
E na mesa tem 20 salgados
Quando eu como 5 salgados
Então na mesa restam 15 salgados
Cenário: Decrementa 8 de salgados
Dado que estou na plateia
E vou até a mesa
E na mesa tem 30 salgados
Quando eu como 8 salgados
Então na mesa restam 22 salgados
Cenário: Decrementa 4 de salgados
Dado que estou na plateia
E vou até a mesa
E na mesa tem 50 salgados
Quando eu como 4 salgados
Então na mesa restam 46 salgados
Cenário: Decrementa 7 de salgados
Dado que estou na plateia
E vou até a mesa
E na mesa tem 50 salgados
Quando eu como 7 salgados
Então na mesa restam 43 salgados
Cenário: Decrementa 18 de salgados
Dado que estou na plateia
E vou até a mesa
E na mesa tem 30 salgados
Quando eu como 18 salgados
Então na mesa restam 12 salgados
Cenário: Decrementa 14 de salgados
Dado que estou na plateia
E vou até a mesa
E na mesa tem 50 salgados
Quando eu como 14 salgados
Então na mesa restam 36 salgados
# language: pt
Funcionalidade: Controla Salgados
Tendo Salgados na mesa do Testing Dojo UAI, quero controlar o número de salgados, para que não falte e os lutadores não fiquem com fome
Contexto:
Dado que estou na plateia
E vou até a mesa
Cenário: Decrementa 2 de salgados
E na mesa tem 10 salgados
Quando eu como 2 salgados
Então na mesa restam 8 salgados
Cenário: Decrementa 5 de salgados
E na mesa tem 20 salgados
Quando eu como 5 salgado
Então na mesa restam 15 salgados
Cenário: Decrementa 8 de salgados
E na mesa tem 30 salgados
Quando eu como 8 salgado
Então na mesa restam 22 salgados
Cenário: Decrementa 4 de salgados
E na mesa tem 50 salgados
Quando eu como 4 salgado
Então na mesa restam 46 salgados
Cenário: Decrementa 7 de salgados
E na mesa tem 50 salgados
Quando eu como 7 salgados
Então na mesa restam 43 salgados
Cenário: Decrementa 18 de salgados
E na mesa tem 30 salgados
Quando eu como 18 salgados
Então na mesa restam 12 salgados
Cenário: Decrementa 14 de salgados
E na mesa tem 50 salgados
Quando eu como 14 salgados
Então na mesa restam 36 salgados
Contexto do Cenário
# language: pt
Funcionalidade: Controla Salgados
Tendo Salgados na mesa do Testing Dojo UAI, quero controlar o número
de salgados, para que não falte e os lutadores não fiquem com fome
Contexto:
Dado que estou na plateia
E vou até a mesa
Esquema do Cenário: Decrementa salgados
E na mesa tem <Inicial Salgados> salgados
Quando eu como <Salgados Comidos> salgados
Então na mesa restam <Resultado Salgados> salgados
Exemplos:
|Inicial Salgados |Salgados Comidos | Resultado Salgados|
| 10 | 1 | 9 |
| 20 | 5 | 15 |
| 30 | 8 | 22 |
| 50 | 4 | 46 |
| 50 | 7 | 43 |
| 30 | 18 | 12 |
| 50 | 14 | 36 |
Esquema do Cenário
Resultado após otimização
Antes Depois
Automação
Software
Desenvolvido
Especificação
Executável
Automação
Gherkin com CUCUMBER
# language: pt
Funcionalidade: Para descrever a narrativa de uma história;
Contexto: Para definições de pré-condições que se repetem para todos os cenários de uma história
(Background em inglês);
Cenário: Para definição de cenários que não possuem parâmetros (Scenario em inglês);
Esquema de cenário: Para definição de cenários que contém parâmetros (Scenario Outline em inglês);
Dado, Quando, Então, E, Mas: Para construção dos passos do cenário;
Exemplos: Tabela de massa de dados para execução dos cenários parametrizados. Onde: " "
(Delimitação de textos de múltiplas linhas), | (Separação de valores nas tabelas de massa de dados ou
exemplos) (Examples em inglês);
@ (Tags)
# (Comentário)
Referências
• https://www.devmedia.com.br/desenvolvimento-
orientado-por-comportamento-bdd/21127
• Cucumber e rspec (Hugo Baraúna)
• https://www.concrete.com.br/2016/05/25/o-que-e-
especificacao-por-exemplo/
• https://www.linkedin.com/pulse/gherkin-
comunica%C3%A7%C3%A3o-atrav%C3%A9s-de-um-
vocabul%C3%A1rio-e-o-marcus-vin%C3%ADcius
• https://cucumber.io/blog/2014/03/03/the-worlds-most-
misunderstood-collaboration-tool
• https://code.likeagirl.io/especifica%C3%A7%C3%A3o-por-
exemplo-e-qualidade-de-produto-4ff5b57a1674
• Specification By Example (Gojko Adzic)
Meus contatos
Nome: Paulo Santos Amaral Júnior
Linkedin: https://www.linkedin.com/in/paulosajunior
Github: https://github.com/paulosajunior
Quer palestrar? Entre em contato
Nome: Paulo Santos Amaral Júnior
Linkedin: https://www.linkedin.com/in/paulosajunior
Github: https://github.com/paulosajunior
Nome: Bruno Batista
Linkedin: https://www.linkedin.com/in/bruno-batista-87734464
Github: https://github.com/brunobatista25
Nome: Paulo Gonçalves
Linkedin:https://www.linkedin.com/in/paulo-goncalves
Github: https://github.com/paulogoncalvesBH

Mais conteúdo relacionado

Mais procurados

Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumSandy Maciel
 
BDD não é Automação de Testes
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de TestesElias Nogueira
 
Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de TesteElias Nogueira
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
O que Evitar na Escrita de Criterios de Aceite
O que Evitar na Escrita de Criterios de AceiteO que Evitar na Escrita de Criterios de Aceite
O que Evitar na Escrita de Criterios de AceiteElias Nogueira
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a pontaElias Nogueira
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilElias Nogueira
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de softwareQualister
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoElias Nogueira
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetesk6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no KubernetesKelvin Silva
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredElias Nogueira
 
Teste Tradicional e Teste Ágil: de que lado você esta?
Teste Tradicional e Teste Ágil: de que lado você esta?Teste Tradicional e Teste Ágil: de que lado você esta?
Teste Tradicional e Teste Ágil: de que lado você esta?Danilo Sousa
 

Mais procurados (20)

Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + selenium
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
BDD não é Automação de Testes
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de Testes
 
Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de Teste
 
Introdução ao design de teste de software
Introdução ao design de teste de softwareIntrodução ao design de teste de software
Introdução ao design de teste de software
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
O que Evitar na Escrita de Criterios de Aceite
O que Evitar na Escrita de Criterios de AceiteO que Evitar na Escrita de Criterios de Aceite
O que Evitar na Escrita de Criterios de Aceite
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a ponta
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de software
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetesk6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssured
 
Teste Tradicional e Teste Ágil: de que lado você esta?
Teste Tradicional e Teste Ágil: de que lado você esta?Teste Tradicional e Teste Ágil: de que lado você esta?
Teste Tradicional e Teste Ágil: de que lado você esta?
 

Semelhante a Como descrever cenários de teste utilizando Gherkin de forma correta

[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 Analytics - A importância do Tracking
Mobile Analytics - A importância do TrackingMobile Analytics - A importância do Tracking
Mobile Analytics - A importância do TrackingArthur de Castro Araujo
 
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Daniel Wildt
 
TDC2018SP | Trilha Agile - Los 3 amigos: Como descentralizar a informacao uni...
TDC2018SP | Trilha Agile - Los 3 amigos: Como descentralizar a informacao uni...TDC2018SP | Trilha Agile - Los 3 amigos: Como descentralizar a informacao uni...
TDC2018SP | Trilha Agile - Los 3 amigos: Como descentralizar a informacao uni...tdc-globalcode
 
Scrum-Projetos-EngenhariaSoftware - 2018.pdf
Scrum-Projetos-EngenhariaSoftware - 2018.pdfScrum-Projetos-EngenhariaSoftware - 2018.pdf
Scrum-Projetos-EngenhariaSoftware - 2018.pdfPedroLuis216164
 
Scrum-Projetos-EngenhariaSoftware - 2018.pdf
Scrum-Projetos-EngenhariaSoftware - 2018.pdfScrum-Projetos-EngenhariaSoftware - 2018.pdf
Scrum-Projetos-EngenhariaSoftware - 2018.pdfPedroLuis216164
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesJefferson Moreira
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaLivia Gabos
 
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
[GUTS-RS] GUTS Testing Games - Jogo BDD WarriorsGUTS-RS
 

Semelhante a Como descrever cenários de teste utilizando Gherkin de forma correta (11)

[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...
 
Mobile Analytics - A importância do Tracking
Mobile Analytics - A importância do TrackingMobile Analytics - A importância do Tracking
Mobile Analytics - A importância do Tracking
 
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
 
TDC2018SP | Trilha Agile - Los 3 amigos: Como descentralizar a informacao uni...
TDC2018SP | Trilha Agile - Los 3 amigos: Como descentralizar a informacao uni...TDC2018SP | Trilha Agile - Los 3 amigos: Como descentralizar a informacao uni...
TDC2018SP | Trilha Agile - Los 3 amigos: Como descentralizar a informacao uni...
 
Scrum, Agilismo e Boas Práticas
Scrum, Agilismo e Boas PráticasScrum, Agilismo e Boas Práticas
Scrum, Agilismo e Boas Práticas
 
Scrum-Projetos-EngenhariaSoftware - 2018.pdf
Scrum-Projetos-EngenhariaSoftware - 2018.pdfScrum-Projetos-EngenhariaSoftware - 2018.pdf
Scrum-Projetos-EngenhariaSoftware - 2018.pdf
 
Scrum-Projetos-EngenhariaSoftware - 2018.pdf
Scrum-Projetos-EngenhariaSoftware - 2018.pdfScrum-Projetos-EngenhariaSoftware - 2018.pdf
Scrum-Projetos-EngenhariaSoftware - 2018.pdf
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas Doentes
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostaria
 
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 

Como descrever cenários de teste utilizando Gherkin de forma correta

  • 2. Paulo Júnior •Graduado em Análises e Desenvolvimento de Sistema e Especializado em Teste de Software •Trabalho com análises e automação de testes na Visual Sistemas •Paraense, gosto de cozinhar, dançar forró, adoro uma picanha, mas não sou muito fã de cerveja. Quem sou eu?
  • 3. Como descrever cenários de teste utilizando Gherkin de forma correta •Gherkin •BDD • CUCUMBER
  • 4. Gherkin •É uma linguagem que foi criada especialmente para descrições de comportamento, ela tem a capacidade de remover detalhes da lógica de programação e focar no comportamento que uma funcionalidade deve ter.
  • 5. Gherkin •A sua documentação deve ser entendida por todos os integrantes •Foco no negócio, ou seja, toda e qualquer particularidade de implementação deve ser deixada de lado e não deve entrar na especificação.
  • 6. BDD (Behavior Driven Development) Desenvolvimento Guiado por Comportamento é uma técnica de desenvolvimento ágil que encoraja a colaboração entre desenvolvedores, setores de qualidade e pessoas de negócios em um projeto de software.
  • 7. BDD (Behavior Driven Development) Tal técnica permite uma melhor comunicação entre todas as pessoas técnicas e não técnicas envolvidas, durante um projeto de software.
  • 8. BDD (Behavior Driven Development) “Gojko Adzic deu ao BDD um novo e melhor nome: Specification by Example” (Aslak Hellesøy)
  • 9. Erros ao falar de BDD •BDD é uma abordagem só para testes (BDT) •Eu automatizo em BDD •BDD é automação •Vou salvar minha automação com BDD
  • 10. Desvantagens em usar BDD •Quando implementado em sistema muito antigo, pode ser custoso •Se não escrever uma boa especificação, o seu teste fica ruim
  • 11. CUCUMBER É uma ferramenta de colaboração que suporta o BDD.
  • 12. CUCUMBER Suporta Gherkin para descrever o comportamento do negócio em uma linguagem natural.
  • 13. CUCUMBER Cria uma ponte entre o Software desenvolvido e automação de testes através das chamadas “Especificações executáveis”.
  • 14. Ideia por trás do CUCUMBER “Combinar testes de aceitação automatizados, requisitos funcionais e documentação de software em um formato compreensível por pessoas não técnicas, bem como ferramentas de teste.” Fonte: https://cucumber.io/blog/2014/03/03/the-worlds-most-misunderstood- collaboration-tool (Aslak Hellesøy)
  • 15. A ferramenta de colaboração mais incompreendida do mundo “Fico feliz em ter criado uma ferramenta tão popular, mas entristecido ao ver como ela é mal utilizada e mal entendida.” Fonte: https://cucumber.io/blog/2014/03/03/the-worlds-most-misunderstood- collaboration-tool (Aslak Hellesøy)
  • 16. Gherkin x BDD x CUCUMBER “Não é só baixar o plugin e automatizar, existe um processo é este processo se chama BDD.” Fonte: https://cucumber.io/blog/2014/03/03/the-worlds-most-misunderstood- collaboration-tool (Aslak Hellesøy)
  • 17. Gherkin com CUCUMBER Dado... (Given) Quando... (When) Então... (Then) E... (And) Mas... (But)
  • 18. Gherkin com CUCUMBER Dado que está chovendo Quando andar na rua Então a camisa fica molhada
  • 19. Gherkin com CUCUMBER Dado que está chovendo Quando andar na rua Então a camisa fica molhada
  • 20. Gherkin com CUCUMBER Dado que está chovendo Quando andar na rua Então a camisa fica molhada
  • 21. Gherkin com CUCUMBER Dado que está chovendo Quando andar na rua Então a camisa fica molhada #Para finalizar a especificação Gherkin, eu preciso de um resultado esperado.
  • 22. Dica: Reaproveitar sentenças Dado que está chovendo e estou sem guarda-chuva #Separar a sentença para reaproveitá-las
  • 23. Dica: Reaproveitar sentenças Dado que está chovendo E estou sem guarda-chuva #Separar a sentença para reaproveitá-las
  • 24. Dica: Especificar o que for relevante Dado que está chovendo E está de noite Quando andar na rua Então a camisa fica molhada #O fato de está de noite não tem relevância no resultado do meu teste
  • 25. Dica: Para quem já automatiza Tentar deixar os cenários mais independentes possíveis Cenário 1 Cenário 2 Cenário 3
  • 26. Dica: Para quem já automatiza Tentar deixar os cenários mais independentes possíveis Cenário 1 Cenário 2 Cenário 3 Se o primeiro falhou, a dependência está condenada a falhar.
  • 27. Erros ao especificar com Gherkin Dado que eu preencho o campo nome E preencho o campo senha Quando clico no botão Entrar Então vejo a tela principal #A especificação foca no que DEVE SER FEITO, e NÃO em COMO DEVE SER FEITO
  • 28. Como deveria ser Dado que eu tenho o usuário e a senha válidos Quando faço login Então vejo a mensagem “Seja bem vindo”
  • 29. Funcionalidade Controla Salgados # language: pt Funcionalidade: Controla Salgados Tendo Salgados na mesa do Testing Dojo UAI, quero controlar o número de salgados, para que não falte e os lutadores não fiquem com fome Cenário: Decrementa número de salgados Dado que estou na plateia E vou até a mesa E na mesa tem 10 salgados Quando eu como 2 salgados Então na mesa restam 8 salgados
  • 30. # language: pt Funcionalidade: Controla Salgados Tendo Salgados na mesa do Testing Dojo UAI, quero controlar o número de salgados, para que não falte e os lutadores não fiquem com fome Cenário: Decrementa 2 de salgados Dado que estou na plateia E vou até a mesa E na mesa tem 10 salgados Quando eu como 2 salgados Então na mesa restam 8 salgados Cenário: Decrementa 5 de salgados Dado que estou na plateia E vou até a mesa E na mesa tem 20 salgados Quando eu como 5 salgados Então na mesa restam 15 salgados Cenário: Decrementa 8 de salgados Dado que estou na plateia E vou até a mesa E na mesa tem 30 salgados Quando eu como 8 salgados Então na mesa restam 22 salgados Cenário: Decrementa 4 de salgados Dado que estou na plateia E vou até a mesa E na mesa tem 50 salgados Quando eu como 4 salgados Então na mesa restam 46 salgados Cenário: Decrementa 7 de salgados Dado que estou na plateia E vou até a mesa E na mesa tem 50 salgados Quando eu como 7 salgados Então na mesa restam 43 salgados Cenário: Decrementa 18 de salgados Dado que estou na plateia E vou até a mesa E na mesa tem 30 salgados Quando eu como 18 salgados Então na mesa restam 12 salgados Cenário: Decrementa 14 de salgados Dado que estou na plateia E vou até a mesa E na mesa tem 50 salgados Quando eu como 14 salgados Então na mesa restam 36 salgados
  • 31. # language: pt Funcionalidade: Controla Salgados Tendo Salgados na mesa do Testing Dojo UAI, quero controlar o número de salgados, para que não falte e os lutadores não fiquem com fome Contexto: Dado que estou na plateia E vou até a mesa Cenário: Decrementa 2 de salgados E na mesa tem 10 salgados Quando eu como 2 salgados Então na mesa restam 8 salgados Cenário: Decrementa 5 de salgados E na mesa tem 20 salgados Quando eu como 5 salgado Então na mesa restam 15 salgados Cenário: Decrementa 8 de salgados E na mesa tem 30 salgados Quando eu como 8 salgado Então na mesa restam 22 salgados Cenário: Decrementa 4 de salgados E na mesa tem 50 salgados Quando eu como 4 salgado Então na mesa restam 46 salgados Cenário: Decrementa 7 de salgados E na mesa tem 50 salgados Quando eu como 7 salgados Então na mesa restam 43 salgados Cenário: Decrementa 18 de salgados E na mesa tem 30 salgados Quando eu como 18 salgados Então na mesa restam 12 salgados Cenário: Decrementa 14 de salgados E na mesa tem 50 salgados Quando eu como 14 salgados Então na mesa restam 36 salgados Contexto do Cenário
  • 32. # language: pt Funcionalidade: Controla Salgados Tendo Salgados na mesa do Testing Dojo UAI, quero controlar o número de salgados, para que não falte e os lutadores não fiquem com fome Contexto: Dado que estou na plateia E vou até a mesa Esquema do Cenário: Decrementa salgados E na mesa tem <Inicial Salgados> salgados Quando eu como <Salgados Comidos> salgados Então na mesa restam <Resultado Salgados> salgados Exemplos: |Inicial Salgados |Salgados Comidos | Resultado Salgados| | 10 | 1 | 9 | | 20 | 5 | 15 | | 30 | 8 | 22 | | 50 | 4 | 46 | | 50 | 7 | 43 | | 30 | 18 | 12 | | 50 | 14 | 36 | Esquema do Cenário
  • 35. Gherkin com CUCUMBER # language: pt Funcionalidade: Para descrever a narrativa de uma história; Contexto: Para definições de pré-condições que se repetem para todos os cenários de uma história (Background em inglês); Cenário: Para definição de cenários que não possuem parâmetros (Scenario em inglês); Esquema de cenário: Para definição de cenários que contém parâmetros (Scenario Outline em inglês); Dado, Quando, Então, E, Mas: Para construção dos passos do cenário; Exemplos: Tabela de massa de dados para execução dos cenários parametrizados. Onde: " " (Delimitação de textos de múltiplas linhas), | (Separação de valores nas tabelas de massa de dados ou exemplos) (Examples em inglês); @ (Tags) # (Comentário)
  • 36. Referências • https://www.devmedia.com.br/desenvolvimento- orientado-por-comportamento-bdd/21127 • Cucumber e rspec (Hugo Baraúna) • https://www.concrete.com.br/2016/05/25/o-que-e- especificacao-por-exemplo/ • https://www.linkedin.com/pulse/gherkin- comunica%C3%A7%C3%A3o-atrav%C3%A9s-de-um- vocabul%C3%A1rio-e-o-marcus-vin%C3%ADcius • https://cucumber.io/blog/2014/03/03/the-worlds-most- misunderstood-collaboration-tool • https://code.likeagirl.io/especifica%C3%A7%C3%A3o-por- exemplo-e-qualidade-de-produto-4ff5b57a1674 • Specification By Example (Gojko Adzic)
  • 37. Meus contatos Nome: Paulo Santos Amaral Júnior Linkedin: https://www.linkedin.com/in/paulosajunior Github: https://github.com/paulosajunior
  • 38. Quer palestrar? Entre em contato Nome: Paulo Santos Amaral Júnior Linkedin: https://www.linkedin.com/in/paulosajunior Github: https://github.com/paulosajunior Nome: Bruno Batista Linkedin: https://www.linkedin.com/in/bruno-batista-87734464 Github: https://github.com/brunobatista25 Nome: Paulo Gonçalves Linkedin:https://www.linkedin.com/in/paulo-goncalves Github: https://github.com/paulogoncalvesBH

Notas do Editor

  1. s