O que é BDD?

O que é BDD?

O BBD é a sigla utilizada para o termo Behavior Driven Development (Desenvolvimento guiado por comportamento). Muitas equipes de desenvolvimento de software vêm aplicando o uso do BDD como forma de documentação das regras de negócio e comportamento do sistema. Podemos definir esta prática como uma cultura de desenvolvimento.

Quando mencionamos a palavra cultura pode parecer exagero para alguns, no entanto, para que a metodologia funcione a equipe precisa comprar as ideias propostas pelo BDD e vivenciá-las diariamente. Conversar, alinhar, compartilhar conhecimento e, sobretudo, trabalhar em equipe são ações essenciais no uso da prática.

Nos tempos atuais onde a cultura ágil vem ganhando força e se estabelecendo como metodologia a ser utilizada pela grande maioria das empresas, o uso do BDD se mostra essencial por sua praticidade.

Já imaginou ter uma especificação de software com a escrita mais próxima da linguagem natural, onde toda equipe contribui para a elaboração e que seja compreensível para todos? Foram com essas ideias que surgiu o BDD. Especificar o software com a visão mais voltada ao negócio, mostrando “o que” e não “como” deve ser feito e qual será o comportamento do sistema a partir de determinado evento ou ação, permite que pessoas não técnicas participem, contribuam e mostre sua percepção para o desenvolvimento do software.

Automação de Testes com BDD

Você já escutou as expressões “Vamos automatizar com testes usando BDD?”, “Estamos utilizando BDD para automação de testes”, entre outras que dizem que BDD é uma forma de testes? Pois bem, vamos desmistificar o que realmente é BDD e como essa prática pode ajudar no desenvolvimento dos nossos projetos.

Muitas vezes associados como uma forma de automação de testes, o BDD engloba o projeto como um todo. Testes aqui é uma parte da engrenagem e automação é uma consequência

O uso da escrita de BDD traz benefícios para toda equipe, principalmente para quem realiza automação de testes, pois há reaproveitamento na criação dos cenários automatizados, garantindo a qualidade da entrega de forma ágil.

Outras das vantagens do uso do BDD para o desenvolvimento de testes automatizados é a rastreabilidade do código, pois sempre que for necessário atualizar um dos passos, todos os cenários que utilizam do mesmo deverão ser refatorados, gerando sempre prática de melhoria/manutenção dos testes no sistema, agregando valor a qualidade da entrega.

As principais vantagens para o uso desse método são:

Reutilização do código no modelo de “Passos”, também conhecido como Step Definitions.

Facilidade na manutenção/atualização de um trecho de código.

Cenários de teste descrevendo o comportamento do sistema de acordo com as regras de negócio (documentação).

Uso de linguagem de alto nível, facilitando o entendimento da funcionalidade a ser homologada e seus cenários de teste.

Não é regra, porém muitas equipes escrevem seus BDD’s na fase de refinamento de uma estória, contando com a participação de todos da equipe, agregando o conhecimento da funcionalidade.

Entrando em uma parte mais técnica, podemos definir o uso do BDD através de alguns passos.

Criação da feature;

- A feature é o documento “vivo” onde o comportamento desejado para funcionamento ideal da funcionalidade deverá ser descrito, por exemplo:

A partir da descrição da funcionalidade, iremos escrever nossos cenários de teste, baseados nas regras de negócio/comportamento do sistema.

Sempre que escrevemos o BDD com as regras de negócio, utilizamos as seguintes palavras chaves;

Dado;

Quando;

Então;

A palavra Dado representa uma condição, Quando nos apresenta uma ação e o Então nos retorna uma consequência ou comportamento que meu sistema terá com aquela determinada ação mencionada anteriormente. Este padrão é chamado Gherkin e tem como objetivo ter um foco maior no negócio e não no passo a passo que o ator precisa fazer no sistema para chegar no resultado esperado.

Conforme dito anteriormente, utilizando uma linguagem de alto nível, podemos ter uma documentação viva da funcionalidade, onde todos da equipe poder ter a total compreensão de como a funcionalidade deve ser executada.

A partir da escrita do cenário de teste, iremos gerar nossos Passos (Step Definitios), que serão utilizados para os desenvolvedores do teste automatizado transcrever os códigos que resultarão no cenário automatizado.

É possível segmentar os cenários de teste utilizando a tag @, dessa maneira podemos criar uma ordem de prioridade para execução. Podemos executar apenas os testes com a tag @X, por exemplo, ou somente os testes com a tag @Y, isso nos dá a possibilidade de dividirmos os testes de api, web, mobile, smoke testes, testes de exceção, entre outros.

Podemos concluir que agregar o passo de execução de testes automatizados dentro do ciclo de vida de desenvolvimento de software fazendo o uso das boas práticas propostas pelo BDD nos proporciona agilidade, facilidade e qualidade das entregas.

O que achou do BDD? Gostaria de implementar essa cultura em sua empresa? Entre em contato com a Atomic Solutions, temos profissionais que te ajudarão a incluir essa metodologia no dia a dia de sua equipe.

Escrito por
Caio Duarte e Rogério Duarte.

Comentários

Escreva seu Comentário

Obs.: Seu email não será divulgado.