Neste artigo, veremos uma técnica ágil conhecida como o Behaviour Driven Development (ou BDD).

Uma estratégia de teste deve ser uma implementação considerada cuidadosamente com um equilíbrio entre o tempo gasto e os benefícios recebidos.

O que é BDD?

Behaviour Driven Development (BDD ou Desenvolvimento Orientado por Comportamento) é uma técnica de desenvolvimento de software que se baseia em um ciclo curto de repetições. Encorajando a colaboração entre desenvolvedores, QA e negócios, relaciona-se com o conceito de verificação e validação.

Em ambientes Ágil, o BDD desempenha um papel vital porque incentiva fortemente o uso de metodologias Ágeis durante o desenvolvimento e teste.

O BDD consiste em ciclos de um conjunto de etapas a seguir.

  1. Identifique o recurso de negócios;
  2. Identifique cenários sob o recurso selecionado;
  3. Defina as etapas para cada cenário;
  4. Execute o recurso e falhe;
  5. Escreva o código para fazer as etapas passarem;
  6. Refatore o código, crie uma biblioteca de automação reutilizável;
  7. Execute o recurso e passe;
  8. Gere relatórios de teste.

O BDD é uma derivação do TDD, mas os testes são baseados principalmente no comportamento dos sistemas.

TDD encoraja designs de código simples e inspira confiança (Beck, 2003). Deste modo, não é apenas a equipe de desenvolvimento que escreve os cenários de testes, ou seja, nesse processo da escrita dos casos de testes são envolvido o Product Owner (PO), o Quality Anlyst (QA) e o Developer. Assim os melhores resultados são obtidos na descrição dos casos de testes.

Uma abordagem Dado-Quando-Então é normalmente usada para escrever casos de teste.

Enfim, busca-se respostas para algumas questões, como:

Reforçando, portanto, a facilidade trazida pelo BDD na comunicação, veja um modelo de testes do BDD em que cada cenário é dividido em 3 blocos:

Dado: dado um determinado contexto (tem-se determinada reação);

Quando: quando ocorrer algo;

Então: então se espera algo.

Exemplo 1:

Dado uma nova promoção, quando ela for lançada oficialmente, então será enviada uma notificação a um determinado grupo.

Exemplo 2:

Dado: um certo cenário

Quando: uma ação ocorre

Então: Esta deve ser a saída

Dada uma tela de login do iOS:

Exemplo 3:

Dado: O usuário não inseriu sua senha no formulário

Quando: O botão enviar é pressionado

Então: Uma mensagem de falha de validação deve ser exibida

Os praticantes de BDD então usam esse vocabulário para criar um idioma específico de domínio que podem usar para codificar testes de sistema, como Testes de Aceitação do Usuário.

Cada teste é baseado em uma história de usuário escrita formalmente especificado. (Uma linguagem onipresente é um vocabulário compartilhado por todas as partes interessadas.)

Exemplo:

     História: Transferência de dinheiro

     Como usuário,

     Desejo enviar dinheiro
Quero que os saldos da conta corrente sejam atualizados

     Dado que eu tenho R$ 1.000,00 em meu saldo
Quando eu transferir R$ 100,00 para a conta corrente de destino
Então eu deveria ter R$ 900,00 em meu saldo

Independentemente de você praticar ou não todo o processo de BDD, ele contém muitas ideias e práticas excelentes que não devemos perder de vista. Especificamente:

  • A formação de um vocabulário compartilhado que os engenheiros e as partes interessadas podem usar para se comunicar com eficácia sobre as necessidades do usuário e as soluções de software.
  • A criação de histórias de usuário e cenários que ajudam a formular critérios de aceitação e uma definição de pronto para um determinado recurso do software.
  • A prática de colaboração entre usuários, equipe de qualidade, equipe de produto e engenheiros para chegar a um consenso sobre o que a equipe está construindo.

Quais são as vantagens ao escolher o BDD?

  • Critérios de aceitação: podem ser estabelecidos antes do desenvolvimento.
  • Definição do o comportamento do software: mudança para um nível mais alto de abstração (para que mais funções de trabalho possam escrever testes);
  • Melhoria Da Comunicação: geralmente, cada pessoa da equipe trabalha em uma etapa quando se refere a um software. Contudo, com o BDD, developers e testadores (as) trabalham integrados. Assim, a metodologia gera mais compartilhamento de conhecimento.
  • Visão do Todo: com o trabalho realizado de forma integrada, tem-se uma visão de todas as etapas do processo de desenvolvimento e testagem do software.
  • Documentação Dinâmica: as equipes podem documentar mais facilmente o sistema, sem gastar um esforço adicional para isso.

REFERÊNCIAS

Toad Word. Disponível em https://www.toadworld.com/platforms/oracle/b/weblog/archive/2017/03/23/testing-in-an-agile-development-environment-tdd-vs-bdd. Acesso: em 20/11/2021.

Apresentando o BDD. Dan North. Disponível em:  https://dannorth.net/introducing-bdd/. Acesso: 20/11/2021.

Você pode ler a revista online aqui no site ou realizar o download. Para isto basta acessar o menu superior Edição Atual e Anteriores, escolher o ano, rolar a página para encontrar a edição desejada. Clicar no botão Ler Online ou Download.

Ew Sistemas TI.