Teste de Software – Princípios Gerais
Gabarito: letra D. Casos de teste devem abranger tanto entradas esperadas (válidas) quanto não esperadas (inválidas), princípio fundamental do teste de software (Myers, The Art of Software Testing). As demais alternativas violam conceitos básicos: teste não prova ausência de falhas, não é exaustivo, não deve ser restrito ao programador original e não se limita ao final do desenvolvimento.
Alternativa | Afirmação | Análise | Status |
|---|
A | Testes sempre mostram que o software não tem falhas | Testes revelam defeitos, mas não provam ausência de falhas | ❌ Incorreta |
B | Testes sempre verificam todas as possibilidades de entrada | Teste exaustivo é inviável na prática | ❌ Incorreta |
C | Testes devem ser realizados somente pelo programador original | Independência de teste é recomendada para evitar viés | ❌ Incorreta |
D | Casos de teste devem ser escritos para entradas esperadas e não esperadas | Princípio fundamental: testar entradas válidas e inválidas para verificar robustez | ✅ Correta |
E | Testes devem ser executados somente no final do desenvolvimento | Testes devem ocorrer ao longo de todo o ciclo de vida | ❌ Incorreta |
Alternativa A — ❌ Incorreta
Afirma que testes sempre mostram que o software não tem falhas. Na verdade, testes podem revelar a presença de defeitos, mas nunca provar sua ausência. Teste bem-sucedido é aquele que encontra erros; um teste que não encontra erros não garante que o software está livre deles.
Alternativa B — ❌ Incorreta
Afirma que testes sempre verificam todas as possibilidades de entrada. Isso é inviável na prática (teste exaustivo é impossível para sistemas reais). A seleção de casos de teste busca cobrir um conjunto representativo, não todas as combinações possíveis.
Alternativa C — ❌ Incorreta
Afirma que testes devem ser realizados somente pelo programador que escreveu o código. A independência de teste é recomendada: testadores diferentes do desenvolvedor tendem a encontrar mais defeitos, pois não têm o viés de quem construiu o código.
Alternativa D — ✅ Correta ⟵ GABARITO
Correta. Além de testar entradas esperadas (que validam o funcionamento normal), é essencial testar entradas não esperadas ou inválidas para verificar a robustez do software (tratamento de exceções, limites, dados incorretos). Isso está alinhado com os princípios de Myers e boas práticas de teste.
Alternativa E — ❌ Incorreta
Afirma que testes devem ser executados somente no final do desenvolvimento. Na realidade, os testes devem ocorrer ao longo de todo o ciclo de vida (testes unitários, de integração, de sistema, de aceitação), seguindo modelos como o V-Model ou práticas ágeis de integração contínua. Atrasar testes aumenta o custo de correção.
Gabarito: letra D.