SlideShare uma empresa Scribd logo
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

Asynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with NettyAsynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with Netty
Ersin Er
 
CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性
CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性 CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性
CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性
Katsuhisa Ogawa
 
Implantação e Manutenção de Softwares
Implantação e Manutenção de SoftwaresImplantação e Manutenção de Softwares
Implantação e Manutenção de Softwares
Marcelo Schumacher
 
Qlik Replicate のインストール
Qlik Replicate のインストールQlik Replicate のインストール
Qlik Replicate のインストール
QlikPresalesJapan
 
TECHTALK 20201020 Qlik DataTransferによるクラウド版Qlik Senseへのデータ転送・更新の自動化
TECHTALK 20201020 Qlik DataTransferによるクラウド版Qlik Senseへのデータ転送・更新の自動化TECHTALK 20201020 Qlik DataTransferによるクラウド版Qlik Senseへのデータ転送・更新の自動化
TECHTALK 20201020 Qlik DataTransferによるクラウド版Qlik Senseへのデータ転送・更新の自動化
QlikPresalesJapan
 
Automação de Testes Mitos e Verdades
Automação de Testes Mitos e VerdadesAutomação de Testes Mitos e Verdades
Automação de Testes Mitos e Verdades
Qualister
 
Definição e classificação dos requisitos
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitos
ETEIT - Escola Técnica da Univale
 
iMovR Lander Lite - ANSI/BIFMA X5.5-2014 Certification
iMovR Lander Lite - ANSI/BIFMA X5.5-2014 CertificationiMovR Lander Lite - ANSI/BIFMA X5.5-2014 Certification
iMovR Lander Lite - ANSI/BIFMA X5.5-2014 Certification
iMovR
 
Get ready for Jamstack with Sitecore Experience Edge
Get ready for Jamstack with Sitecore Experience EdgeGet ready for Jamstack with Sitecore Experience Edge
Get ready for Jamstack with Sitecore Experience Edge
VarunNehra
 
Automação de testes BDD e ATDD
Automação de testes BDD e ATDDAutomação de testes BDD e ATDD
Automação de testes BDD e ATDD
Qualister
 
Dominoアクセスサービスを使用したRESTサービスのプレイブック
Dominoアクセスサービスを使用したRESTサービスのプレイブックDominoアクセスサービスを使用したRESTサービスのプレイブック
Dominoアクセスサービスを使用したRESTサービスのプレイブック
Mitsuru Katoh
 
DDD 준비 서문래
DDD 준비 서문래DDD 준비 서문래
DDD 준비 서문래
beom kyun choi
 

Mais procurados (12)

Asynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with NettyAsynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with Netty
 
CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性
CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性 CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性
CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性
 
Implantação e Manutenção de Softwares
Implantação e Manutenção de SoftwaresImplantação e Manutenção de Softwares
Implantação e Manutenção de Softwares
 
Qlik Replicate のインストール
Qlik Replicate のインストールQlik Replicate のインストール
Qlik Replicate のインストール
 
TECHTALK 20201020 Qlik DataTransferによるクラウド版Qlik Senseへのデータ転送・更新の自動化
TECHTALK 20201020 Qlik DataTransferによるクラウド版Qlik Senseへのデータ転送・更新の自動化TECHTALK 20201020 Qlik DataTransferによるクラウド版Qlik Senseへのデータ転送・更新の自動化
TECHTALK 20201020 Qlik DataTransferによるクラウド版Qlik Senseへのデータ転送・更新の自動化
 
Automação de Testes Mitos e Verdades
Automação de Testes Mitos e VerdadesAutomação de Testes Mitos e Verdades
Automação de Testes Mitos e Verdades
 
Definição e classificação dos requisitos
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitos
 
iMovR Lander Lite - ANSI/BIFMA X5.5-2014 Certification
iMovR Lander Lite - ANSI/BIFMA X5.5-2014 CertificationiMovR Lander Lite - ANSI/BIFMA X5.5-2014 Certification
iMovR Lander Lite - ANSI/BIFMA X5.5-2014 Certification
 
Get ready for Jamstack with Sitecore Experience Edge
Get ready for Jamstack with Sitecore Experience EdgeGet ready for Jamstack with Sitecore Experience Edge
Get ready for Jamstack with Sitecore Experience Edge
 
Automação de testes BDD e ATDD
Automação de testes BDD e ATDDAutomação de testes BDD e ATDD
Automação de testes BDD e ATDD
 
Dominoアクセスサービスを使用したRESTサービスのプレイブック
Dominoアクセスサービスを使用したRESTサービスのプレイブックDominoアクセスサービスを使用したRESTサービスのプレイブック
Dominoアクセスサービスを使用したRESTサービスのプレイブック
 
DDD 준비 서문래
DDD 준비 서문래DDD 준비 서문래
DDD 준비 서문래
 

Semelhante a Como o Cucumber Funciona

BDD com specflow e selenium webdriver
BDD com specflow e selenium webdriverBDD com specflow e selenium webdriver
BDD com specflow e selenium webdriver
Cristian Mathias
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
Uilian Ries
 
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
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
Rodrigo Matola
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?
Wellington Moreira
 
Specificationby example
Specificationby example Specificationby example
Specificationby example
Laís Berlatto
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
Elaine Cecília Gatto
 
Bdd com spec flow
Bdd com spec flowBdd com spec flow
Bdd com spec flow
Cintia Armesto
 
BDD com SpecFlow
BDD com SpecFlowBDD com SpecFlow
BDD com SpecFlow
Altamir Junior Dias
 
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
Renato Groff
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
Bárbara Cabral da Conceição, CTFL
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
diegomcunha
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
João Lourenço
 
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
Walmyr Lima e Silva Filho
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
Renato Groff
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015
Renato Groff
 
Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.
Franklin Araujo SMAC™ ASTAC™ SFC™
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
Rodrigo Aurélio
 
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
Felipe
 

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 spec flow
Bdd com spec flowBdd com spec flow
Bdd com spec flow
 
BDD com SpecFlow
BDD com SpecFlowBDD com SpecFlow
BDD com SpecFlow
 
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
 
Testes de usabilidade
Testes de usabilidade Testes de usabilidade
Testes de usabilidade
Laís Berlatto
 
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...
Laís Berlatto
 
Ruby
RubyRuby
E-business
E-businessE-business
E-business
Laís Berlatto
 
Programação Diversitária
Programação DiversitáriaProgramação Diversitária
Programação Diversitária
Laís Berlatto
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
Laís Berlatto
 
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
Laís Berlatto
 
Bluetooth
BluetoothBluetooth
Bluetooth
Laís Berlatto
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Laís Berlatto
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DES
Laís Berlatto
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
Laís Berlatto
 
Amostragem
AmostragemAmostragem
Amostragem
Laís Berlatto
 
Estudo de caso
Estudo de casoEstudo de caso
Estudo de caso
Laís Berlatto
 
Ética hacker
Ética hackerÉtica hacker
Ética hacker
Laís Berlatto
 
Histórico da informática
Histórico da informáticaHistórico da informática
Histórico da informática
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
 
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
Laís Berlatto
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
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

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 

Último (8)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 

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