Analise de Sistema
A Testabilidade examina as diferentes probabilidades e características comportamentais que levam o código a falhar se alguma coisa estiver incorreta.
Um programa tem alta testabilidade se ele tende a expor suas falhas durante os testes com entradas que geram defeitos. Um programa tem baixa testabilidade se ele tende a ocultar as falhas detectadas durante os testes, produzindo saídas corretas para entradas que geram defeitos. Requisitos incompletos, desatualizados, ambíguos ou contraditórios trazem baixa testabilidade. É muito difícil para um testador identificar problemas se não houver acesso a informações detalhadas sobre os critérios de teste. É necessário ter um critério de teste para que a testabilidade passe a ser simplesmente “uma medida de quão difícil é satisfazer uma meta específica de teste”. O código que oculta falhas é difícil de testar. Quando todos os erros que são criados durante uma execução são cancelados, uma falsa idéia é criada de que o software está correto. Mas na verdade ele é um software tolerante a falhas. Em um software crítico, onde pode existir risco de vida, qualquer falha não-detectada pode ser fatal. Se os erros são ocultados durante várias e várias transações, quando finalmente um defeito causa uma falha, pode ser impossível detectar a origem. A testabilidade pode também ser definida como “a probabilidade de um pedaço de software falhar na próxima execução dos testes assumindo que uma entrada do software inclui uma falha”.
Testabilidade de software x mineração Para entender melhor o significado de Testabilidade considera-se a seguinte analogia: Se falhas de software são como ouro, então o teste de software é como o minerador de ouro. A testabilidade de software é como o exame feito por um geólogo antes de a mineração ocorrer. O trabalho do geólogo não é de escavar em busca de ouro. O geólogo estabelece a probabilidade de que escavar em um determinado local será