Início
topics
rastreamento de bugs
O rastreamento de bugs é o processo de registrar e monitorar bugs ou erros durante os testes de software. Também é conhecido como rastreamento de defeitos ou rastreamento de problemas.
Sistemas grandes podem ter centenas ou milhares de defeitos. Cada um precisa ser avaliado, monitorado e priorizado para depuração. Às vezes, os bugs podem precisar ser rastreados por um longo período.
"O rastreamento de defeitos é um processo importante em engenharia de software, pois sistemas complexos e críticos para os negócios têm centenas de defeitos," diz Tutorials Point. "Um dos fatores desafiadores é gerenciar, avaliar e priorizar esses defeitos. O número de defeitos se multiplica ao longo do tempo e, para gerenciá-los efetivamente, um sistema de rastreamento de defeitos é usado para facilitar o trabalho." 1
Saiba como o desktop como serviço (DaaS) permite as empresas atingirem o mesmo nível de performance e segurança ao implementar aplicações no local.
Um bug de software ocorre quando uma aplicação ou programa não funciona da maneira que deveria funcionar. A maioria dos erros são falhas ou enganos feitos por arquitetos de sistema, designers ou desenvolvedores. As equipes de teste usam o rastreamento de bugs para monitorar e relatar erros que ocorrem à medida que uma aplicação é desenvolvida e testada.
"Um componente principal de um sistema de rastreamento de bugs é um banco de dados que registra fatos sobre bugs conhecidos," de acordo com a Wikipedia. “Os fatos podem incluir a hora em que um bug foi relatado, sua gravidade, o comportamento errôneo do programa e detalhes sobre como reproduzir o bug; bem como a identidade da pessoa que o denunciou e de quaisquer programadores que possam estar corrigindo o problema.” 2
Durante sua vida útil, um único defeito pode passar por várias etapas ou estados. Eles incluem:
Os bugs são gerenciados com base na prioridade e gravidade. Os níveis de gravidade ajudam a identificar o impacto relativo de um problema em um lançamento de produto. Essas classificações podem variar em número, mas geralmente incluem alguma forma dos seguintes:
Geralmente, os estados e níveis de gravidade são monitorados em um banco de dados de rastreamento de bugs. Uma boa plataforma de rastreamento também se integra a sistemas maiores de gerenciamento e desenvolvimento de software: melhor para avaliar o status do erro e o impacto potencial na produção geral e nos prazos.
Estima-se que os desenvolvedores de software cometam de 100 a 150 erros a cada mil linhas de código.4De acordo com um relatório do Consortium for IT Software Quality (CISQ): “Mesmo que apenas uma pequena fração — digamos, 10% — desses erros seja grave, então uma aplicação relativamente pequena de 20.000 linhas de código terá aproximadamente 200 erros graves de codificação." 5
O teste de software é essencial para isolar e mitigar erros. Um bom processo de QA pode revelar centenas ou até milhares de defeitos, e as equipes de teste precisam gerenciar todos eles. Integrar o rastreamento de bugs ao fluxo de trabalho de teste melhora a eficiência, ajudando os testadores a priorizar, monitorar e relatar o status de cada erro.
"O rastreamento de defeitos ajuda a garantir que os bugs encontrados no sistema sejam realmente corrigidos", diz a consultora ágil, Yvette Francino. "As ferramentas de rastreamento não apenas fornecem uma maneira de garantir o acompanhamento, mas também fornecem métricas valiosas. Dependendo da ferramenta que é usada, a equipe pode vincular defeitos ao código alterado, testes ou outros dados que permitirão rastreabilidade ou análise sobre tendências de defeitos.” Se um certo módulo está repleto de defeitos, pode ser hora de revisar e reescrever o módulo."6
Idealmente, os testes devem ser feitos o mais cedo possível — quando os bugs são mais fáceis e muito menos custosos para corrigir. Um estudo anterior da IBM descobriu que defeitos encontrados após a produção ou após o lançamento podem custar 15 vezes mais para corrigir em comparação com erros resolvidos no início do desenvolvimento.
Muitas equipes agora estão usando uma metodologia conhecida como teste contínuo. Neste caso, testes de qualidade e feedback são conduzidos em todas as etapas do desenvolvimento, desde o design e codificação até a implementação. Tecnologias modernas como a inteligência artificial (IA) também podem auxiliar o processo de teste ao detectar e analisar bugs no início do ciclo de vida.
O controle de qualidade é crítico para o desenvolvimento de aplicações robustas. Ferramentas de gerenciamento de mudanças em testes de software e rastreamento de bugs permitem que as equipes descubram defeitos, meçam seu escopo e impacto — e os resolvam.
Na Harvard Business Review, Nicholas Bowen delineia um processo para gerenciar defeitos. O primeiro passo é classificar e priorizar: "Geralmente, as equipes priorizarão dois tipos de bugs: aqueles que fazem o sistema falhar e aqueles que são menos graves, mas podem ser pervasivos... Em seguida, decida seu tempo de resposta alvo para cada nível de gravidade. Se o sistema de gerenciamento de qualidade é novo, então o foco inicial deve ser na correção dos bugs mais graves dentro de horas ou dias. Ao utilizar seu sistema, você pode coletar dados sobre duas métricas chave: taxas de bugs recebidos e a produtividade dos responsáveis pela correção dos bugs, e ajustar seus objetivos conforme necessário." Ele diz que as organizações também precisam criar um sistema onde os defeitos e o tempo necessário para resolvê-los possam ser revisados em todos os níveis, do CEO para baixo.7
Um bom sistema de rastreamento de bugs pode auxiliar esse processo fornecendo um fluxo de trabalho único para monitoramento de defeitos, relatórios e rastreabilidade do ciclo de vida. Ele deve ainda se integrar a outros sistemas de gerenciamento para visibilidade compartilhada e feedback tanto dentro do desenvolvimento de software quanto na organização mais ampla. O IBM Rational ClearQuest, por exemplo, oferece uma plataforma centralizada para rastreamento e relatório de erros. Ele se integra a outros sistemas de desenvolvimento e gerenciamento de mudanças da IBM, ajudando a melhorar a comunicação e colaboração entre desenvolvedores, operações e equipes mais amplas.
Além disso, procure por sistemas de teste e rastreamento que utilizem IA para detectar erros no início do processo de desenvolvimento. Isso pode otimizar o número e os tipos de testes que as equipes executam, automatizar o processo de teste e usar IA para analisar defeitos passados e preveni-los no futuro.
Software de gerenciamento de mudanças que ajuda a aumentar a produtividade do desenvolvedor e, ao mesmo tempo, acomoda as metodologias, os processos e as ferramentas que melhor se adaptam ao projeto e à equipe.
Obtenha resultados de testes de volta ao desenvolvimento mais rápido. Reduza riscos e custos corrigindo defeitos mais cedo.
Obtenha insights abrangentes de ferramentas populares de integração contínua e entrega contínua para aumentar a velocidade, qualidade e controle de suas aplicações.
A engenharia de plataforma é o que vem a seguir em DevOps. Acelere o tempo de comercialização (TTM) com experiência de desenvolvedor.
Aprenda sobre os tipos, benefícios e evolução do teste de software.
O IBM Developer oferece as ferramentas para ajudar os desenvolvedores a construir e manter componentes de software.
Saiba como os testes contínuos integrados aceleram o desenvolvimento de aplicações.
Todos os links levam para fora do site ibm.com
1 https://www.tutorialspoint.com/software_testing_dictionary/defect_logging_and_tracking.htm
2 https://en.wikipedia.org/wiki/Bug_tracking_system
3 https://www.tutorialspoint.com/software_testing_dictionary/defect_life_cycle.htm
4 https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
5 https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
6 https://techbeacon.com/app-dev-testing/pros-cons-defect-tracking
7 https://hbr.org/2019/09/why-fixing-software-bugs-should-be-the-ceos-problem