Introdução
No âmbito do desenvolvimento ágil, as histórias de usuário servem como blocos fundamentais de comunicação entre equipes de desenvolvimento e partes interessadas. No entanto, para garantir que essas histórias sejam implementadas corretamente e atinjam os objetivos desejados, os critérios de aceitação são indispensáveis. Os critérios de aceitação fornecem as condições específicas e expectativas que uma história de usuário deve atender para ser considerada completa. Mas qual é a melhor maneira de estruturar esses critérios? Neste artigo, exploramos três modelos populares de critérios de aceitação: Dado-Quando-Então, Comportamento-Resultado-Esperança e Papel-Funcionalidade-Razão. Vamos analisar os prós e contras de cada modelo e discutir quando e como usá-los de forma eficaz.

Modelos Comuns de Critérios de Aceitação
Os critérios de aceitação são essenciais para definir o escopo de uma história de usuário e garantir que a equipe de desenvolvimento entenda o que precisa ser implementado. Aqui estão três modelos comuns:
- Dado-Quando-Então (DQE):
- Dado: Uma pré-condição ou contexto que estabelece o cenário.
- Quando: A ação ou evento que dispara a história de usuário.
- Então: O resultado ou resultado esperado.
Exemplo:
- Dado um usuário registrado está logado
- Quando eles clicam no botão “Adicionar ao Carrinho”
- Então o item deve ser adicionado ao seu carrinho de compras
- Comportamento-Resultado-Esperança (CRE):
- Comportamento: A ação ou comportamento que a história de usuário está abordando.
- Resultado: O resultado ou mudança de estado esperado a partir desse comportamento.
- Esperança: Quaisquer detalhes ou condições adicionais.
Exemplo:
- Comportamento: O usuário envia um formulário de contato
- Resultado: Um e-mail contendo os dados do formulário é enviado à equipe de suporte
- Expectativa: O e-mail contém as informações de contato do usuário e a mensagem
- Papel-Funcionalidade-Motivo (RFR):
- Papel: O papel ou persona envolvida na história do usuário.
- Funcionalidade: A funcionalidade específica ou funcionalidade sendo descrita.
- Motivo: O propósito ou justificativa para a funcionalidade.
Exemplo:
- Papel: Administrador
- Funcionalidade: Capacidade de excluir contas de usuário
- Motivo: Manter a integridade do banco de dados de usuários e remover contas inativas
Esses são apenas alguns exemplos de modelos de critérios de aceitação. A escolha do modelo depende frequentemente da preferência da equipe e da complexidade da história do usuário. É importante que os critérios de aceitação sejam claros, específicos e testáveis para garantir que a história do usuário seja implementada corretamente. Além disso, os critérios de aceitação devem cobrir requisitos funcionais e não funcionais, conforme necessário para a história do usuário.
Resumindo os Modelos de Critérios de Aceitação
Aqui está uma tabela comparando os prós e contras dos três modelos de critérios de aceitação (Dado-Quando-Então, Comportamento-Resultado-Expectativa e Papel-Funcionalidade-Motivo), juntamente com seus aspectos relacionados:
| Aspecto | Dado-Quando-Então (GWT) | Comportamento-Resultado-Expectativa (BOE) | Papel-Funcionalidade-Motivo (RFR) |
|---|---|---|---|
| Prós | |||
| Clareza | Oferece uma estrutura clara para expressar os requisitos da história do usuário. | Separa explicitamente comportamento, resultado e expectativas para maior clareza. | Enfatiza o papel, a funcionalidade e o motivo para uma melhor compreensão. |
| Testabilidade | Fácil de converter em casos de teste. | Encoraja a especificação de condições testáveis para validação. | Pode ser usado para derivar casos de teste ao se concentrar em papéis e funcionalidades. |
| Flexibilidade | Adequado para uma ampla variedade de histórias de usuário, desde as simples até as complexas. | Permite flexibilidade na descrição das interações do usuário e dos resultados esperados. | Adaptável a diversos cenários e ajuda a justificar a necessidade de funcionalidades. |
| Legibilidade | Legível e compreensível por membros técnicos e não técnicos da equipe. | Conciso e estruturado, tornando mais fácil para os interessados revisarem. | Fornece contexto sobre por que uma funcionalidade é necessária, auxiliando na priorização. |
| Contras | |||
| Custo operacional | Pode se tornar verboso para histórias de usuário muito complexas, levando a critérios extensos. | Pode não capturar certos requisitos não funcionais ou restrições. | Exige explicação adicional se o papel, a funcionalidade ou o motivo não forem óbvios. |
| Falta de contexto | Pode não capturar efetivamente o contexto geral da história de usuário. | Pode ignorar metas de negócios mais amplas ou motivações por trás da história de usuário. | Depende que os interessados compreendam implicitamente o papel, a funcionalidade e o motivo. |
| Não ideal para requisitos não funcionais | Menos adequado para especificar requisitos não funcionais (por exemplo, desempenho, segurança). | Pode não enfatizar aspectos não funcionais, a menos que sejam explicitamente incluídos nas expectativas. | Requisitos não funcionais podem ser ignorados se não forem explicitamente mencionados. |
Esses são alguns dos principais pontos positivos e negativos associados a cada um dos modelos de critérios de aceitação. A escolha do modelo deve considerar as necessidades específicas da história de usuário, do projeto e da familiaridade da equipe com o modelo. Na prática, as equipes frequentemente usam uma combinação desses modelos conforme necessário para fornecer critérios de aceitação abrangentes para as histórias de usuário.
Resumo
Os critérios de aceitação de histórias de usuário desempenham um papel fundamental no desenvolvimento ágil de software, definindo os limites e expectativas para cada história. Para otimizar esse processo, este artigo compara três modelos amplamente utilizados de critérios de aceitação: Dado-Quando-Então, Comportamento-Resultado-Esperança e Papel-Funcionalidade-Razão. Analisamos os pontos fortes e fracos de cada modelo, fornecendo insights sobre quando aplicá-los com base na complexidade da história de usuário e nas necessidades da equipe. Ao final, você terá uma compreensão clara de como escolher o modelo mais adequado para elaborar critérios de aceitação eficazes para seus projetos ágeis.











