SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
Cucumber : Características
do arquivo ".feature" e sua
sintaxe
Disciplina: Engenharia de
Software Avançada
Behaviour Driven Development
● Pode ser considerada uma evolução de um conjunto de
boas práticas do TDD.
○ Principal: outside-in - [começar com o teste falhando]
● Testes de aceitação
○ Feedback
○ Unidade = Estamos fazendo certo o produto
○ Aceitação = Estamos fazendo o produto certo
● Exemplos baseados em comportamento
○ Comportamento = Caracteristica = Feature
○ Escrever testes de aceitação como exemplos a fim de
que todos possam lê-los e compreendê-los.
Ok, e se você não vai usar Test- Driven?
● Cucumber facilita outside-in, mas não força
você a usá-la desta forma
● Cucumber fornece testes legíveis e atrativos
para todas as partes do time inclusiva as
não técnicas, o que possibilita a inclusão de
todos neste processo
● Aumento de comunicação, amenizando
ambiguidade
● Especificações executáveis = documentação
viva
● Regressão = garantia
Cucumber
● É uma ferramenta de linha de comando
● Quando rodada, lê os arquivos de texto chamados de feature
(estes escritos em texto plano) e examina os scenarios contidos
nestes arquivos e rodam estes scenarios. Cada cenário contém
uma lista de steps que dizem ao Cucumber o que deve ser feito.
● Cucumber compreende os arquivos .feature porque estes seguem
um conjunto de regras de sintaxe chamado de Gherkin.
● Após a criação da feature, quando rodada, a ferramenta
proporciona um esqueleto para guiar o desenvolvimento do arquivo
que irá conter os step_definitions daquela feature.
● O arquivo contido na pasta support dá definições da configuração
do ambiente de teste, como: webdriver, padrão de seletor, timeout,
bibliotecas de automação...
● Cucumber trabalha com expressões regulares
● "Baby steps"
Abstração Cucumber
Estrutura de pastas
/feature
/step_definititions /supportexemplo1.feature
env.rbexemplo1.rb
exemplo2.rb
exemplo2.feature
Cucumber testing stack
Sintaxe Gherkin
● Feature/Funcionalidade **
○ Todo arquivo gherkin começa com a palavra chave
Feature
○ Neste campo é atribuido o nome da feature e sua
descrição contendo todas as informações consideradas
necessárias para compreender o contexto daquela
estória.
○ Durante a execução ele é ignorado.
**(cenários em português exigem a inserção no inicio do arquivo "# language: pt" e "#enconding : utf -8"
Sintaxe Gherkin
● Feature/Funcionalidade **
Ex:
Feature: Exemplo - Primeira feature.
Este exemplo tem por objetivo contextualizar o que
será descrito ao longo do arquivo como comportamento do sistema, e
que sob esta palavra chave podem ser escritas quantas linhas forem
necessárias.
Aceitando também linhas em branco. Esta feature, irá abordar o
cadastro de clientes de um sistema x, visto que o mesmo só poderá ser
realizado se todos os campos obrigatórios forem preenchidos. Campos
obrigatórios: Nome e CPF.
Sintaxe Gherkin
● Background/Contexto:
○ Sob esta palavra chave são descritos os requisitos para
aquela feature.
Ex:
Contexto:
Dado que eu estou logado como admin
E estou visualizando a página de cadastro de clientes
Sintaxe Gherkin
● Scenario/Cenario:
○ Cada cenário é um exemplo único que demonstra como
o sistema deve se comportar em uma situação em
específica.
Ex:
Cenário: Cadastrar um cliente
Quando eu opto por cadastrar um novo cliente
E insiro o nome como "Adão"
E o CPF "12545666"
E eu cliclo no botão Gravar
Então devo ver "Cliente cadastrado com sucesso!"
Sintaxe Gherkin
● Scenario Outline/ Examples:
○ Aplica técnica data-driven separando os dados do
restante do codigo. Múltiplos dados.
Sintaxe Gherkin
● Estrutura básica
■ Given - Dado [O contexto]
■ When - Quando [O evento]
■ Then - Então [A saída]
----- Outras keywords:
○ But - Mas
○ And - E
○ # comentários....
O símbolo *, pode ser utilizado para
substituir as palavras chave, Given,
When, Then, But e And.. foi criado a fim
de suprir a reclamação do sentido de
'engessamento' que as palavras citadas
pudessem causas
Sintaxe Gherkin
● Uso de bullets
---------------------------------------------------
Funcionalidade: <descrição da
funcionalidade>
Como um <usuário/ator>
Eu quero <meta a ser alcançada>
De modo que <a razão para alcançar a
meta>
Cenário: <descrição do teste>
Dado <um estado conhecido>
Quando <um determinado evento ocorre>
Então <isso deve ocorrer>
cucumber --i18n pt
| name | Portuguese |
| native | português |
| feature | Funcionalidade |
| background | Contexto |
| scenario | Cenário / Cenario |
| scenario_outline | Esquema do Cenário / Esquema do Cenario |
| examples | Exemplos |
| given | * / Dado |
| when | * / Quando |
| then | * / Então / Entao |
| and | * / E |
| but | * / Mas |
Entendendo: Como criar os arquivos
.feature
● Primeiramente, cria-se o diretório chamado
features, e dentro dele irão existir todas os .
feature do projeto (que é um arquivo de
texto).
● Utilizando um editor de texto cria-se o
arquivo texto e o salva como .feature

Mais conteúdo relacionado

Mais procurados

Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
elliando dias
 
Participação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos ScrumParticipação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos Scrum
Gustavo Quezada
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
Ronney Moreira de Castro
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
paulo peres
 

Mais procurados (20)

Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de Serviço
 
Introdução ao BDD com Gherkin
Introdução ao BDD com GherkinIntrodução ao BDD com Gherkin
Introdução ao BDD com Gherkin
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de Programação
 
Participação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos ScrumParticipação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos Scrum
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + selenium
 
Aula 1 - Revisão UML
Aula 1 - Revisão UMLAula 1 - Revisão UML
Aula 1 - Revisão UML
 
Como descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaComo descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma correta
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
Modelagem com historias bem além dos requisitos
Modelagem com historias bem além dos requisitosModelagem com historias bem além dos requisitos
Modelagem com historias bem além dos requisitos
 
CMMI
CMMICMMI
CMMI
 
BDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + JavaBDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + Java
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
Necessidade e comportamento informacional: breve leitura de modelos/Informati...
Necessidade e comportamento informacional: breve leitura de modelos/Informati...Necessidade e comportamento informacional: breve leitura de modelos/Informati...
Necessidade e comportamento informacional: breve leitura de modelos/Informati...
 
Carreira em TI - Começando na direção certa
Carreira em TI - Começando na direção certaCarreira em TI - Começando na direção certa
Carreira em TI - Começando na direção certa
 
Teste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagensTeste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagens
 

Semelhante a Como o Cucumber Funciona

Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 

Semelhante a Como o Cucumber Funciona (20)

BDD com specflow e selenium webdriver
BDD com specflow e selenium webdriverBDD com specflow e selenium webdriver
BDD com specflow e selenium webdriver
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot Framework
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?
 
Specificationby example
Specificationby example Specificationby example
Specificationby example
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
BDD com SpecFlow
BDD com SpecFlowBDD com SpecFlow
BDD com SpecFlow
 
Bdd com spec flow
Bdd com spec flowBdd com spec flow
Bdd com spec flow
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015
 
Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de software
 

Mais de Laís Berlatto

Cucumber - Um breve Review
Cucumber - Um breve ReviewCucumber - Um breve Review
Cucumber - Um breve Review
Laís Berlatto
 
Especificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da InformaçãoEspecificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da Informação
Laís Berlatto
 
Teste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoTeste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso Cognitivo
Laís Berlatto
 

Mais de Laís Berlatto (20)

Cucumber - Um breve Review
Cucumber - Um breve ReviewCucumber - Um breve Review
Cucumber - Um breve Review
 
Testes de usabilidade
Testes de usabilidade Testes de usabilidade
Testes de usabilidade
 
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
 
Ruby
RubyRuby
Ruby
 
E-business
E-businessE-business
E-business
 
Programação Diversitária
Programação DiversitáriaProgramação Diversitária
Programação Diversitária
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
 
Specification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software houseSpecification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software house
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DES
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Amostragem
AmostragemAmostragem
Amostragem
 
Estudo de caso
Estudo de casoEstudo de caso
Estudo de caso
 
Ética hacker
Ética hackerÉtica hacker
Ética hacker
 
Histórico da informática
Histórico da informáticaHistórico da informática
Histórico da informática
 
Especificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da InformaçãoEspecificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da Informação
 
Modelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulênciaModelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulência
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
 
Teste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoTeste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso Cognitivo
 

Último

Último (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Como o Cucumber Funciona

  • 1. Cucumber : Características do arquivo ".feature" e sua sintaxe Disciplina: Engenharia de Software Avançada
  • 2. Behaviour Driven Development ● Pode ser considerada uma evolução de um conjunto de boas práticas do TDD. ○ Principal: outside-in - [começar com o teste falhando] ● Testes de aceitação ○ Feedback ○ Unidade = Estamos fazendo certo o produto ○ Aceitação = Estamos fazendo o produto certo ● Exemplos baseados em comportamento ○ Comportamento = Caracteristica = Feature ○ Escrever testes de aceitação como exemplos a fim de que todos possam lê-los e compreendê-los.
  • 3. Ok, e se você não vai usar Test- Driven? ● Cucumber facilita outside-in, mas não força você a usá-la desta forma ● Cucumber fornece testes legíveis e atrativos para todas as partes do time inclusiva as não técnicas, o que possibilita a inclusão de todos neste processo ● Aumento de comunicação, amenizando ambiguidade ● Especificações executáveis = documentação viva ● Regressão = garantia
  • 4. Cucumber ● É uma ferramenta de linha de comando ● Quando rodada, lê os arquivos de texto chamados de feature (estes escritos em texto plano) e examina os scenarios contidos nestes arquivos e rodam estes scenarios. Cada cenário contém uma lista de steps que dizem ao Cucumber o que deve ser feito. ● Cucumber compreende os arquivos .feature porque estes seguem um conjunto de regras de sintaxe chamado de Gherkin. ● Após a criação da feature, quando rodada, a ferramenta proporciona um esqueleto para guiar o desenvolvimento do arquivo que irá conter os step_definitions daquela feature. ● O arquivo contido na pasta support dá definições da configuração do ambiente de teste, como: webdriver, padrão de seletor, timeout, bibliotecas de automação... ● Cucumber trabalha com expressões regulares ● "Baby steps"
  • 6. Estrutura de pastas /feature /step_definititions /supportexemplo1.feature env.rbexemplo1.rb exemplo2.rb exemplo2.feature
  • 8. Sintaxe Gherkin ● Feature/Funcionalidade ** ○ Todo arquivo gherkin começa com a palavra chave Feature ○ Neste campo é atribuido o nome da feature e sua descrição contendo todas as informações consideradas necessárias para compreender o contexto daquela estória. ○ Durante a execução ele é ignorado. **(cenários em português exigem a inserção no inicio do arquivo "# language: pt" e "#enconding : utf -8"
  • 9. Sintaxe Gherkin ● Feature/Funcionalidade ** Ex: Feature: Exemplo - Primeira feature. Este exemplo tem por objetivo contextualizar o que será descrito ao longo do arquivo como comportamento do sistema, e que sob esta palavra chave podem ser escritas quantas linhas forem necessárias. Aceitando também linhas em branco. Esta feature, irá abordar o cadastro de clientes de um sistema x, visto que o mesmo só poderá ser realizado se todos os campos obrigatórios forem preenchidos. Campos obrigatórios: Nome e CPF.
  • 10. Sintaxe Gherkin ● Background/Contexto: ○ Sob esta palavra chave são descritos os requisitos para aquela feature. Ex: Contexto: Dado que eu estou logado como admin E estou visualizando a página de cadastro de clientes
  • 11. Sintaxe Gherkin ● Scenario/Cenario: ○ Cada cenário é um exemplo único que demonstra como o sistema deve se comportar em uma situação em específica. Ex: Cenário: Cadastrar um cliente Quando eu opto por cadastrar um novo cliente E insiro o nome como "Adão" E o CPF "12545666" E eu cliclo no botão Gravar Então devo ver "Cliente cadastrado com sucesso!"
  • 12. Sintaxe Gherkin ● Scenario Outline/ Examples: ○ Aplica técnica data-driven separando os dados do restante do codigo. Múltiplos dados.
  • 13. Sintaxe Gherkin ● Estrutura básica ■ Given - Dado [O contexto] ■ When - Quando [O evento] ■ Then - Então [A saída] ----- Outras keywords: ○ But - Mas ○ And - E ○ # comentários.... O símbolo *, pode ser utilizado para substituir as palavras chave, Given, When, Then, But e And.. foi criado a fim de suprir a reclamação do sentido de 'engessamento' que as palavras citadas pudessem causas
  • 15. --------------------------------------------------- Funcionalidade: <descrição da funcionalidade> Como um <usuário/ator> Eu quero <meta a ser alcançada> De modo que <a razão para alcançar a meta> Cenário: <descrição do teste> Dado <um estado conhecido> Quando <um determinado evento ocorre> Então <isso deve ocorrer>
  • 16. cucumber --i18n pt | name | Portuguese | | native | português | | feature | Funcionalidade | | background | Contexto | | scenario | Cenário / Cenario | | scenario_outline | Esquema do Cenário / Esquema do Cenario | | examples | Exemplos | | given | * / Dado | | when | * / Quando | | then | * / Então / Entao | | and | * / E | | but | * / Mas |
  • 17. Entendendo: Como criar os arquivos .feature ● Primeiramente, cria-se o diretório chamado features, e dentro dele irão existir todas os . feature do projeto (que é um arquivo de texto). ● Utilizando um editor de texto cria-se o arquivo texto e o salva como .feature