Qualidade de Software - Fatores Psicológicos
Fatores psicológicos Segundo Koscianski e Soares (Koscianski e Soares, 2007), há duas boas razões para que um programador não teste o próprio código. O propósito de um caso teste é de certa forma destruir o trabalho do programador revelando um defeito. Esse assunto foi comentado por Yourdon (1989); “O autor não possui nenhuma motivação psicológica para inventar casos de teste que confundirão os delicados mecanismos dentro do código. demonstrem que seu produto está com falhas ou errado... tratam seus programas como frágeis peças de porcelana chinesa e fornecerão casos de teste que certamente não confundirão os delicados mecanismos dentro do código.” Essa idéia de “destruição” é comentada também por Weinberg (1971): “Como o código é resultado do trabalho intelectual do programador, procurar erros é espécie de ataque as suas próprias convicções”. Essa situação provoca um fenômeno chamado dissonância cognitiva, no qual o individuo resiste a cumprir a tarefa. Um programador que realmente vê seu programa como uma extensão do próprio ego não tentará encontrar todos os erros. Ao contrário, tentará provar que o programa está correto, mesmo que isto signifique ignorar erro que, para outras pessoas, são gravíssimos.
Ainda segundo Koscianski e Soares (Koscianski e Soares, 2007), um segundo motivo é que dificilmente um programador consegue criar um caso de teste que rompa com a lógica de funcionamento de seu próprio código. Entretanto, são justamente as situações “impossíveis” que devem ser verificadas. Um bom exemplo disso é Comentado – uma rotina que “ jamais” receberia um parâmetro nulo acabou falhando exatamente por causa disso.
Há dois tipos de casos de teste que revelam falhas com certa freqüência: escolher valores limites de parâmetro ou combinações de valores que violem as especificações do software.
Steve McConnell (McConnell, 2006) faz interessantes observações acerca dos testes executados pelo