Início > Processo de Desenvolvimento > Falha, Erro e Defeito

Falha, Erro e Defeito

É importante distinguir falha, erro e defeito para que se crie uma linguagem comum entre os membros de uma equipe e para que se possa fazer uma análise de causa raiz quando um problema ocorre.

A figura abaixo mostra o posicionamento do problema de acordo com sua proximidade com determinado domínio:

Fig. 1 – Relação entre falha, erro e defeito

Fig. 1 – Relação entre falha, erro e defeito

A Falha (fault) ocorre em hardware e em tempo de codificação, por isso a idéia de falha está intimamente associada ao universo físico. Ao codificar, um desenvolvedor Java pode, por exemplo, trocar um “==” (comparação) por um “=” (atribuição) em uma situação que não é testada. Esse tipo de falha fica em estado latente até que a situação não testada ocorra e cause um erro.

Um Erro (error) indica que certas funcionalidades do software não estão se comportando como especificado. Erros geram instabilidade nas aplicações, pois causam a corrupção de dados e informações. Sendo assim, erros fazem parte do universo da informação. O erro é necessariamente causado por uma falha, mas nem toda falha incorre em erro uma vez que a combinação de variáveis que o causam pode nunca ocorrer.

O Defeito (failure) é a manifestação do erro, seja através de uma tela com uma mensagem para o usuário, um stack trace, ou etc. Como o defeito pode ser percebido pelo usuário final, ele faz parte do universo do usuário.

Um Exemplo Fictício

Um usuário liga para o suporte e alega que “ta dando erro/pau no sistema”. Ele diz que o pedido que ele criou está incorreto na tabela de visualização de pedidos. A descrição do pedido aparece na coluna do nome do cliente e vice-versa.

Claramente, ele relatou um defeito, pois ele percebeu que as informações preenchidas foram exibidas no lugar errado na tabela.

Começando a investigação do problema, constatamos que há um erro, pois está especificado que na coluna descrição deve aparece a descrição do pedido e não o nome do cliente.

Rodando os testes unitários que exercitam as regras de negócio, verificamos que todos os resultados estão de acordo com o esperado, o que nos indica que devemos subir um pouco mais e olhar a camada de apresentação. Lá, encontramos a falha. Verificamos que o programador atribuiu os campos incorretos às colunas da tabela de visualização de pedidos.

Conclusão

É importante ter bem clara a definição de conceitos antes de começarmos a investigar um problema.

Anúncios
  1. Nenhum comentário ainda.
  1. 01/05/2010 às 2:53 PM

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: