“`html
BDD • prática pragmática • confiabilidade
Erros comuns em BDD que você deve evitar
BDD ajuda a alinhar comportamento e intenção do sistema, mas só funciona bem quando os cenários são
claros, estáveis e mantidos como parte do produto — não como uma “camada extra” que degrada o projeto.
1) Escrever cenários longos demais (fatiar é qualidade)
- Reduza o escopo: cada cenário deve validar uma regra de negócio específica.
- Evite “workflows completos” em uma única execução: prefira passos menores e combináveis.
- Dê nome a intenções: se o teste tem muitas condições, provavelmente você está misturando responsabilidades.
- Quando necessário, crie mais cenários para variações (ex.: sucesso, rejeição, limite, reprocessamento).
2) Tratar BDD como teste de implementação (linguagem do domínio, sempre)
- Evite detalhes técnicos como nomes de tabelas, colunas, rotas internas e classes.
- Prefira verbos e conceitos do domínio: “o pedido é aprovado”, “a senha é redefinida”, “o pagamento é recusado”.
- Consistência de vocabulário: se o domínio chama de “assinatura”, não misture com “plano” no meio dos cenários.
- Se a frase começa a explicar a arquitetura, você perdeu o foco.
3) Tornar cenários frágeis (dados, tempo e ambiente)
- Controle o tempo: cenários que dependem de “agora” e fuso horário tendem a quebrar.
- Use dados determinísticos: evite geração aleatória sem seed e cenários que dependem de ordem de execução.
- Isolamento de estado: cada cenário deve começar de um estado conhecido (limpar/seed por execução).
- Evite dependências externas sempre que possível (serviços, filas, integrações). Quando não der, isole e trate falhas previsivelmente.
- Reduza “asserts indiretos”: confirme o resultado de negócio, não efeitos colaterais inesperados.
Feature: Cadastro de usuário
Scenario: E-mail não pode ser reutilizado
Given que não existe um usuário com o e-mail "ana@exemplo.com"
When o usuário tenta cadastrar com o e-mail "ana@exemplo.com"
Then o cadastro deve ser recusado
And o sistema deve exibir a mensagem "E-mail já cadastrado"
4) Ignorar a manutenção (passos, regras e evolução do produto)
- Passos reutilizáveis devem ser genéricos o suficiente, mas não “mágicos”. Se um passo funciona para um único caso, ele merece ser específico.
- Evite passos com múltiplas responsabilidades: “Given o usuário está pronto” pode esconder lógica demais.
- Evolua os cenários junto com a regra: se o domínio muda, ajuste o BDD para refletir a nova intenção — não “conserte” o teste para passar.
- Crie cobertura para regras novas, não apenas para fluxos. BDD é excelente para limites e exceções.
- Revise periodicamente: remova cenários obsoletos e agrupe variações relevantes.
Checklist rápido antes de colocar em produção
- O cenário diz “o que” acontece, não “como” acontece?
- Ele é curto e focado em uma regra de negócio?
- Começa do estado conhecido e termina com assertivas claras?
- Não depende de ordem ou de dados que podem mudar?
- A falha é diagnosticável em minutos (mensagens e variações bem nomeadas)?
Quer continuar evoluindo seu processo de testes e seu design de cenários? Leia mais posts do yurideveloper.com.br e aprofunde temas como modelagem de comportamento, manutenção de suítes e estratégias para reduzir fragilidade.
“`
Sou Apaixonado pela programação e estou trilhando o caminho de ter cada diz mais conhecimento e trazer toda minha experiência vinda do Design para a programação resultando em layouts incríveis e idéias inovadoras! Conecte-se Comigo!