Linguagens Naturais: O BDD e a Sintaxe Gherkin

Linguagens Naturais: O BDD e a Sintaxe Gherkin

Entenda como as linguagens naturais, tais como BDD e da Sintaxe Gherkin, são importantes para garantir a qualidade do projeto em um processo de testes.

A cada dia que passa a tecnologia avança no sentido de trazer ferramentas sofisticadas cada vez mais ao alcance e entendimento dos chamados usuários comuns, que são os usuários de tecnologia que propriamente não estudaram a fundo tecnologia para sua formação profissional, apenas a consumindo em seus respectivos ramos de trabalho. Os grandes players de tecnologia no mundo estão aprendendo que, cada vez mais, serão justamente esses usuários que realmente devem ser o alvo de seus serviços e eliminar intermediários será um meio mais lógico e lucrativo e estão já a algum tempo, por meio de processos heurísticos desenvolvendo cada vez mais ferramentas de criação “user friendly” para que isso um dia se torne realmente realidade, relegando os desenvolvedores então a cargos bem mais especializados e de bem mais alto nível.

Um destes esforços são as chamadas linguagens naturais, tais como o YAML e o Python que chegam quase lá, mas ainda requerem um tanto de conhecimento de codificação. Mas existem também processos linguísticos e até um tanto semióticos que procuram fornecer uma emulação do comportamento do usuário em forma de linguagem natural pura e simples, sendo a sua identação a chave para sua organização e funcionamento, tais como o BDD e a sintaxe Gherkin.

O BDD, afinal o que é?

O Chamado Behavior Driven Development ou em uma tradução livre, desenvolvimento orientado pelo comportamento, é o processo que visa unir tanto as áreas técnicas quanto não técnicas, geralmente as detentoras das regras de negócios, na criação de métodos de validação em testes de sistemas onde haja mais sinergia entre as visões, garantindo assim uma maior qualidade no projeto como um todo. Ele é usado para criar casos de testes onde sua lógica permite um maior e mais fácil entendimento para todos (aliás esse é um dos conceitos pilares do DevOps). E esse processo geralmente usado tendo como base a Sintaxe de Gherkin, que é uma espécie de sintaxe que apoia essa lógica de escrita e aplicação do processo BDD.

Esse processo é muito útil para que se tenha um entendimento tal dos testes que serão criados e que podem ser iniciados com processos manuais e muito facilmente serem automatizados sem tanto esforço por conflitos de entendimentos, já que tende a eliminar a “torre de babel” que geralmente ocorre entre as áreas envolvidas.

A criação dos cenários em BDD é feita através da “quebra” de um requisito dentro do contexto e necessidade para gerar cenários de teste que darão o resultado esperado. Usa-se uma identação logica com as palavras Dado que, QuandoEntão e, ocasionalmente, Deve, para então, dentro de um determinado contexto, gerar um cenário.

Abaixo, um mapa de identação de uso do BDD com a sintaxe de Gherkin

Estrutura Básica de Sintaxe para o Gherkin para o BDD

  • Dado (O Contexto)
  • Quando (O Evento)
  • Então (A Saída)

Palavras-chaves auxiliares

  • Mas
  • E
  • # (Comentários durante a escrita do roteiro)

Vejam que, no frigir dos ovos, a escrita desta forma é como escrever um roteiro de filme ou de uma história, separando o contexto da cena, os atores e as situações, utilizando meramente processos de linguística pura, sem ainda precisar entender de programação. Existem várias ferramentas especializadas que vão, de certa forma, traduzir este roteiro para linguagem de programação dentro de um plano de testes, e isso é extremamente útil para testes automatizados, onde ai sim envolve um certo montante de codificação, que irá variar de acordo com a complexidade do cenário, mas, com esse processo já feito desde o começo, ganhamos mais tração na manufatura do restante.

Ex: Controle de estoque de carros de aluguel

#Cenário para Teste de retirada do carro do pátio
Cenário A: Carros no pátio podem ser alugados
Dado que um cliente aluga um carro
E eu tenho cinco carros no pátio disponíveis
Quando ele aluga o carro
Então eu devo ter quatro carros disponíveis no pátio

#Cenário para a devolução e carro alugado
Cenário B: Carros alugados devem voltar ao pátio
Dado que um carro está alugado e eu tenho cinco carros
E o cliente deve devolver o Carro alugado
Quando ele devolve o carro
Então eu devo ter cinco carros disponíveis no pátio

Obviamente os cenários acima descritos são bem simples, mas servem para descrever como o processo é intuitivo e fácil de ser compreendido até porque não tem noção de linguagem de programação. Isso é muito útil não só para os profissionais de testes, mas também para os P. Os e mesmo para os usuários de qualquer negócio, que podem participar ativamente de todo um processo de testes e, com suas visões únicas e esse conhecimento, garantir ainda mais a qualidade do que está sendo conduzido.

Fernando Gomes

Fernando Gomes