Gestão de Defeitos no Teste de Software
Neste artigo veremos os conceitos, melhores práticas, ferramentas, vantagens do gerenciamento de defeitos e como ele é fundamental no processo de teste de software.
Este Artigo faz parte da Revista Java Magazine Edição 70 Ver Revista
Artigos Java Gestão de Defeitos no Teste de Software
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.
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;