Erro, defeito ou falha?
No processo de desenvolvimento de software, todos os(as) são humanos e, apesar do uso dos melhores métodos de desenvolvimento, ferramentas ou profissionais,
os(as) permanecem presentes nos produtos, o que torna as atividades de teste fundamentais durante o desenvolvimento de um software. Já vimos que estas atividades correspondem ao último recurso para avaliação do produto antes da sua entrega ao usuário final. O tamanho do projeto a ser desenvolvido e a quantidade de pessoas envolvidas no processo são dois possíveis fatores que aumentam a complexidade dessa tarefa,
e consequentemente aumentam a probabilidade de .
Assim, a ocorrência de é inevitável. Mas o que significa dizer que um programa executado está com
? Basicamente significa que o funcionamento do programa não está de acordo com o esperado pelo usuário. Por exemplo, quando um usuário da linha de produção efetua consultas no sistema das quais só a gerência deveria ter acesso.
Esse tipo de pode ser originado(a) por diversos motivos:
- A especificação pode estar com ou incompleta;
- A especificação pode conter requisitos impossíveis de serem implementados devido a limitações de hardware ou software ou a um(a)
cometido(a) pelo analista de requisito e/ou cliente/usuário na elicitação, especificação, modelagem e validação dos requisitos;
- A base de dados pode estar organizada de forma que não seja permitido distinguir os tipos de usuário;
- Pode ser que haja um(a) no algoritmo de controle dos usuários.
Os(As) normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software. Vamos seguir um exemplo simples de ciclo de vida de desenvolvimento de software: os requisitos expressos pelo cliente são relatados textualmente em um documento de especificação de requisitos. Esse documento é então transformado em casos de uso, que por sua vez foi o artefato de entrada para o projeto do software e definição de sua arquitetura utilizando diagramas de classes da UML. Em seguida, esses modelos de projetos foram usados para a construção do software em uma linguagem que não segue o paradigma orientado a objetos. Observe que durante esse período uma série de transformações foram realizadas até chegarmos ao produto final.
Nesse meio tempo, podem ter sido inseridos(as). Essa série de transformações resultou na necessidade de realizar testes em diferentes níveis, visando avaliar o software em diferentes perspectivas de acordo com o produto gerado em cada fase do ciclo de vida de desenvolvimento de um software.
Antes de iniciarmos uma discussão sobre os níveis de teste de software precisamos esclarecer os conceitos ERRO, DEFEITO e FALHA:
1) é uma ação humana, um ato inconsistente cometido(a) por um indivíduo ao tentar entender uma determinada informação, resolver um problema ou utilizar um método ou uma ferramenta, por exemplo;
2) é uma manifestação concreta de um(a) num artefato de software, por exemplo.
Se executado, o pode causar .
O(A) também é conhecido(a) como BUG;
3) é o comportamento operacional do software diferente do esperado pelo usuário. É uma diferença indesejável entre o observado e o esperado.
Um(a) pode ter sido causado(a) por diversos(as)
e alguns(umas) podem nunca causar um(a) .
Obs.: O texto acima faz parte do artigo "Engenharia de Software - Introdução a Teste de Software" da revista "Engenharia de Software".
|