BDD em Testes de
Serviço
BDD e Testes de Serviço (API)
Testes de Serviço
• API Rest no Monolito
• API Rest em Micro Serviços
BDD e Testes de Serviço (API)
• Behavior Driven Development
• Desenvolvimento Orientado
por Comportamento
Testes de Serviço
• API Rest no Monolito
• API Rest em Micro Serviços
BDD
REST API
REST API
Monolito
Serviços
BD BD BD
REST API
REST API
Monolito
Serviços
BD BD BD
REST API
REST API
MicroServiços
Serviços
BD
REST API
Serviços
REST API
REST API
MicroServiços
Serviços
BD
REST API
Serviços
REST API
Serviços
REST API
Serviços
REST API
BD
BD
Testes de API
Pirâmide Ideal
- Mesma imagem do primeiro slide da Pirâmide Ideal
Testes de API
Pirâmide Ideal
+int
+iso
$$$
¢
- Mesma imagem do primeiro slide da Pirâmide Ideal
Testes de API
Pirâmide Ideal
+int
+iso
$$$
¢
- Mesma imagem do primeiro slide da Pirâmide Ideal
Testes de API
Tipos de Testes
• Funcional
Testes de API
Tipos de Testes
• Funcional
• Aceitação (fluxo do usuário)
Testes de API
Tipos de Testes
• Funcional
• Aceitação (fluxo do usuário)
• Sanidade
Testes de API
Tipos de Testes
• Funcional
• Aceitação (fluxo do usuário)
• Sanidade
• Contrato
Testes de API
Tipos de Testes
• Funcional
• Aceitação (fluxo do usuário)
• Sanidade
• Contrato
• Saúde dos endpoints
Testes de API
Pipeline
Saúde
Testes de API
Pipeline
Saúde Sanidade
Testes de API
Pipeline
Saúde Aceitação
Sanidade
Testes de API
Pipeline
Saúde Aceitação
Sanidade Funcional
Testes de API
Pipeline
Saúde Aceitação
Sanidade Funcional Contrato
Testes de API
Pipeline
Saúde Aceitação
Sanidade Funcional Contrato
A
Teste de Contrato
C
Teste de Contrato
Teste de Contrato
Teste de Contrato
B
D
BDD
• Behavior Driven Development (BDD ou Desenvolvimento Orientado por
Comportamento) é uma forma de colaboração no desenvolvimento de
software que age como ponte de comunicação entre negócio e
tecnologia.
BDD
• Behavior Driven Development (BDD ou Desenvolvimento Orientado por
Comportamento) é uma forma de colaboração no desenvolvimento de
software que age como ponte de comunicação entre negócio e
tecnologia.
• BDD ajuda os times a comunicarem requisitos com mais precisão,
descobrirem defeitos mais cedo e entregando valor ao usuário
Aslak Hellesøy (Criador do Cucumber)
https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/
Aslak Hellesøy (Criador do Cucumber)
https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/
“Infelizmente, você não pode simplesmente baixar o Cucumber, começar a
escrever os arquivos .Features do Cucumber e esperar que um nirvana de
verdade e iluminação aconteça por conta própria. Há um processo a seguir
que envolve muitas funções na equipe de software.
Esse processo é chamado de BDD. O BDD não é uma ferramenta que você
pode baixar. Gojko Adzic deu ao BDD um nome novo e melhor: especificação
por exemplo.“
O Problema
Negócio
Dev
QA
O Problema
Requisitos
Negócio
Dev
QA
O Problema
Desenvolvimento
Requisitos
Negócio
Dev
QA
O Problema
Desenvolvimento
Testes
Requisitos
Negócio
Dev
QA
X semanas depois
O Problema
Desenvolvimento
Testes
Requisitos
Negócio
Dev
QA
X semanas depois
“Seus Cenários no Cucumber devem direcionar sua implementação, não refleti-la.
Pense nisso por um minuto. Isso tem muitas implicações. Antes de tudo, significa que os
recursos do Cucumber devem ser escritos antes do código que implementa o recurso.”
Aslak Hellesøy (Criador do Cucumber)
https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/
“Seus Cenários no Cucumber devem direcionar sua implementação, não refleti-la.
Pense nisso por um minuto. Isso tem muitas implicações. Antes de tudo, significa que os
recursos do Cucumber devem ser escritos antes do código que implementa o recurso.”
Aslak Hellesøy (Criador do Cucumber)
https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/
“Os contribuidores mais importantes dos requisitos não são
programadores ou testadores - são analistas de negócios. Durante essa
atividade, a principal responsabilidade dos programadores e testadores
é fazer perguntas e garantir que eles entendam tudo.”
Time Ágil - max potencial do ágil, automação, BDD
Negócio
Dev
QA
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
ou
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
ou
sim
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
Validação
ou
sim
não
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
Validação
Sim
ou
sim
não
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
Validação
Sim
ou
não
Finalizada Prod
sim
não
Time Ágil
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
Validação
Sim
ou
não
Finalizada Prod
sim
não
Time Ágil CD
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
ou
Prod
Validação
E
não
sim
Time Ágil CD
Negócio
Dev
QA
Requisitos Planejamento
Requisitos
Pronta #1
Em Progresso
Código + Unitário
+ Regressão
ou
Prod
Validação
E
não
sim
Monitorar e Observar
Feature Toggle
Canary Release
Blue/Green
Vantagens
• Testes de Aceitação
Vantagens
• Testes de Aceitação
• Especificações Executáveis
Vantagens
• Testes de Aceitação
• Especificações Executáveis
• Fácil de entender
Vantagens
• Testes de Aceitação
• Especificações Executáveis
• Fácil de entender
• Pode ser usado para novos integrantes entenderem o sistema
Vantagens
• Testes de Aceitação
• Especificações Executáveis
• Fácil de entender
• Pode ser usado para novos integrantes entenderem o sistema
• Flexibilidade
Desvantagens
• Como são testes funcionais, podem falhar aleatoriamente (flake)
Desvantagens
• Como são testes funcionais, podem falhar aleatoriamente (flake)
• As feature podem demorar demais para rodar
Desvantagens
• Como são testes funcionais, podem falhar aleatoriamente (flake)
• As feature podem demorar demais para rodar
• O pessoal do negócio pode não ler os cenários.
Desvantagens
• Como são testes funcionais, podem falhar aleatoriamente (flake)
• As feature podem demorar demais para rodar
• O pessoal do negócio pode não ler os cenários.
• Inserção de uma camada extra
Desvantagens
• Como são testes funcionais, podem falhar aleatoriamente (flake)
• As feature podem demorar demais para rodar
• O pessoal do negócio pode não ler os cenários.
• Inserção de uma camada extra
• Pode ser usado como estratégia para dados nos testes
“Se você está usando o Cucumber como ferramenta de
testes, você está fazendo o uso incorreto”
Aslak Hellesøy (Criador do Cucumber)
https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/
“Se você está usando o Cucumber como ferramenta de
testes, você está fazendo o uso incorreto”
“Quando o Cucumber é adotado apenas como uma ferramenta para escrever
testes automatizados sem nenhuma contribuição dos analistas de negócios,
eles tendem a se tornar imperativos e a perder o valor da documentação.”
Aslak Hellesøy (Criador do Cucumber)
https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/
“Se você está usando o Cucumber como ferramenta de
testes, você está fazendo o uso incorreto”
“Quando o Cucumber é adotado apenas como uma ferramenta para escrever
testes automatizados sem nenhuma contribuição dos analistas de negócios,
eles tendem a se tornar imperativos e a perder o valor da documentação.”
“Há uma certa quantidade de cerimônia envolvida no Cucumber. Existem as
definições Gherkin e Step a serem mantidas. Isso pode ser justificado se
melhorar a colaboração e reduzir mal-entendidos, mas se a ferramenta for
usada no vácuo, esses benefícios obviamente nunca acontecerão.”
Aslak Hellesøy (Criador do Cucumber)
https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/
BDD Vale ou não a pena?
• Divisão
• Equipe de Dev
• Equipe de Automação
• Equipe de QA de escrita de cenários e testes manuais
• Usado nos testes funcionais de UI
Caso 1 - Explicação
BDD Vale ou não a pena?
• Divisão
• Equipe de Dev
• Equipe de Automação
• Equipe de QA de escrita de cenários e testes manuais
• Usado nos testes funcionais de UI
• Processo "BDD"
• QA Manual + Analista de Negócio escrevia os cenários
• Equipe de automação automava
Caso 1 - Explicação
BDD Vale ou não a pena?
Caso 1 - Conclusão
• Não acho que valeu a pena, adicionou mais complexidade,
principalmente pela forma que a empresa era organizada (ou
desorganizada)
BDD Vale ou não a pena?
Caso 2 - Explicação
• Time único
• QA normalmente fazia validação e testes funcionais
• Quando gargalos surgiam, QAs ajudavam DEVs e DEVs ajudavam
QAs.
BDD Vale ou não a pena?
Caso 2 - Explicação
• Time único
• QA normalmente fazia validação e testes funcionais automatizados
• Quando gargalos surgiam, QAs ajudavam DEVs e DEVs ajudavam
QAs.
• Usado nos testes funcionais de UI e API
BDD Vale ou não a pena?
Caso 2 - Explicação
• Time único
• QA normalmente fazia validação e testes funcionais
• Quando gargalos surgiam, QAs ajudavam DEVs e DEVs ajudavam
QAs.
• Usado nos testes funcionais de UI e API
• Processo BDD
• Reunião com 3 amigos sempre.
BDD Vale ou não a pena?
Caso 2 - Conclusão
• Valeu muito a pena
• O nível de comunicação e colaboração era muito grande
- hoje vejo que essas reuniões com os 3 amigos só funcionou pq a Analista de Negócio abraçou o BDD.
BDD Vale ou não a pena?
Caso 2 - Conclusão
• Valeu muito a pena
• O nível de comunicação e colaboração era muito grande
• Usamos os cenários como documentação viva
- hoje vejo que essas reuniões com os 3 amigos só funcionou pq a Analista de Negócio abraçou o BDD.
BDD Vale ou não a pena?
Caso 2 - Conclusão
• Valeu muito a pena
• O nível de comunicação e colaboração era muito grande
• Usamos os cenários como documentação viva
• Os testes faziam parte da nossa estratégia de Integração Contínua (CI)
- hoje vejo que essas reuniões com os 3 amigos só funcionou pq a Analista de Negócio abraçou o BDD.
BDD Vale ou não a pena?
Caso 2 - Conclusão
• Valeu muito a pena
• O nível de comunicação e colaboração era muito grande
• Usamos os cenários como documentação viva
• Os testes faziam parte da nossa estratégia de Integração Contínua (CI)
• Mas hoje vejo que essas reuniões com os 3 amigos só aconteceram pq a
Analista de Negócio abraçou o BDD.
- hoje vejo que essas reuniões com os 3 amigos só funcionou pq a Analista de Negócio abraçou o BDD.
BDD Vale ou não a pena?
Caso 3 - Explicação
• Time único com cultura devops
• Todo mundo faz tudo, cada pessoa compartilhando o seu
conhecimento mais profundo.
• Não tínhamos analista de negócio.
• Em 2 anos tivemos 5 POs diferentes (alguns participativos, outros não)
BDD Vale ou não a pena?
Caso 3 - Explicação
• Time único com cultura devops
• Todo mundo faz tudo, cada pessoa compartilhando o seu
conhecimento mais profundo.
• Não tínhamos analista de negócio.
• Em 2 anos tivemos 5 POs diferentes (alguns participativos, outros não)
• Testes Funcionais de API
BDD Vale ou não a pena?
Caso 3 - Explicação
• Processo BDD
• Cada pessoa preparava um N de histórias
• Conversas com PO sobre os cenários ou critérios de aceite
• Review por um outro membro da equipe
• Mais conversas com o PO (muitas vezes assíncronas por chat ou email)
BDD Vale ou não a pena?
Caso 3 - Conclusão
• Valeu muito a pena
• Apesar alguns POs não participarem muito, os cenários ajudaram para:
• Conhecimento compartilhado na equipe
BDD Vale ou não a pena?
Caso 3 - Conclusão
• Valeu muito a pena
• Apesar alguns POs não participarem muito, os cenários ajudaram para:
• Conhecimento compartilhado na equipe
• Relatório de execução no Jenkins (da última build)
BDD Vale ou não a pena?
Caso 3 - Conclusão
• Valeu muito a pena
• Apesar alguns POs não participarem muito, os cenários ajudaram para:
• Conhecimento compartilhado na equipe
• Relatório de execução no Jenkins (da última build)
• Onboarding de novos POs
Especificação
por Exemplo
O que é um Cenário?
• Um cenário é um exemplo concreto de uma regra de negócio
O que é um Cenário?
• Um cenário é um exemplo concreto de uma regra de negócio
• Um cenário usa exemplos concretos para explicar ideas abstratas.
O que é um Cenário?
Dado (pré-condição)
Quando (ação)
Então (resultado esperado)
Formato
O que é um Cenário?
Dado que esteja no sistema
Quando faço o login
Então fui logado
Cenário Abstrato vs Concreto
O que é um Cenário?
Dado que esteja no sistema
Quando faço o login
Então fui logado
Cenário Abstrato vs Concreto
que sistema?
que local do sistema?
O que é um Cenário?
Dado que esteja no sistema
Quando faço o login
Então fui logado
Cenário Abstrato vs Concreto
quem entrou na página? era admin?
que sistema?
que local do sistema?
O que é um Cenário?
Dado que esteja no sistema
Quando faço o login
Então fui logado
Cenário Abstrato vs Concreto
quem entrou na página?
o deve ocorrer quando o usuário loga?
era admin?
que sistema?
que local do sistema?
O que é um Cenário?
Dado que esteja na página de login
Quando logo com o admin “admin@gmail.com”
Então devo ver a mensagem de usuário logado com sucesso
E o nome do usuário deve aparecer ao lado direito do menu
Cenário Abstrato vs Concreto
O que é um Cenário?
Cenário Abstrato vs Concreto
Quando logo com o admin “admin@gmail.com”
Então devo ver a mensagem de usuário logado com sucesso
E o nome do usuário deve aparecer ao lado direito do menu
O que é um Cenário?
Cenário Abstrato vs Concreto
Quando logo com um usuário admin
Então devo ver a mensagem de usuário logado com sucesso
E o nome do usuário deve aparecer ao lado direito do menu
Especificando Pelo Exemplo
O que especificar?
• Queremos responder a pergunta: “Como o sistema se comporta?”
Especificando Pelo Exemplo
O que especificar?
• Queremos responder a pergunta: “Como o sistema se comporta?”
• Queremos descrever o que o sistema faz e não como ele faz.
Especificando Pelo Exemplo
Dado que eu abra o Firefox
E eu abra o site “www.amazon.com.br”
Quando seleciono a busca
E digito “smartphone"
E clico no botão de buscar
E clico em “Apple" no filtro de “Marca"
Então devo ver somente os produtos da Apple
Exemplo - como o sistema faz
Especificando Pelo Exemplo
Dado que eu abra o Firefox
E eu abra o site “www.amazon.com.br”
Quando seleciono a busca
E digito “smartphone"
E clico no botão de buscar
E clico em “Apple" no filtro de “Marca"
Então devo ver somente os produtos da Apple
Exemplo - como o sistema faz
Especificando Pelo Exemplo
Dado que eu abra o Firefox
E eu abra o site “www.amazon.com.br”
Quando seleciono a busca
E digito “smartphone"
E clico no botão de buscar
E clico em “Apple" no filtro de “Marca"
Então devo ver somente os produtos da Apple
Exemplo - como o sistema faz
Especificando Pelo Exemplo
Dado que eu abra o Firefox
E eu abra o site “www.amazon.com.br”
Quando seleciono a busca
E digito “smartphone"
E clico no botão de buscar
E clico em “Apple" no filtro de “Marca"
Então devo ver somente os produtos da Apple
Exemplo - como o sistema faz
Especificando Pelo Exemplo
Dado que eu abra o Firefox
E eu abra o site “www.amazon.com.br”
Quando seleciono a busca
E digito “smartphone"
E clico no botão de buscar
E clico em “Apple" no filtro de “Marca"
Então devo ver somente os produtos da Apple
Exemplo - como o sistema faz
Especificando Pelo Exemplo
Exemplo - como o sistema faz
Dado que eu abra o Firefox
E eu abra o site “www.amazon.com.br”
Quando seleciono a busca
E digito “smartphone"
E clico no botão de buscar
E clico em “Apple" no filtro de “Marca"
Então devo ver somente os produtos da Apple
Especificando Pelo Exemplo
Quando pesquiso por “smartphone”
E filtro o resultado por “Apple”
Então somente os produtos da Apple são mostrados
Exemplo - o que o sistema faz
Especificando Pelo Exemplo
Quando pesquiso por “smartphone” na Amazon BR
E filtro o resultado por “Apple”
Então somente os produtos da Apple são mostrados
Exemplo - o que o sistema faz
Ferramentas de BDD
CUCUMBER
Ferramentas de BDD
CUCUMBER
Aslak Hellesøy (Criador do Cucumber)
https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/
Gherkin
Gherkin
• Linguagem natural com algumas funcionalidades
• Pessoas técnicas e não técnicas podem entender ou escrever os
cenários
• Permite que os testes sejam executados, se tornando assim uma
documentação viva.
Palavras-Chave
Gherkin
• Funcionalidade / Caracteristica
• Contexto / Cenário de Fundo
• Cenario /Cená rio / Exemplo
• Dado(a)(os)(as)
• Quando
• Então / Entao
• E
• Mas
• Esquema do Cenário/Cenario
• Exemplos
https://cucumber.io/docs/gherkin/reference/
Funcionalidade
Funcionalidade: Nome da funcionalidade
Sintaxe
Sintaxe
Funcionalidade
• Os cenários de teste são agrupados por funcionalidades
• Cada arquivo .feature deve mapear a uma funcionalidade
Cenário / Exemplo
Funcionalidade: Nome da funcionalidade 

Cenário - Título (identifica o teste)

Dado - configura o teste

Quando - Ação ou interação do usuário

Então - Resultado ou evidência

E / Mas - Continua passo “Dado”, “Quando” ou “Então”
Sintaxe
E se eu tenho vários filtros?
Tabelas
Quando pesquiso por “smartphone”
E filtro o resultado por sistema operacional Android
E filtro o resultado por marca Samsung
E filtro o resultado por tamanho de tela 6 polegadas
E filtro o resultado por espaço de disco de 128gb
Então somente os produtos que atendem aos filtros são mostrados
Vários filtros
Tabelas
Quando pesquiso por “smartphone”
E filtro por:
| android |
| Samsung |
| 6 |
| 128gb |
Então somente os produtos que atendem aos filtros são mostrados
Lista
Tabelas
Quando pesquiso por “smartphone”
E filtro por:
| android |
| Samsung |
| 6 |
| 128gb |
Então somente os produtos que atendem aos filtros são mostrados
Lista
Array

lista = [

“android”, 

“Samsung",

“6",

“128gb”,

]

lista[0]
Tabelas
Quando pesquiso por “smartphone”
E filtro por:
| sistema operacional | android |
| marca | Samsung |
| tamanho de tela | 6 |
| memoria interna | 128gb |
Então somente os produtos que atendem aos filtros são mostrados
Dicionário
Quando pesquiso por “smartphone”
E filtro por:
| sistema operacional | android |
| marca | Samsung |
| tamanho de tela | 6 |
| memoria interna | 128gb |
Então somente os produtos que atendem aos filtros são mostrados
Dicionário/Map

dicionario = {

“sistema operacional” => “android”, 

“marca” => “Samsung",

“tamanho de tela” => “6",

“memória interna” => “128gb",

}

dicionario[‘marca']

dicionario.get(‘marca’)

Tabelas
Dicionário
Quando pesquiso por “smartphone”
E filtro por:
| sistema operacional | marca | tamanho de tela | memoria interna |
| Android | Samsung | 6 | 128gb |
| iOS | Apple | 5 | 64gb |
Então somente os produtos que atendem aos filtros são mostrados
Tabelas
Lista de Dicionário
Array de Dicionário/Map

arrayDicionario = [

{

“sistema operacional” => “android”,

“marca” => “Samsung",

“tamanho de tela” => “6",

“memória interna” => “128gb",

},

{

“sistema operacional” => “android” 

“marca” => "Samsung"

“tamanho de tela” => "6"

“memória interna” => "128gb"

}

]

Tabelas
Lista de Dicionário
Sintaxe
Contexto
Contexto: Smartphones cadastrados
Dado que eu tenha um smartphone Android cadastrado
E que eu tenha um smartphone iPhone cadastrado
Uso
Contexto / Cenário de Fundo
• Reusa a configuração do teste
• Idealmente não deve fazer ação ou verificação, só configuração
• Tente não ter configurações complexa, somente o necessário para o
entendimento
• É executado antes de cada um dos cenários
Uso
Esquema de Cenário
• Mesmo cenário, porém dados diferentes
• Cada linha na tabela de exemplos representa um cenário completo
Sintaxe
Esquema de Cenário
Esquema do Cenário: Busca por produtos utilizando filtro
Quando pesquiso por "smartphone"
E o filtro por:
| marca | <marca> |
| sistema operacional | <so> |
| tamanho de tela | <tela> |
| memoria interna | <memoria> |
Entao o <resultado> deve aparecer no resultado
Sintaxe
Esquema de Cenário
Esquema do Cenário: Busca por produtos utilizando filtro
Quando pesquiso por "smartphone"
E o filtro por:
| marca | <marca> |
| sistema operacional | <so> |
| tamanho de tela | <tela> |
| memoria interna | <memoria> |
Entao o <resultado> deve aparecer no resultado
Exemplos: Busca Valida
| so | marca | tela | memoria | resultado |
| Android | Samsung | 6 | 128gb |. Samsung galaxy |
| iOS | Apple | 5 | 64gb |. iPhone X |
Exemplos: Busca invalida
| so | marca | tela | memoria | resultado |
| Android | Samsung | 2 | 128gb |. busca sem resultados |
| iOS | Apple | 5 | 6gb | busca sem resultados |
Sintaxe
Esquema de Cenário
Esquema do Cenário: Busca por produtos utilizando filtro
Quando pesquiso por "smartphone"
E o filtro por:
| marca | <marca> |
| sistema operacional | <so> |
| tamanho de tela | <tela> |
| memoria interna | <memoria> |
Entao o <resultado> deve aparecer no resultado
Exemplos: Busca Valida
| so | marca | tela | memoria | resultado |
| Android | Samsung | 6 | 128gb |. Samsung galaxy |
| iOS | Apple | 5 | 64gb |. iPhone X |
Exemplos: Busca invalida
| so | marca | tela | memoria | resultado |
| Android | Samsung | 2 | 128gb |. busca sem resultados |
| iOS | Apple | 5 | 6gb | busca sem resultados |
Dicionário/HashMap

dicionario = {

“sistema operacional” => “android”, 

“marca” => “Samsung",

“tamanho de tela” => “6",

“memória interna” => “128gb",

}

dicionario[‘marca']

dicionario.get(‘marca’)
Sintaxe
Esquema de Cenário ou Tabela
Descrevendo múltiplos cenários? Use Esquema de Cenário
Configurando um teste ou simplificando ação? Use tabela
Projeto
Cucumber
Estrutura
Projeto Cucumber Projeto
Estrutura
Projeto Cucumber Projeto
Feature
Estrutura
Projeto Cucumber Projeto
Feature
Cenários
Estrutura
Projeto Cucumber Projeto
Feature
Cenários
Passos
Estrutura
Projeto Cucumber Projeto
Feature
Cenários
Passos
O Negócio
Estrutura
Projeto Cucumber Projeto
Feature
Cenários
Passos
Step Definitions
O Negócio
Estrutura
Projeto Cucumber Projeto
Feature
Cenários
Passos
Step Definitions
Código Suporte
O Negócio
Estrutura
Projeto Cucumber Projeto
Feature
Cenários
Passos
Step Definitions
Código Suporte
Biblioteca de
Automação
O Sistema
O Negócio
Estrutura
Projeto Cucumber Projeto
Feature
Cenários
Passos
Step Definitions
Código Suporte
Biblioteca de
Automação
O Sistema
O Negócio
A Tecnologia
resources/
resources/
features/
Animal.feature
Pedido.feature
Usuario.feature
resources/
features/
Animal.feature
Pedido.feature
Usuario.feature
java/
resources/
features/
Animal.feature
Pedido.feature
Usuario.feature
java/
steps/
AnimalStepDefinitions.java
Config.java
PedidoStepDefinitions.java
UsuarioStepDefinitions.java
resources/
features/
Animal.feature
Pedido.feature
Usuario.feature
java/
steps/
AnimalStepDefinitions.java
Config.java
PedidoStepDefinitions.java
UsuarioStepDefinitions.java
Expressão
Regular
resources/
features/
Animal.feature
Pedido.feature
Usuario.feature
java/
steps/
AnimalStepDefinitions.java
Config.java
PedidoStepDefinitions.java
UsuarioStepDefinitions.java
Expressão
Regular
suporte/
resources/
features/
Animal.feature
Pedido.feature
Usuario.feature
java/
steps/
AnimalStepDefinitions.java
Config.java
PedidoStepDefinitions.java
UsuarioStepDefinitions.java
Expressão
Regular
suporte/
domínio/
Pedido.java
Animal.java
Usuario.java
resources/
features/
Animal.feature
Pedido.feature
Usuario.feature
api/
PedidoApi.java
AnimalApi.java
UsuarioApi.java
java/
steps/
AnimalStepDefinitions.java
Config.java
PedidoStepDefinitions.java
UsuarioStepDefinitions.java
Expressão
Regular
suporte/
domínio/
Pedido.java
Animal.java
Usuario.java
resources/
features/
Animal.feature
Pedido.feature
Usuario.feature
api/
PedidoApi.java
AnimalApi.java
UsuarioApi.java
java/
steps/
AnimalStepDefinitions.java
Config.java
PedidoStepDefinitions.java
UsuarioStepDefinitions.java
Expressão
Regular
suporte/
ExecutávelCucumber.java
domínio/
Pedido.java
Animal.java
Usuario.java

Mais conteúdo relacionado

PPTX
Guide to User Story Creation
PDF
O que Evitar na Escrita de Criterios de Aceite
PDF
BDD não é automação de teste - Scrum Gathering
PPTX
Agile User Stories
PDF
User Story Smells & Anti-patterns
PPTX
User stories in agile software development
PDF
Testes de ponta a ponta
PDF
How to write good user stories
Guide to User Story Creation
O que Evitar na Escrita de Criterios de Aceite
BDD não é automação de teste - Scrum Gathering
Agile User Stories
User Story Smells & Anti-patterns
User stories in agile software development
Testes de ponta a ponta
How to write good user stories

Mais procurados (20)

PPTX
BDD presentation
PDF
Exemplos de User Stories
PDF
Story Mapping in a Nutshell
PPT
Writing Effective User Stories
PDF
21 técnicas para quebra de User Stories para os PO's
PPTX
User Stories explained
PDF
Introduction to user story mapping open camp edition
PPTX
Translation Procedures Powerpoint
PDF
Fluxograma processo - desenvolvimento de software
PDF
L'ADN d'un développement produit réussi
PDF
Mini curso de testes ágeis
PPTX
Agile Planning and Estimation
PDF
Tutubi Design Assigments.pdf
PDF
An introduction to Behavior-Driven Development (BDD)
PPTX
A Arte de Escrever User Stories: Quais são os segredos
PPTX
Epics and User Stories
PPTX
User Story
PPTX
Splitting Stories with the Hamburger Method - A Simple 5 Step Process
PPT
Translation by omission
PPT
Đề cương: Kiểm Soát Chất Lượng
BDD presentation
Exemplos de User Stories
Story Mapping in a Nutshell
Writing Effective User Stories
21 técnicas para quebra de User Stories para os PO's
User Stories explained
Introduction to user story mapping open camp edition
Translation Procedures Powerpoint
Fluxograma processo - desenvolvimento de software
L'ADN d'un développement produit réussi
Mini curso de testes ágeis
Agile Planning and Estimation
Tutubi Design Assigments.pdf
An introduction to Behavior-Driven Development (BDD)
A Arte de Escrever User Stories: Quais são os segredos
Epics and User Stories
User Story
Splitting Stories with the Hamburger Method - A Simple 5 Step Process
Translation by omission
Đề cương: Kiểm Soát Chất Lượng
Anúncio

Semelhante a BDD em Testes de Serviço (20)

PDF
BDD não é Automação de Testes
PDF
Testes utilizando cucumber + PhantomJs
PDF
Test First, TDD e outros Bichos
PDF
BDD em Ação
PDF
Automação de testes - uma introdução sobre estratégias
PPTX
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
PPTX
Bdd com cucumber + java + selenium
PDF
[GDG Quality Fest 2017] BDD - Como quebrar as barreiras de negócio dentro do ...
PPTX
Apresentação de BDD com SpecFlow e Selenium
PDF
DDD + BDD + TDD + Scrum
PDF
Behavior Driven Development - Unificando propostas de negócio com testes e có...
PPTX
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
PPTX
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
PDF
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
PDF
Intrudução ao Behavior Driven Development (BDD) com Ruby on Rails
PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
KEY
Bdd e ci
PPTX
Behavior Driven Development - Para Product Owner
PDF
Escalando Qualidade - Superando os desafios de transição em testes de software
BDD não é Automação de Testes
Testes utilizando cucumber + PhantomJs
Test First, TDD e outros Bichos
BDD em Ação
Automação de testes - uma introdução sobre estratégias
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
Bdd com cucumber + java + selenium
[GDG Quality Fest 2017] BDD - Como quebrar as barreiras de negócio dentro do ...
Apresentação de BDD com SpecFlow e Selenium
DDD + BDD + TDD + Scrum
Behavior Driven Development - Unificando propostas de negócio com testes e có...
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
Intrudução ao Behavior Driven Development (BDD) com Ruby on Rails
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Bdd e ci
Behavior Driven Development - Para Product Owner
Escalando Qualidade - Superando os desafios de transição em testes de software
Anúncio

Mais de Rafael Lima (9)

PDF
Micro service quality
PDF
Qualidade de Software em Micro Serviços
PDF
[QaOps] Git explained | tree structure
PDF
[QaOps] Explicando git | estrutura de árvore
PDF
[QaOps] ]Integração Contínua | Estrategia de pipeline
PDF
[QaOps] Continuouss Integration | Pipeline strategy
PPTX
Quebrando as barreiras DevOps
PDF
Quebrando as barreiras
PDF
Apresentação de Ruby com Watir webdriver
Micro service quality
Qualidade de Software em Micro Serviços
[QaOps] Git explained | tree structure
[QaOps] Explicando git | estrutura de árvore
[QaOps] ]Integração Contínua | Estrategia de pipeline
[QaOps] Continuouss Integration | Pipeline strategy
Quebrando as barreiras DevOps
Quebrando as barreiras
Apresentação de Ruby com Watir webdriver

Último (20)

PPTX
Testes de SFRA em ativos de alta tensão para subestações
PPTX
DOC-20250612-WA0013._20250612_194611_0000.pptx
PDF
Introdução a Logística aula inicial oper
PPTX
Apresentacao_PreProjeto_Doutorado_Jonas_Atualizada em 09 julho 2025.pptx
PPTX
Treinamento Trabalho em Altura area portuaria NR 35.pptx
PPT
Aula02 - Átomos, moléculas, íons, tabela periodica.ppt
PPTX
Aula_02.pptx METROLOGIA E NORMATIZAÇÃO CIEN
PPTX
Apresentação de Sistemas Prediais de agua Fria.pptx
PPTX
NR20 - Treinamento - Iniciacao - Jun 21.pptx
PPTX
Aula 2 - Propriedade Graxas Lubrificantes.pptx
PPTX
TREINAMENTO_ INTEGRAÇÃO_GH_ADMISSIONAL jun_2025.pptx
PDF
10 - Capítulo=O que é o Lean Seis Sigma GB.pdf
PPTX
Aula6 - ESW - Engenharia de requisitos.pptx
PPTX
riscos psicossociais slide para apresentação
PPT
aula-termodinamica-2008 voltado para engenharia
PDF
Motores eletricos assincrono sincrono trifasico
PDF
70 - Capítulo - Estatística Básica Lean.pdf
PPTX
GTA GRUPO 3.pptx um trabalho que aborda sobre como é que é realizada a extraç...
PPT
Custos-da-Qualidade-ou-da-Nao-Qualidade.ppt
PDF
UFCD 5167 - Melhoria da Qualidade - SG qualidade
Testes de SFRA em ativos de alta tensão para subestações
DOC-20250612-WA0013._20250612_194611_0000.pptx
Introdução a Logística aula inicial oper
Apresentacao_PreProjeto_Doutorado_Jonas_Atualizada em 09 julho 2025.pptx
Treinamento Trabalho em Altura area portuaria NR 35.pptx
Aula02 - Átomos, moléculas, íons, tabela periodica.ppt
Aula_02.pptx METROLOGIA E NORMATIZAÇÃO CIEN
Apresentação de Sistemas Prediais de agua Fria.pptx
NR20 - Treinamento - Iniciacao - Jun 21.pptx
Aula 2 - Propriedade Graxas Lubrificantes.pptx
TREINAMENTO_ INTEGRAÇÃO_GH_ADMISSIONAL jun_2025.pptx
10 - Capítulo=O que é o Lean Seis Sigma GB.pdf
Aula6 - ESW - Engenharia de requisitos.pptx
riscos psicossociais slide para apresentação
aula-termodinamica-2008 voltado para engenharia
Motores eletricos assincrono sincrono trifasico
70 - Capítulo - Estatística Básica Lean.pdf
GTA GRUPO 3.pptx um trabalho que aborda sobre como é que é realizada a extraç...
Custos-da-Qualidade-ou-da-Nao-Qualidade.ppt
UFCD 5167 - Melhoria da Qualidade - SG qualidade

BDD em Testes de Serviço