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.

isAdult(16) → false

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

Referências

  • ISTQB® Certified Tester Foundation Level v4.0, tradução BSTQB, seção 4.2.1, Particionamento de Equivalência. © ISTQB®.