17
Cucumber : Características do arquivo ".feature " e sua sintaxe Disciplina: Engenharia de Software Avançada

Como o Cucumber Funciona

Embed Size (px)

DESCRIPTION

Como a ferramenta para automação de teste de software Cucumber funciona

Citation preview

Page 1: Como o Cucumber Funciona

Cucumber : Características do arquivo ".feature" e sua sintaxe

Disciplina: Engenharia de Software Avançada

Page 2: Como o Cucumber Funciona

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.

Page 3: Como o Cucumber Funciona

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

Page 4: Como o Cucumber Funciona

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"

Page 5: Como o Cucumber Funciona

Abstração Cucumber

Page 6: Como o Cucumber Funciona

Estrutura de pastas

/feature

/step_definititions /supportexemplo1.feature

env.rbexemplo1.rb

exemplo2.rb

exemplo2.feature

Page 7: Como o Cucumber Funciona

Cucumber testing stack

Page 8: Como o Cucumber Funciona

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"

Page 9: Como o Cucumber Funciona

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.

Page 10: Como o Cucumber Funciona

Sintaxe Gherkin

● Background/Contexto:○ Sob esta palavra chave são descritos os requisitos para

aquela feature.Ex:

Contexto:Dado que eu estou logado como adminE estou visualizando a página de cadastro de clientes

Page 11: Como o Cucumber Funciona

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 clienteQuando eu opto por cadastrar um novo clienteE insiro o nome como "Adão"E o CPF "12545666"E eu cliclo no botão GravarEntão devo ver "Cliente cadastrado com sucesso!"

Page 12: Como o Cucumber Funciona

Sintaxe Gherkin

● Scenario Outline/ Examples:

○ Aplica técnica data-driven separando os dados do restante do codigo. Múltiplos dados.

Page 13: Como o Cucumber Funciona

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

Page 14: Como o Cucumber Funciona

Sintaxe Gherkin● Uso de bullets

Page 15: Como o Cucumber Funciona

---------------------------------------------------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>

Page 16: Como o Cucumber Funciona

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 |

Page 17: Como o Cucumber Funciona

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