top of page
lápis
Escrevendo Histórias Eficientes

NVEST é um checklist simples pra você escrever histórias testáveis e prontas pra sprint. A ideia é evitar histórias “grandes demais”, “ambíguas” ou “que dependem de tudo ao mesmo tempo”.

​

O que significa INVEST (bem direto)

  • I — Independent (Independente): a história consegue ser feita sem depender de outra para “fazer sentido”.

  • N — Negotiable (Negociável): não é contrato fechado; deixa espaço pro time decidir como implementar.

  • V — Valuable (Valiosa): entrega valor claro para alguém (usuário/negócio).

  • E — Estimable (Estimável): dá pra estimar porque está clara e tem escopo.

  • S — Small (Pequena): cabe numa sprint (idealmente poucos dias).

  • T — Testable (Testável): tem critérios de aceite verificáveis.

​

​

Exemplo prático (antes e depois)

​

História ruim (não INVEST)

“Como aluno, quero pagar tudo no portal com cartão e pix para ficar mais fácil.”

Problemas:

  • Grande (não Small)

  • Ambígua (não Testable)

  • Sem regras claras (não Estimable)

  • Pode depender de muita coisa (não Independent)

​

​

História melhor (INVEST)

História:
“Como aluno, quero pagar minhas mensalidades com cartão em até 9 parcelas no Portal do Aluno, para quitar débitos sem ir ao financeiro.”

Critérios de aceite (testáveis):

  1. Dado que selecione apenas mensalidades, quando escolher cartão, então o portal deve exibir no máximo 9 parcelas.

  2. Dado que a mensalidade não permita cartão por regra financeira, então o meio “cartão” não deve aparecer.

  3. Ao confirmar o pagamento, o sistema deve registrar a transação e atualizar o status das mensalidades.

​

​

Por que agora é INVEST:

  • Cabe numa sprint (Small)

  • Dá pra testar (Testable)

  • Dá pra estimar (Estimable)

  • Valor claro (Valuable)

  • Time ainda decide solução técnica (Negotiable)

  • Dá pra tratar separado de Pix/Acordo (Independent)​

​​​História de usuário é uma descrição curta e simples de uma funcionalidade do ponto de vista do usuário final.

Ela ajuda a:

  • Guiar o desenvolvimento com foco no valor entregue

  • Criar alinhamento entre Product Owner, DEV, QA e UX

  • Servir como base para teste

​​

​

 Formato clássico:

Como [tipo de usuário]
Quero [uma ação ou funcionalidade]
Para que [benefício ou valor entregue]

​

Como cliente do e-commerce
Quero visualizar meus pedidos anteriores
Para que eu possa acompanhar minhas compras

 

​

 Escrita eficiente em Gherkin
​

O Gherkin serve pra transformar a história em casos de teste legíveis por humanos e máquinas, usados tanto por testes manuais quanto automatizados.

​

 Regras para boa escrita em Gherkin:
  • Simples, clara e objetiva

  • Um cenário = um fluxo de teste

  • Usar linguagem de negócio

  • Incluir dados representativos (ex: produtos, status, códigos)

 

Estrutura:

  Funcionalidade: Histórico de Pedidos

  Cenário: Exibir pedidos finalizados
  Dado que o cliente está logado no sistema
  E acessa o menu “Meus Pedidos”
  Quando ele visualizar a lista de pedidos
  Então ele deve ver os pedidos com status "Entregue"

​

 

Exemplos de histórias de usuário

​

 API – Consulta de Saldo do Cliente

Como cliente logado
Quero consultar meu saldo atual via API
Para que eu possa visualizar meu limite disponível nos canais digitais

Critérios de aceitação:

  • Deve retornar saldo, data de atualização e moeda

  • A resposta deve seguir padrão JSON

  • A API deve estar protegida por token de autenticação

 

Tela – Histórico de Transações

Como cliente do app
Quero visualizar o histórico das minhas últimas transações bancárias
Para que eu possa acompanhar movimentações da minha conta

Critérios de aceitação:

  • Exibir data, tipo de transação, valor e descrição

  • Permitir filtro por data

  • Exibir as 10 últimas transações por padrão

  • A interface deve estar alinhada com o novo design system

 

Financeiro – Geração de Boleto

Como cliente com pagamento em aberto
Quero gerar o boleto da minha fatura atual
Para que eu possa realizar o pagamento dentro do prazo

Critérios de aceitação:

  • A geração deve incluir vencimento, valor e código de barras

  • O boleto deve estar disponível em PDF

  • Deve ser possível copiar o código de barras

  • A API de geração deve validar se a fatura está vencida antes de emitir o boleto

 

Segurança – Recuperar Senha

Como usuário que esqueceu a senha
Quero recuperar minha senha via e-mail
Para que eu possa acessar minha conta novamente com segurança

Critérios de aceitação:

  • O link enviado por e-mail deve expirar em 15 minutos

  • A nova senha deve ter pelo menos 8 caracteres, 1 número e 1 letra maiúscula

  • A recuperação deve ser auditada no log de segurança

 
Integração – Enviar Notificação via Kafka

Como sistema financeiro interno
Quero enviar um evento para o tópico Kafka após o pagamento ser confirmado
Para que outros sistemas possam reagir ao status do pagamento

Critérios de aceitação:

  • O evento deve conter ID do pagamento, status, timestamp e CPF do cliente

  • O envio deve ser assíncrono

  • Em caso de falha, deve ser registrado e reprocessado

​

​

Critério de Aceite 

O que é:

Critérios de aceite são regras objetivas que definem quando uma história de usuário pode ser considerada funcionalmente correta e pronta para ser aceita pelo Product Owner (PO).

São condições mínimas e verificáveis, escritas antes ou junto com a história, que orientam:

  • O que deve funcionar

  • O que deve ser validado

  • Limites e exceções

 Importância:
  • Evita mal-entendidos entre DEV, QA, PO e UX

  • Garante foco no valor do negócio

  • Serve de base para criação de cenários de teste

  • Ajuda na automação de testes com Cucumber/Gherkin

  • Define claramente o que é sucesso na entrega

 Exemplo prático:

História: Como cliente, quero visualizar meu saldo bancário para acompanhar minha conta

Critérios de aceite:

  • O saldo deve ser retornado com duas casas decimais

  • O valor deve estar em reais (BRL)

  • Deve ser exibida a data da última atualização

  • A API deve retornar código 200 com conteúdo válido

  • Se o cliente estiver deslogado, deve retornar 401

​

 Definição de Pronto (Definition of Ready - DoR)

 O que é:

É uma checklist acordada pelo time que define quando uma história está pronta para entrar em desenvolvimento.

Ela garante que a história esteja madura, clara e com todos os insumos necessários para começar o trabalho sem dúvidas.

 Importância:
  • Evita histórias "pela metade" sendo desenvolvidas

  • Minimiza retrabalho e interrupções

  • Facilita a planejamento da sprint

  • Ajuda o time a dizer “não está pronto para desenvolver”

  • Fortalece o papel de QA e UX desde o início

Exemplo de checklist – Definição de Pronto:
  • História de usuário escrita no formato correto

  • Critérios de aceite claros e objetivos

  • Regras de negócio discutidas

  • Protótipo disponível (se houver interface)

  • Dependências mapeadas

  • Dados de teste definidos (para QA e DEV)

  • API contratada/documentada (se houver)

  • Pontuada e priorizada

​

​

Diferença entre Critério de Aceite e Definição de Pronto:

​

Critério de Aceite - Define o que precisa estar funcionando para a história ser considerada "feita e aceita"

​

Definição de Pronto - Define o que precisa estar preparado antes da história entrar em desenvolvimento

​​

Uma história, várias tarefas (quebra técnica)

Uma única história de usuário pode (e deve!) ser dividida em múltiplas tarefas técnicas, como:

​

Tipo de Tarefa: Modelagem do banco
  • Responsável: DEV

  • Exemplo: Criar tabela orders

​

Tipo de Tarefa: API backend
  • Responsável: DEV

  • Exemplo: Criar endpoint GET /orders por usuário

​

 Tipo de Tarefa: Teste da API
  • Responsável: QA ou DEV

  • Exemplo: Validar o retorno da API com status code 200 e conteúdo esperado

​

 Tipo de Tarefa: Criação de tela
  • Responsável: DEV

  • Exemplo: Desenvolver componente em React para exibir o histórico de pedidos

​

Tipo de Tarefa: Teste da interface
  • Responsável: QA

  • Exemplo: Validar a renderização da tela com mock de pedidos, checando campos e layout

​

 Estimativas (Story Points, tempo e limite por sprint)
​
 O que é 1 ponto?
​
  • Representa uma unidade de complexidade relativa

  • Pode SIM ser aproximadamente igual a 1 hora (em squads que escolhem esse critério) — embora o ágil prefira complexidade a tempo.

 

 

💡 Dica prática:
Se você usa "1 ponto = 1 hora" e sua sprint tem 40h úteis por dev, o máximo seria 40 pontos. Mas na prática,

considere 60% da capacidade (24 pontos por dev) para absorver reuniões, bugs e ajustes.

​

 Sprint com entregas pequenas
​​Boa prática:
  • Quebre grandes funcionalidades em entregas incrementais.

  • Evite deixar para integrar só no final da sprint.

​

 Exemplo prático:
​Sprint 1
  • Backend: GET /orders, modelagem e testes

  • API testada com Postman ou RestAssured

  • Frontend com tela mockada, apenas layout

  • ​​

Sprint 2

  • Integração front com API real

  • Ajustes visuais

  • Testes funcionais e exploratórios

 

Exemplo completo de jornada DEV + QA

​
Tarefas (quebra por função):

​

Tarefa                                               Pontos   Responsável    Descrição
Criar endpoint /orders/{id}                      3             DEV            Retorna pedido por ID
Testes unitários da API                           1              DEV            Cobertura mínima 80%
Testes da API (RestAssured)                     2             QA            Validar código, corpo, mensagens
Componente de tela                               3             DEV            Criar modal ou página
Integração com backend                          2              DEV            Fazer chamada e exibir dados
Testes funcionais (manual ou Selenium)    3              QA       Validar se tudo aparece corretamente
Teste exploratório                                  2               QA            Cobrir caminhos não mapeados

​

Pontuação total por Sprint (referência prática)

​

Cargo             Capacidade (horas úteis)    % alocação em tarefas    Pontos médios
DEV Pleno               40h                               60%                     24 pontos
QA Pleno                40h                               60%                      20–24 pontos

​

Obs: Se o time estiver muito maduro, pode usar até 75% da capacidade para tarefas técnicas.

​

Entregas parciais em sprints curtas
Teste de Software - Em Foco.
bottom of page