BDD (Behavior Driven Development) é uma técnica utilizada para integrar regras de negócios e linguagem de programação, caracterizando-se por um vocabulário bem específico e pequeno, que minimiza as dificuldades de comunicação e possibilita todos os membros do time utilizarem uma mesma linguagem para realizar o trabalho.
O BDD vem sendo cada vez mais utilizado por permitir:
- Que negócio e tecnologia se refiram a funcionalidades do software de uma só forma;
- A visualização do valor de cada funcionalidade do software para o negócio;
- Analisar, projetar e planejar tudo de cima a baixo sem retorno decrescente;
- Compartilhamento de conhecimento entre analistas, desenvolvedores e testers;
- Promover uma documentação dinâmica do software sem qualquer esforço a mais.
Com a utilização dos BDD’s, é possível unir diversas práticas ágeis para um desenvolvimento qualitativo, sugerindo que analistas/testadores escrevam os cenários antes mesmo que a implementação aconteça, possibilitando assim, que os desenvolvedores tenham uma visão geral do projeto antes de codificá-lo.
O BDD durante o Teste do Software
Na metodologia do BDD o analista de testes consegue planejar e criar os seus testes antes mesmo do desenvolvimento ser iniciado, assim, quebramos o paradigma de que o BDD seria aplicado como uma camada durante o desenvolvimento e passamos a vê-lo como um processo completo durante todo o projeto.
Escrevendo seu teste funcional utilizando BDD
O planejamento e a escrita dos seus testes funcionais com a semântica do BDD é uma atividade importante, pois é a partir dessa etapa que você irá criar uma documentação viva que será utilizada por todos os membros do seu time.
Qual é a semântica do BDD?
Para criar cenários de teste utilizando BDD usaremos as palavras chaves:
- Dado (Given);
- Quando (When);
- Então (Then).
Veja como estas palavras chaves devem ser utilizadas:
- Dado: Define as pré-condições verdadeiras para executar o seu teste
- Quando: Define a ação que será executada
- Então: Seguindo a ação descrita no QUANDO define o resultado esperado para o seu teste
- E: adiciona uma sentença positiva no Dado, no Quando ou no Então.
Ferramentas e as extensões usadas para a escrita do BDD
BDD (Behaviour Driven Development) se tornou uma disciplina fundamental para incrementar a testabilidade de software. As boas práticas de TDD (Test Driven Development) ensinam que um método como este deveria ser implementado e evoluído ao longo do teste e o DDD (Domain Driven Development) a um novo patamar, permitindo especificar a inteligência de negócio no código. Vai em linha com a ideia de testar antes da aplicação ficar pronta.
JBehave é um framework de testes para BDD. A filosofia que levou a sua criação é a mesma que originou o desenvolvimento orientado por comportamento, ou seja, facilitar a comunicação dos requisitos de negócio entre as partes interessadas e a equipe de desenvolvimento, e permitir que estes comportamentos sejam verificados de forma automática através de integração contínua.
O Cucumber é a ferramenta que torna possível especificar o comportamento esperado do software durante a codificação e posteriormente usar esses cenários de testes para averiguar o comportamento obtido. Entregar um aplicativo com inteligência de testes embutida no código aporta valor principalmente em testes regressivos e de aceite.
Ter estas ferramentas à disposição já é um bom norte para os stakeholders que pretendem adotar a automação de testes em seus projetos digitais.
Algumas empresas não utilizam essa metodologia, de documentar o sistema, pois a manutenção destes artefatos é custosa. Mas a Eteg com uma visão criteriosa, analisando em detalhes o melhor cenário, pretende começar a utilizar os frameworks de BDD, pois estes artefatos são gerados dinamicamente sem nenhum esforço adicional. Alguns, inclusive, geram relatórios em formato HTML, o que irá facilitar uma consulta posterior.
Se você tiver alguma dúvida a respeito dessa metodologia, deixa nos comentários que tentaremos esclarecer.