What is Software Testing?
O que é Teste de Software?
Motivação e Objetivos dos Testes
- O teste de software visa garantir um nível de qualidade esperado pelos stakeholders, embora não seja possível garantir que o sistema sempre corresponderá a essas expectativas.
- Os testes fornecem evidências do comportamento do sistema em situações específicas, mas não cobrem todas as possíveis situações devido à complexidade e ao número infinito de estados.
Importância da Suíte de Testes
- A eficácia dos testes depende da qualidade da suíte de testes; uma boa suíte traz evidências mais robustas sobre o funcionamento do sistema.
- Além de detectar problemas, os testes ajudam a localizar defeitos no código e facilitam a refatoração do sistema, proporcionando segurança ao desenvolvedor.
Funcionalidades e Robustez
- O comportamento esperado do sistema está relacionado às funcionalidades e à corretude das mesmas em relação às expectativas dos stakeholders.
- Os testadores priorizam funcionalidades complexas ou críticas, pois não é viável testar todas as funcionalidades disponíveis.
Tipos de Testes Realizados
- Embora existam diversos tipos de testes (como performance e segurança), o foco principal aqui será na verificação da correta implementação das funcionalidades.
- É importante avaliar como o sistema se comporta em situações inadequadas, como entradas incorretas, garantindo mensagens de erro apropriadas.
Processo de Teste Automatizado
- O engenheiro de requisitos coleta informações dos stakeholders para elaborar documentos que descrevem o que o sistema deve fazer.
- O testador analisa esses documentos para entender as expectativas e pode optar por realizar testes manuais ou automatizados.