No desenvolvimento ágil, a história do usuário é um bloco fundamental para entregar valor ao cliente. Essas descrições concisas da funcionalidade desejada capturam o ‘quem’, ‘o que’ e ‘por quê’ de um recurso ou requisito. No entanto, para garantir que as histórias do usuário sejam tanto ações quanto testáveis, as equipes ágeis frequentemente utilizam uma técnica chamada ‘Give / When / Then’ (GWT) para critérios de aceitação. Este método ajuda a definir o comportamento esperado de uma história do usuário de forma clara e inequívoca.

O que são Critérios de Aceitação?
Os critérios de aceitação são condições ou regras que uma história do usuário deve atender para ser considerada completa. Eles atuam como uma ponte entre a visão do proprietário do produto e a implementação da equipe de desenvolvimento. Essencialmente, eles definem os limites e expectativas para cada história do usuário. Sem critérios de aceitação bem definidos, uma história do usuário pode ser suscetível a interpretações, levando a mal-entendidos e possíveis retrabalhos.
A Estrutura dos Critérios de Aceitação Give / When / Then
Give / When / Then é um formato para elaborar critérios de aceitação que é inspirado no Desenvolvimento Orientado a Comportamento (BDD). Ele incentiva uma forma mais estruturada e compreensível de expressar o comportamento desejado de uma história do usuário. O formato consiste em três partes:
- Dado: Esta seção descreve o contexto inicial ou o estado do sistema. Ela estabelece o cenário para o que você está descrevendo. Em essência, fornece as informações de fundo necessárias para compreender o cenário.
- Quando: Esta seção representa a ação ou evento que dispara o comportamento descrito na história do usuário. É o evento específico que o usuário realiza ou que ocorre dentro do sistema.
- Então: Esta seção descreve o resultado ou resultado esperado da ação ou evento descrito na seção ‘Quando’. Define o que deverá acontecer como consequência da ação, frequentemente em termos de mudanças observáveis no sistema ou aplicativo.
Benefícios dos Critérios de Aceitação Give / When / Then
- Clareza: O formato GWT oferece uma forma estruturada e fácil de entender para expressar o comportamento esperado de uma história do usuário. Isso reduz a ambiguidade e garante que todos na equipe de desenvolvimento, incluindo desenvolvedores, testadores e proprietários de produto, tenham uma compreensão clara do que precisa ser feito.
- Testabilidade: O formato se adapta naturalmente a casos de teste. Cada componente ‘Dado’, ‘Quando’ e ‘Então’ pode ser traduzido em cenários de teste específicos, tornando mais fácil validar se a história do usuário foi implementada corretamente.
- Alinhamento: Os critérios de aceitação GWT incentivam a colaboração entre os membros da equipe. Proprietários de produto, desenvolvedores e testadores podem trabalhar juntos para definir e aprimorar os critérios, garantindo que todos estejam alinhados quanto ao escopo e às expectativas da história.
Exemplos de Critérios de Aceitação Give / When / Then
Vamos considerar um exemplo simples para um site de comércio eletrônico:
História do Usuário: Como cliente, quero poder adicionar itens ao meu carrinho de compras para que eu possa comprá-los posteriormente.
Critérios de Aceitação (GWT):
- Dado Estou na página do produto
- Quando Clico no botão ‘Adicionar ao Carrinho’ para um produto
- Então O produto deverá ser adicionado ao meu carrinho de compras
- EO ícone do carrinho na barra de navegação deverá exibir a contagem atualizada de itens
- EDevo ver uma mensagem de confirmação indicando a adição do produto ao carrinho
Neste exemplo, os critérios de aceitação fornecem uma compreensão clara do que se espera da história do usuário, tornando-a passível de ação e testável.
Descrição do Problema Estudo de Caso:
Vamos considerar um estudo de caso para um aplicativo popular de compartilhamento de viagens, como o Uber. O problema em questão é melhorar a experiência do usuário ao introduzir um recurso que permita aos passageiros agendar viagens com datas e horários específicos.
Histórias de Usuários com Critérios de Aceitação GWT:
História de Usuário 1: Agendar uma Viagem com Antecedência
Como passageiro, quero poder agendar uma viagem para uma data e horário específicos com antecedência, para que eu possa planejar minhas viagens melhor.
Critérios de Aceitação (GWT):
- Dado queTenho o aplicativo de compartilhamento de viagens instalado e estou logado
- QuandoAbro o aplicativo e insiro meu destino, data e horário para a viagem
- EntãoO aplicativo deverá exibir os motoristas disponíveis para a data e horário selecionados
- EDevo poder confirmar e agendar a viagem
- EDevo receber uma notificação de confirmação com os detalhes da viagem agendada
História de Usuário 2: Editar ou Cancelar uma Viagem Agendada
Como passageiro, quero ter a opção de editar ou cancelar uma viagem agendada, caso meus planos mudem.
Critérios de Aceitação (GWT):
- Dado queTenho uma corrida agendada
- QuandoAbro o aplicativo e navego até minhas corridas agendadas
- EntãoDevo ver uma lista das minhas corridas agendadas futuras
- EDevo poder selecionar uma corrida para editar a data e hora ou cancelá-la
- ESe eu editar a corrida, o aplicativo deve mostrar os motoristas disponíveis para a data e hora atualizadas
- EDevo receber uma notificação de confirmação para quaisquer alterações realizadas
História do Usuário 3: Notificar Motoristas sobre Corridas Agendadas
Como motorista, quero receber notificações quando um passageiro agendar uma corrida comigo, para que eu possa planejar minha disponibilidade.
Critérios de Aceitação (GWT):
- Dado queSou um motorista ativo com o aplicativo de compartilhamento de corridas aberto
- Quandoum passageiro agendar uma corrida comigo para uma data e hora específicas
- EntãoDevo receber uma notificação em tempo real com os detalhes da corrida agendada
- EO aplicativo deve exibir a corrida agendada no meu painel do motorista
- EDevo poder aceitar ou recusar a corrida agendada dentro de um prazo razoável
História do Usuário 4: Fornecer Feedback para Corridas Agendadas
Como passageiro, quero poder fornecer feedback e avaliar motoristas para viagens agendadas, para ajudar a manter a qualidade do serviço.
Critérios de Aceitação (GWT):
- Dado quecompletei uma viagem agendada
- Quandoabro o aplicativo após a conclusão da viagem
- Entãodevo ter a opção de avaliar o motorista e fornecer feedback
- Ea avaliação do motorista deve ser atualizada com base no meu feedback
- Edevo receber uma mensagem de agradecimento por fornecer feedback
Essas histórias de usuário e seus critérios de aceitação associados Give / When / Then abordam o problema de introduzir um recurso de agendamento de viagens em um aplicativo de compartilhamento de viagens. Ao seguir esta abordagem estruturada, a equipe de desenvolvimento pode garantir uma compreensão clara dos requisitos e do comportamento esperado do novo recurso, levando finalmente a uma melhor experiência do usuário.
Conclusão
Os critérios de aceitação Give / When / Then oferecem uma abordagem estruturada para definir o comportamento esperado das histórias de usuário no desenvolvimento Ágil. Ao dividir os critérios em três seções distintas – Dado, Quando e Então – as equipes podem alcançar maior clareza, testabilidade e alinhamento, levando finalmente a um desenvolvimento de produto mais bem-sucedido. Incorporar esse formato ao seu processo Ágil pode ajudar sua equipe a entregar software de alta qualidade que atenda às expectativas dos usuários.











