Por que eu devo ler este artigo:O processo de desenvolvimento de software cria produtos com defeitos. Na maioria das vezes, os defeitos são considerados riscos para a imagem da empresa e o negócio. Por isso, apenas descobri-los não é suficiente. É fundamental adotar o gerenciamento de defeitos no processo de teste para que os riscos sejam minimizados, controlados, evidenciados e o seu impacto não seja grande.

A gestão de defeitos é essencial para lidar com os problemas encontrados durante todo o ciclo de desenvolvimento de software. Neste artigo, são apresentados conceitos e ferramentas que propiciam um melhor gerenciamento das atividades de Teste, garantindo mais qualidade ao processo de desenvolvimento como um todo.

Há quem diga que encontrar defeitos é a finalidade exclusiva do Teste de Software, mas não é bem assim. O grande objetivo do Teste é garantir qualidade ao sistema, o que não quer dizer que o mesmo vai ser entregue ao cliente sem nenhum problema. Garantir qualidade significa minimizar os riscos e deixar o produto final com o menor número de erros possível. Risco é a probabilidade de insucesso, em função de algum acontecimento eventual, incerto, cuja ocorrência não depende exclusivamente da vontade dos interessados. Para evitar os defeitos, diminuir os riscos torna-se fundamental. Afinal, quanto menor o risco, menor a probabilidade de encontrar bugs. Essa afirmação deve ser aplicada tanto para o projeto de desenvolvimento de software, como para o de Teste.

Seria perfeito se os defeitos não existissem, e os bugs jamais impedissem o bom funcionamento de um software. No entanto, enquanto não chegamos a essa situação ideal, gerenciar os defeitos produzidos torna-se essencial.

Mudanças no processo de desenvolvimento de software ocorrem a todo o momento, por inúmeras razões, como restrições de tempo e custo, novas possibilidades de negócios e alteração nas necessidades de clientes. Em função disso, saber identificar a importância dos defeitos é fundamental para entender o impacto que eles causarão no sistema e nos negócios da empresa.

Por isso, é importante que a gestão de defeitos seja realizada, pois a mesma possibilita uma visão geral e consequentemente um melhor acompanhamento do andamento do projeto, através da verificação dos bugs registrados.

Neste contexto, a qualidade do sistema pode ser medida a partir dos bugs encontrados durante todo o seu ciclo de vida, desde a fase de projeto, até ser colocado efetivamente em produção. E para que os bugs sejam gerenciados com sucesso, é necessário que a gestão de defeitos seja utilizada de maneira simples, tornando-se de fundamental importância dentro de um processo de Teste de Software.

Processo de Gestão de Defeitos

Para facilitar o entendimento da gestão de defeitos, é necessário, antes de tudo, esclarecer alguns conceitos. Muitas pessoas confundem o significado de defeito, erro e falha. Mas afinal, qual a diferença entre eles?

Segundo o Syllabus, livro base para obtenção da Certificação Foundation Level, da International Software Testing Qualification (ISTQB), a diferença pode ser representada através da Figura 1.

Diferença entre Erro, Defeito e Falha
Figura 1. Diferença entre Erro, Defeito e Falha

Como podemos ver na representação da Figura 1, os defeitos são resultados de erros existentes no sistema ou em outros artefatos desenvolvidos por seres humanos e que podem provocar falhas nos softwares. A explicação de cada conceito é resumida em:

  • Erro (engano): ação humana que produz resultados incorretos, como por exemplo, a implementação errada de um algoritmo;
  • Defeito (bug): falha em um sistema que pode ocasionar uma anomalia ao tentar desempenhar sua devida função. Por exemplo, omissão de informações e cálculos incorretos;
  • Falha: ação inesperada no software. Por exemplo, o sistema apresenta resultados diferentes do planejado.

Além da definição do que é um bug, outras questões devem estar bem claras para toda a equipe:

  • O problema encontrado é um defeito ou uma melhoria? Para responder a esse questionamento, lembre-se sempre que a melhoria deve ser sugerida para proporcionar algum benefício no software, enquanto o erro impactará na obtenção de um resultado diferente do esperado;
  • O quão crítico é o bug? Cada bug encontrado deve ser classificado de acordo com a sua criticidade. Para isso, é essencial definir qual será o impacto no projeto caso o problema não seja resolvido;
  • ...
    Quer ler esse conteúdo completo? Tenha acesso completo