Desenvolvimento Orientado ao Comportamento (BDD)
É uma metodologia de desenvolvimento de software que enfatiza a colaboração, a comunicação e
um entendimento compartilhado entre as partes interessadas, incluindo desenvolvedores,
testadores e representantes de negócios. Ele se concentra em definir os comportamentos e os
resultados desejados de um sistema de software por meio do uso de cenários escritos em linguagem
natural.
O BDD gira em torno do conceito de “comportamento” e usa linguagem estruturada, como Gherkin,
(leia o conteúdo no início desse texto para você aprender e para descrever o comportamento
esperado do sistema, de forma que possa ser entendido por partes interessadas técnicas e não
técnicas).
O ciclo BDD passa pela escrita de um cenário de validação, automatizado, para, em seguida, a criação
dos testes de unidade, fazer o teste passar e por fim refatorar.
Ele promove uma abordagem colaborativa para o desenvolvimento de software, no qual
desenvolvedores, testadores e representantes de negócios trabalham juntos para definir e validar o
comportamento do sistema.
A seguir, vamos ver como fica isso em um exemplo simples.
Processo de Checkout (Pagamento no “Caixa”) de um Comércio Eletrônico
Cenário: Colocação Bem-sucedida do Pedido
Dado que um cliente selecionou itens para compra;
Quando o cliente procede ao pagamento no caixa virtual;
Em seguida, o cliente deve fornecer informações de envio e pagamento;
O sistema deve processar o pedido;
O cliente deve receber uma confirmação do pedido.
Nesse exemplo, o cenário descreve o comportamento do processo de pagamento no caixa virtual
do sistema de comércio eletrônico. Ele começa com o estado inicial (Dado), em que um cliente
selecionou itens para compra. As etapas subsequentes (Quando, então) descrevem as ações e os
resultados esperados do sistema. O cenário foca no comportamento desejado, enfatizando o que o
sistema deve fazer e os resultados esperados.
Ao escrever cenários em linguagem natural, o BDD facilita uma compreensão compartilhada dos
resultados esperados do software. Esses cenários servem como especificações executáveis que
orientam o processo de desenvolvimento e teste, garantindo que o software atenda aos
comportamentos e aos objetivos desejados.
Certo. Agora, vamos ver como podemos extrair classes desse modelo estruturado, o BDD. Porém,
isso envolverá analisar os comportamentos descritos nos cenários e identificar as entidades e suas
interações dentro do sistema, conforme apresentado a seguir.
Sistema Bancário
Cenário: Consulta de Saldo de Conta:
Dado que um cliente tem uma conta bancária;
Quando o cliente solicita uma consulta de saldo da conta;
Em seguida, o sistema deve recuperar o saldo da conta;
E o mostra ao cliente.