Porque é necessário testar?

Termos
“Bug”, defeito, erro, falha, dano, engano, qualidade, risco.

1. Contexto dos sistemas de software
Sistemas de software tornam-se cada vez mais parte do nosso dia-a-dia, desde aplicações comerciais (ex: bancos) até produtos de consumo (ex: carros). A maioria das pessoas já teve alguma experiência com um software que não funcionou como esperado. Softwares que não funcionam corretamente podem levar a muitos problemas, incluindo financeiro, tempo e reputação das empresas. Podendo, inclusive, chegar a influenciar na integridade das pessoas.

2.Causas dos defeitos de software
O ser humano está sujeito a cometer um erro (engano), que produz um defeito (dano, bug), no código, em um software ou sistema ou em um documento. Se um defeito no código for executado, o sistema falhará ao tentar fazer o que deveria (ou, em algumas vezes, o que não deveria), causando uma falha. Defeitos no software, sistemas ou documentos resultam em falhas, mas nem todos os defeitos causam falhas. Os defeitos ocorrem porque os seres humanos são passíveis de falha e porque existe pressão no prazo,
códigos complexos, complexidade na infra-estrutura, mudanças na tecnologia e/ou muitas interações de sistema. Falhas também podem ser causadas por condições do ambiente tais como: radiação, magnetismo, campos eletrônicos e poluição, que podem causar danos em software embarcado (firmware) ou influenciar a execução do software pela mudança das características de hardware.

3.Função do teste no desenvolvimento, manutenção e operação desoftware
Rigorosos testes em sistemas e documentações podem reduzir os riscos de ocorrência de problemas no ambiente operacional, e contribui para a qualidade dos sistemas de software se os defeitos encontrados forem corrigidos antes de implantados em produção. O teste de software pode também ser necessário para atender requisitos contratuais ou legais ou determinados padrões de mercado.


4.Teste e qualidade
Com a ajuda do teste é possível medir a qualidade do software em termos de defeitos encontrados, por características e requisitos funcionais ou não-funcionais do software (confiabilidade, usabilidade, eficiência e manutenibilidade).O resultado da execução dos testes pode representar confiança na qualidade do software caso sejam encontrados poucos ou nenhum defeito. Um teste projetado adequadamente e cuja execução não encontra defeitos reduz o nível de riscos em um sistema. Por outro lado, quando os testes encontram defeitos, a qualidade do sistema aumenta quando estes são corrigidos. Projetos anteriores devem prover lições aprendidas. Através do entendimento da causa raiz dos defeitos encontrados em outros projetos, os processos podem ser aprimorados de modo a prevenir reincidência de erros e, conseqüentemente, melhorar a qualidade dos sistemas futuros. Testes devem ser integrados como uma das atividades de garantia da qualidade (ex: juntamente aos padrões de desenvolvimento, treinamento e análise de defeitos).


5. Quanto teste é suficiente?

Para decidir quanto teste é suficiente, deve-se levar em consideração o nível do risco, incluindo risco técnico, do negócio e do projeto, além das restrições do projeto como tempo e orçamento. O teste deve prover informações suficientes aos interessados (stakeholders) para tomada de decisão sobre a distribuição do software ou sistema, para as próximas fases do desenvolvimento ou implantação nos clientes.