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.
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.
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.
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.
Para criar cenários de teste utilizando BDD usaremos as palavras chaves:
Veja como estas palavras chaves devem ser utilizadas:
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.