Glossário · Projeto de testes
Análise de valor limite
Em inglês: Boundary value analysis
Também chamado de: análise do valor limite, AVL, BVA, teste de valor limite
Definição
Técnica de projeto de teste caixa-preta que escolhe entradas exatamente nas bordas das faixas válidas e logo ao redor delas, onde se concentram os erros de off-by-one.
A análise de valor limite (BVA, do inglês boundary value analysis) testa os valores nas bordas de cada faixa de entrada, porque é ali que os desenvolvedores erram: > em vez de >=, < 60 em vez de <= 60, um loop que roda uma vez a mais. Normalmente ela é aplicada depois do particionamento de equivalência, que identifica as faixas; a BVA então escolhe os valores exatos em cima de cada borda e ao redor dela.
Exemplo: idade de 18 a 60 aceita
Um formulário de cadastro aceita idades de 18 a 60, inclusive.
BVA de dois valores (o limite e o vizinho mais próximo fora da faixa):
| Entrada | Esperado |
|---|---|
| 17 | Rejeitado |
| 18 | Aceito |
| 60 | Aceito |
| 61 | Rejeitado |
BVA de três valores acrescenta o vizinho do lado de dentro de cada limite:
| Entrada | Esperado |
|---|---|
| 17, 18, 19 | Rejeitado, Aceito, Aceito |
| 59, 60, 61 | Aceito, Aceito, Rejeitado |
São seis testes em vez de 43 idades válidas possíveis, e esses seis pegam os erros de comparação mais comuns. Se o código diz age > 18, o teste com 18 falha. Se diz age < 60, o teste com 60 falha.
Além das faixas numéricas
Existem limites em qualquer lugar onde haja uma restrição:
- Tamanho: um nome de usuário de 3 a 20 caracteres significa testar 2, 3, 20 e 21 caracteres.
- Datas e horários: um link válido por 30 minutos significa testar em 29:59, 30:00 e 30:01. Verifique também meia-noite, fim de mês e anos bissextos quando fizer sentido.
- Coleções: um carrinho vazio, um item, e o máximo de itens permitido mais um.
- Dinheiro: R$ 99,99, R$ 100,00 e R$ 100,01 para uma regra de “frete grátis a partir de R$ 100”.
- Limites técnicos: tamanho máximo de arquivo, overflow de inteiros, tamanho de página em APIs paginadas.
Erros comuns
- Testar só o lado válido. 17 e 61 importam tanto quanto 18 e 60.
- Supor qual é o limite. “Até 60” pode significar que o 60 está incluído ou não. Pergunte e registre a resposta nos critérios de aceitação.
- Ignorar tipo e precisão. Se o campo aceita decimais, o valor logo abaixo de 18 pode ser 17,99, e não 17.
- Esquecer os limites escondidos. Uma coluna do banco de dados ou uma API pode impor um limite diferente do da UI. Teste os limites em cada camada.