BDD: Garantindo Qualidade com Dado / Quando / Então

Behavior Driven Development (BDD) conecta negócio, desenvolvimento e QA por meio de cenários legíveis que descrevem o comportamento esperado do sistema.

O que é BDD?

BDD (Behavior Driven Development) evoluiu a partir do TDD e tem foco em descrever o comportamento do sistema em linguagem que todos — produto, desenvolvedores e QA — entendam. Ao escrever cenários claros e baseados em exemplos, o time reduz riscos de entendimento e transforma requisitos em testes automatizáveis.

Estrutura do BDD: Dado / Quando / Então

A linguagem Gherkin é usada para escrever cenários legíveis e padronizados. Cada cenário segue a estrutura:

  • DADO — contexto inicial (estado do sistema)
  • QUANDO — ação realizada pelo usuário
  • ENTÃO — resultado esperado

Exemplo em Gherkin

Funcionalidade: Login de Usuário

Cenário: Login com credenciais válidas
  Dado que o usuário está na página de login
  Quando ele preenche usuário e senha corretamente
  Então o sistema deve redirecionar para a tela inicial

Ferramentas que suportam BDD

As ferramentas BDD ligam a escrita em Gherkin ao código de automação. Exemplos populares:

  • Cucumber — Java, JavaScript, Ruby (ampla adoção)
  • Behave — Python
  • SpecFlow — .NET / C#
  • Robot Framework (com GherkinLibrary) — Python

Benefícios do BDD

  • Comunicação clara entre negócio e técnica
  • Redução de falhas de entendimento
  • Cenários reutilizáveis e documentados
  • Automação integrada a pipelines CI/CD
  • Documentação viva do comportamento do sistema

Boas práticas

  • Escrever cenários do ponto de vista do usuário
  • Usar linguagem simples e objetiva (sem detalhes técnicos)
  • Manter cenários curtos e focados (1 comportamento por cenário)
  • Revisar cenários com Product Owner antes da automação

Exemplo prático adicional

Funcionalidade: Cadastro de Usuário

Cenário: Cadastro realizado com sucesso
  Dado que o usuário acessa o formulário de cadastro
  Quando ele preenche todos os campos obrigatórios corretamente
  Então o sistema deve exibir uma mensagem de sucesso

Esse cenário pode ser ligado a passos implementados em Cucumber, Behave ou Robot Framework e executado como teste automatizado em pipelines CI.

Conclusão

O BDD é uma prática poderosa para unificar entendimento e automatizar cenários de teste a partir de exemplos reais. Antes de automatizar, valide os cenários com o time de produto — o objetivo não é código, mas comportamento compartilhado.

Deixe um comentário