Gherkin
O Gherkin é uma linguagem de domínio específico, usada para descrever o comportamento de uma aplicação de maneira simples e legível para humanos.
É amplamente utilizada em práticas de Behavior-Driven Development (BDD) para especificar requisitos e cenários de teste, facilitando a comunicação entre todos os membros da equipa — técnicos e não técnicos.
A linguagem Gherkin destaca-se pela sua simplicidade e por ser escrita numa estrutura padronizada, usando expressões como "Dado" (Given), "Quando" (When) e "Então" (Then) para criar cenários que refletem o comportamento esperado da aplicação.
Principais características do Gherkin
Linguagem natural estruturada:
O Gherkin é projetado para que todos possam entender, mesmo sem um background técnico. Adopta uma sintaxe de frases simples, como “Dado” para descrever o contexto, “Quando” para a ação, e “Então” para o resultado esperado.
Padronização e consistência:
Segue uma estrutura muito específica, que facilita a leitura e compreensão dos cenários, mantendo-os consistentes. A estrutura geralmente segue o formato "Funcionalidade", "Cenário", e depois cada passo do cenário: "Dado", "Quando", "Então", além de "E" e "Mas" para adicionar mais detalhes.
Especificação de cenários de comportamento:
Com o Gherkin, é possível descrever diferentes cenários de utilização do sistema de forma que estes sirvam como requisitos e possam ser convertidos em testes. Estes cenários representam comportamentos esperados e ajudam a garantir que o desenvolvimento atenda aos requisitos.
Suporte multi-lingua:
O Gherkin é projetado para suportar várias línguas, permitindo que equipas de diferentes regiões geográficas possam escrever cenários no seu idioma nativo.
Automação de testes:
O Gherkin é compatível com ferramentas de automação como Cucumber, SpecFlow e Behave, que interpretam os cenários escritos em Gherkin e os mapeiam para scripts de teste automatizados, facilitando a automação e manutenção dos testes ao longo do desenvolvimento.
Exemplo de um cenário em Gherkin
Cenário simples em Gherkin, para uma funcionalidade de login:
Funcionalidade: Login de Utilizador Como um utilizador autenticado Eu quero fazer login no sistema Para aceder às funcionalidades restritas Cenário: Login com credenciais válidas Dado que o utilizador está na página de login Quando o utilizador insere o username "utilizador" e password "senha123" E clica no botão de login Então o utilizador é redirecionado para a página inicial E uma mensagem de boas-vindas é exibida
Principais componentes do Gherkin
Funcionalidade: Descreve o objetivo geral de uma funcionalidade para o utilizador ou o negócio.
Cenário: Representa um caso de uso específico ou situação que se deseja verificar.
Dado: Define o contexto inicial ou o estado do sistema antes da acção.
Quando: Descreve a acção que o utilizador ou o sistema realiza.
Então: Define o resultado esperado após a acção.
E/Mas: São usados para adicionar mais detalhes e passos dentro do contexto de "Dado", "Quando" e "Então".
Em resumo, o Gherkin é uma linguagem orientada a comportamento que permite descrever funcionalidades e cenários de forma clara e organizada.
A sua simplicidade e compatibilidade com ferramentas de automação tornam-no essencial em práticas de BDD, ajudando a transformar requisitos de negócio em especificações que podem ser verificadas e testadas continuamente.