Conceitos básicos

Para começarmos a estudar Testes de Software é importante entender sua terminologia, ou seja, um conjunto de termos que são usados nessa área. Usando esses termos da maneira correta vai nos ajudar a entender os conceitos que serão apresentados a medida que avançamos no curso.

Falha, defeito e erro

É comum ouvir termos diferentes para indicar que um sistema de software não está se comportando conforme o esperado. Apenas para citar alguns: erro, engano, defeito, bug e falha. Para descrever os eventos que levaram a uma falha de software com mais precisão, precisamos concordar com um determinado vocabulário. Por enquanto, isso se resume a três termos: falha, defeito e erro.

Falha

Uma falha é um componente do sistema (software) que não está se comportando conforme o esperado. As falhas geralmente são visíveis para o usuário final. Um exemplo de falha é um aplicativo móvel que para de funcionar ou um site de notícias que começa a exibir as notícias de ontem em sua primeira página. Em resumo, o sistema de software fez algo que não deveria fazer.

Defeitos

Falhas geralmente são causados por defeitos. Um defeito é a falha no componente do sistema que fez com que o sistema se comportasse incorretamente. Uma defeito reside na parte técnica e, em nosso mundo, geralmente se refere ao código-fonte, como uma comparação em uma instrução if que usa um operador "menor que" (<) em vez de um operador "maior que" (>). Uma conexão interrompida em um banco de dados, uma falha numa transação ou algo do tipo é um exemplo de defeito de hardware.

Observe que a existência de uma defeito no código-fonte não leva necessariamente a uma falha. Se o código que contém o defeito nunca for executado, ele nunca causará uma falha.

As falhas ocorrem apenas quando o sistema está sendo usado e alguém percebe que ele não está se comportando conforme o esperado.

Erro

Por fim, temos um erro. Um erro é a ação humana que fez com que o sistema não funcionasse conforme o esperado. Por exemplo, um desenvolvedor não criou testes para uma condição obscura porque entendeu mal o requisito.

Em outras palavras: um erro de um desenvolvedor pode levar a um defeito no código-fonte que acabará resultando em uma falha do sistema. No exemplo de código Min-Max anterior: a falha foi o programa retornando um grande número, o defeito foi uma condição if / else if mal construída e o erro foi o desenvolvedor não lidar adequadamente com aquele caso.

Referências

  • Software Testing: From Theory to Practice.

Last updated

Was this helpful?