Palestra ministrada no The Developers Conference 2016 Porto Alegre dia 07/10/2016 e no The Developers Conference 2017 Florianópolis no dia 04/05/2017 apresentando alguns anti padrões na escrita de Critérios de Aceite.
1. O que evitar na escrita
dos Critérios de Aceite
Elias Nogueira
eliasnogueira http://adapt.works
elias.nogueira.teste http://eliasnogueira.com
2. Todos no mesmo contexto
Impacto - Meta
Entregável - Saída
Critérios de
Aceite
Exemplos
Porque?
Como?
Épico
User Story
Código
Impact Mapping
Story Mapping
Specification By Example
Necessidade
de discussão
Fácil de definir antecipadamente Difícil de definir antecipadamente
3. Critério de Aceite
Definir os limites de uma user story/feature
Ajuda o PO a responder o que ele precisa para
fornecer valor
Ajuda o time a ter o entendimento compartilhado da
story/feature
Ajuda desenvolvedores e testadores a derivar testes
Ajuda os desenvolvedores a saber quando parar de
adicionar mais funcionalidades para a story
http://nomad8.com/acceptance_criteria/
4. Critério de Aceite
Usa a mesma linguagem que seu cliente utiliza
Apresenta o que é e o que não é aceitável
Devem apresentar intenção, não a solução!
@eliasnogueira
5. Focar em Critérios Concretos
ao invés de Abstratos
ABSTRATO
Como um possível cliente
Eu gostaria de adicionar livros no meu
carrinho de compras
Para que eu possa comprar diversos
livros de uma só vez
• Livros devem ser adicionados no
carrinho de compras
• Livros podem ser removidos do
carrinho de compras
• Carrinho de compras está
inicialmente vazio
• O mesmo livro pode ser adicionado
múltiplas vezes no carrinho
CONCRETO
Dado que eu já tenha adicionado
o livro ”User Stories Applied”
Quando eu adiciono novamente o
mesmo livro
Então a quantidade total deste livro
no carrinho de compras é
atualizada para +1
6. Acreditar que um Critério de
Aceite é um Teste
ACEITAÇÃO
Dado que eu sou um cliente do
Brasil
Quando eu comprar um produto
da categoria Eletrônico
Entao eu vejo o frete grátis
TESTE
Dado que eu sou um cliente do
Brasil
Quando eu clico no menu
Eletrônicos
E eu adiciono um produto no
carinho
Então e vejo o carrinho de
compras
Quando eu informo as
condições de pagamento
Entao eu vejo que o frete é grátis
7. Especificar Intenção sobre
Implementação
INTENÇÃO
Dado que eu sou um cliente do
Brasil
Quando eu comprar um produto
da categoria Eletrônico
Entao eu vejo o frete grátis
IMPLEMENTAÇÃO
Dado que eu sou um cliente do
Brasil
Quando eu clico no menu
”Eletrônicos”
E eu clico no item ”TVs 49”
E eu clico na ”TV LG Smart 49”
E eu clico no botão ”Calcular
Frete”
Entao eu vejo a mensagem
”Frete Grátis” abaixo do botão
8. Diferentes Critérios em um único
CONFUSÃO DE CRITÉRIOS
Dado que eu tenha efetuado o login no sistema com dados válidos
Quando eu entro na minha lista de desejos
E clico em comprar
Então eu preencho os dados do cartão de crédito
E eu preencho o CEP
E eu preencho um endereço diferente do meu
E eu clico em efetuar o pagamento
E eu vejo a compra realizada com sucesso
Ou a compra negada por dados incorretos do cartão de crédito
9. CRUD
NÃO AGREGAR VALOR AO NEGÓCIO
Dado que eu sou o administrador do sistema
E vejo a página inicial a aplicação
Quando eu clico no botão Novo Usuário
E eu preencho o campo nome
E eu preencho o campo CPF
E eu clico em Salvar
Entao eu sou redirecionado para a lista de pessoas
E eu vejo o registro no tipo da lista
10. CRUD – O que eu posso fazer?
Criar pessoas
Seguir protótipo 01
Listar Pessoas
Seguir protótipo 02
11. Dicas Gerais
• Não deturpe o conceito inicial de BDD usando Critérios de
Aceite apenas para criar especificações executáveis
• Existem três tipos de critérios de aceite
• Funcionais
• Não Funcionais
• Performance
• Não torne um Critério de Aceite um Caso de Teste
• O seu cliente deve entender, de forma clara e direta, o Critério
de Aceite assim como ele entende a User Story
12. O que evitar na escrita
dos Critérios de Aceite
Elias Nogueira
eliasnogueira http://adapt.works
elias.nogueira.teste http://eliasnogueira.com