Resumo Teste de Software
Mesmo com todo avanco em relacao aos testes, nos ultimos anos; o teste de software nao e uma "ciencia exata".
A analise de risco e uma parte importante dos testes de software, visto que vai determinar as areas que precisam ser mais cuidadosamente testadas e, em qual momento, se pode considerar que os testes realizados foram suficientes para garantir uma confiança adequada para liberar o software para produção.
Para conquistar o nivel 3 do CMMI e preciso adotar uma abordagem sistematica em relacao aos testes, que se encontra nas areas de Verificacao e Validacao deste modelo.
E importante notar que as metodologias ageis como o XP (eXtreme Programming) contribuiram com os conceitos de Integracao Continua, Desenvolvimento Orientado a Testes (TDD) e ferramentas de testes unitarios no modelo xUnit, os testes devem ser realizados de uma maneira sistematica, para evitar o acontecimento de uma das "Leis de Murphy": "Se alguma coisa pode dar errado, dará. E mais, dará errado da pior maneira, no pior momento e de modo que cause o maior dano possível."
Teste Dinâmico – Execução do Programa
Teste Estáticos - Não precisam da execucao de um software (ou nem mesmo a sua existencia) para serem realizados. Podem ser aplicados a diferentes artefatos como a revisão de documentos de requisitos, analise, do proprio codigo fonte, etc.
Testes Funcionais (Caixa-preta): O testador nao precisa conhecer os detalhes da codificacao. Nesse tipo de teste o testador informa os dados de entrada e verifica se a saida/resultado esta de acordo com o que era esperado. Esse tipo de teste nao tem como objetivo saber como a funcionalidade foi implementada, mas sim quais sao os resultados apresentados. Avaliando somente a entrada e a saida, o teste de caixa-preta visa identificar defeitos do tipo:
Se o sistema aceita entradas incorretas;
Se a saida produzida esta correta;
Se existem erros na interface;
Se alguma funcionalidade esta faltando;
Dentre outros.