Como o Cucumber Funciona

3.228 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.228
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
62
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Como o Cucumber Funciona

  1. 1. Cucumber : Características do arquivo ".feature" e sua sintaxe Disciplina: Engenharia de Software Avançada
  2. 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. 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. 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"
  5. 5. Abstração Cucumber
  6. 6. Estrutura de pastas /feature /step_definititions /supportexemplo1.feature env.rbexemplo1.rb exemplo2.rb exemplo2.feature
  7. 7. Cucumber testing stack
  8. 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. 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. 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. 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. 12. Sintaxe Gherkin ● Scenario Outline/ Examples: ○ Aplica técnica data-driven separando os dados do restante do codigo. Múltiplos dados.
  13. 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
  14. 14. Sintaxe Gherkin ● Uso de bullets
  15. 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. 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. 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

×