Projetos Práticos para Aprender BDD: Guia Completo para Iniciantes

Projetos Práticos para Aprender BDD: Guia Completo para Iniciantes






Projetos práticos para aprender BDD


Projeto 1 — Catálogo de Produtos: cenários de aceitação

Neste projeto, eu defino um catálogo de produtos com cenários que cobrem listagem, filtragem por categoria e ordenação por preço. O objetivo é exercitar a linguagem ubíqua e o alinhamento entre negócio e tecnologia.

  • Definir a feature com foco no resultado desejado pelo usuário.
  • Escrever cenários em Gherkin no idioma do domínio.
  • Relacionar cada cenário a uma evidência de comportamento observável.
Feature: Catálogo de produtos
  Como usuário do site, quero visualizar a lista de produtos, filtrar por categoria e ordenar por preço, para encontrar rapidamente o que procuro.

  Scenario: Listar produtos disponíveis
    Dado o usuário está na página de catálogo
    Quando ele visualiza a lista de produtos
    Então a lista de produtos é exibida com nomes e preços

  Scenario: Filtrar por categoria
    Dado o usuário está na página de catálogo
    Quando ele escolhe a categoria "Eletrônicos"
    Então apenas produtos da categoria são exibidos

  Scenario: Ordenar por preço
    Dado o usuário está na página de catálogo
    Quando ele escolhe ordenar por "Preço: baixo para alto"
    Então a lista é ordenada do menor para o maior preço

Projeto 2 — Fluxo de checkout: do carrinho à confirmação

Este projeto aborda o fluxo de compra, cobrindo adição ao carrinho, preenchimento de dados de entrega, seleção de método de envio e confirmação do pedido. O objetivo é mapear caminhos típicos e cenários de exceção com clareza.

  • Mapear caminhos típicos e cenários de exceção com clareza.
  • Utilizar Given/When/Then para descrever comportamento observável.
  • Convergir os cenários para critérios de aceitação mensuráveis.
Feature: Checkout simplificado
  Cenário: Adicionar itens ao carrinho e iniciar checkout
    Dado o usuário está na página do carrinho
    Quando ele adiciona um item ao carrinho
    Então o carrinho contém o item com a quantidade 1

  Cenário: Inserir dados de entrega válidos
    Dado o usuário está no checkout
    Quando ele preenche o endereço de entrega válido
    Então o resumo da compra exibe o endereço correto

  Cenário: Confirmar pedido
    Dado o usuário está no checkout com itens no carrinho
    Quando ele confirma o pedido
    Então o pedido é criado com status "em processamento"

Projeto 3 — Autenticação segura: cenários de acesso

Aqui eu descrevo credenciais, mensagens de erro claras, fluxos de recuperação e o comportamento após tentativas malsucedidas. O objetivo é capturar requisitos de segurança e usabilidade por meio de cenários acessíveis a stakeholders.

  • Comunicar claramente os critérios de autenticação esperados.
  • Definir cenários que cobrem sucesso, falha e recuperação.
  • Relacionar cenários a evidências de comportamento do sistema.
Feature: Autenticação de usuário
  Cenário: Login com credenciais válidas
    Dado o usuário está na página de login
    Quando ele insere credenciais válidas
    Então o usuário é redirecionado para a área privada

  Cenário: Falha de login
    Dado o usuário está na página de login
    Quando ele insere credenciais inválidas
    Então uma mensagem de erro é exibida

  Cenário: Recuperação de senha
    Dado o usuário está na tela de login
    Quando ele solicita a recuperação de senha
    Então o link de recuperação é enviado para o e-mail registrado

Projeto 4 — Proposta de melhoria contínua: refinação de critérios

Além disso, eu foco na refinação de critérios de aceitação e no alinhamento das histórias com o domínio, promovendo uma prática de melhoria contínua pela revisão de critérios e aprendizados entre equipes.

  • Refinar critérios com exemplos concretos e limites de tolerância.
  • Verificar consistência entre histórias, cenários e dados de teste.
  • Documentar aprendizados para futuras iterações.
Feature: Refino de critérios de aceitação
  Cenário: Limite de estoque
    Dado o estoque disponível é menos que o requerido
    Quando o usuário tenta comprar
    Então o sistema impede a compra e informa o estoque insuficiente

Gostou? Leia outros posts para aprofundar em BDD, domínio e colaboração entre equipes.

Quero explorar mais conteúdos

© 2026 Yurideveloper. Conteúdo técnico, direto ao ponto, para desenvolvedores que buscam elevar o nível de suas práticas.