Os dois lados de uma regra
nível 1 · 10 min · particionamento de equivalência
Um teste existe para falhar quando o código está errado. Um teste que passa com qualquer código não protege nada, por mais verde que fique.
Toda regra do tipo “se… então…” tem dois lados: quando ela vale e quando não vale. Testar só o lado feliz deixa metade dos bugs livres.
Regra prática. Para cada regra, escreva pelo menos um teste em que a resposta é sim e um em que é não. Depois aproxime os dois da fronteira.
Explore a regra
Um cadastro usa isAdult(age). Arraste e veja de que lado da regra cada idade cai.
Exercício: escreva os testes
Seus testes precisam passar no código correto e falhar nos 3 bugs plantados.
Um formulário de cadastro chama isAdult(age) para decidir quem pode criar conta. Escreva os testes.
Seus testes rodam contra o código correto, onde precisam passar, e contra três versões quebradas, onde pelo menos um precisa falhar.
O teste inicial passa, mas não pega nenhum bug. Rode para ver.
/**
* Devolve true quando a pessoa é adulta (18 anos ou mais), false caso contrário.
* @param {number} age Idade em anos completos.
* @returns {boolean}
*/
function isAdult(age)Radar de cobertura: faixas e limites que seus testes já tocam
Valores nos seus testes: 30. Falta: a faixa “menor”, o limite 18, o valor logo abaixo de 18.
Seus testes
0 de 3 bugs detectados
- Bug 1: escondido
- Bug 2: escondido
- Bug 3: escondido