Causas raiz de bugs de software – encontradas na produção

Onde se originam os defeitos de software?

Defeitos de software são inevitáveis. Um equívoco comum é que os defeitos são causados apenas por códigos defeituosos, NÃO é assim. Na verdade, mais defeitos são causados por requisitos inadequados, arquitetura deficiente ou design deficiente (coletivamente) do que por código deficiente.

Normalmente, o conceito de defeito ou bug é pensado como “não conformidade com os requisitos” e, ainda assim, se os requisitos estiverem errados, ainda poderemos ter um bug? Sim! Um bug ou defeito é uma falha em atingir o resultado desejado. Se o resultado desejado for mal descrito (ou seja, requisitos inadequados), ainda teremos um bug, mesmo que o código faça exatamente o que o requisito específico descreve.

Precisamos pensar de forma mais holística sobre a qualidade e como satisfazer os objetivos ou resultados.

Então, quais são as causas dos bugs de software e por que devemos nos importar?

Ao examinar as causas raízes dos bugs de software, onde e quando os bugs aparecem primeiro, podemos estabelecer melhores maneiras de evitá-los no futuro. Nosso objetivo é encontre e corrija os problemas o mais cedo possível, para que não sejam experimentados pelos usuários.

É interessante notar no gráfico acima que mais defeitos vêm do trabalho de pré-codificação do que da codificação em si. Ou seja, a soma dos defeitos de requisitos, arquitetura e design é maior que os defeitos de codificação. Dado que o código é construído com base nos três anteriores, acabaremos codificando a coisa errada ou da maneira errada, a menos que consertemos primeiro esses defeitos de pré-codificação.

Potencial de defeito

O potencial de defeito é o número provável de defeitos gerados e latentes em cada artefato. Por exemplo, se passarmos um dia escrevendo requisitos, é inevitável que cometamos alguns erros. Podemos então dizer que existe um potencial de defeito baseado no tamanho dos requisitos. Usar uma métrica universal para tamanho (o ponto de função) nos permite comparar potenciais de defeitos em diferentes artefatos.

Se você tiver uma compreensão do potencial defeito, poderá então dar o próximo passo e considerar as etapas necessárias para detectar esses defeitos, removê-los e então verificar se eles foram removidos.

Origens do defeito

Origem do defeito (defeitos por ponto de função) Melhor Média Pior
Requisitos 0.34 0.70 (16.5%) 1.35
Arquitetura e Design 0.67 1.05 (25%) 1.78
Código 0.44 1.15 (27%) 2.63
Falhas de segurança 0.18 0.25 (6%) 0.4
Documentos 0.20 0.45  (10.5%) 0.54
Correções ruins 0.39 0.65 (15%) 1.26
Total 2.22 4.25 7.96

Medido em defeitos por ponto de função para um sistema de 1000 FP. Fonte: pág. 256. Capers Jones, Quantificando Software, 2018 CRC Press.

Devemos começar com a premissa de que uma equipe de desenvolvimento de software não fará um trabalho perfeito, mas poderá fazer um trabalho excelente. Em média, porém, eles farão um trabalho mediano. E com qualquer trabalho de conhecimento, erros surgirão. É muito útil considerar a ideia de potencial defeito. Potencial de defeito é a ideia de que um determinado software provavelmente terá um número provável de defeitos, a menos e até que esses defeitos sejam removidos. Os potenciais de defeito variam de acordo com o tamanho. Isso significa que um aplicativo grande tem maior tendência a apresentar erros do que um aplicativo pequeno.

Obtenha melhor qualidade

O aspecto mais demorado do desenvolvimento de software é encontrar e corrigir bugs.

Em projetos ágeis, podemos ver que até 40% do esforço geral é retrabalho, causado principalmente pela baixa qualidade do trabalho de pré-codificação. A maior parte deste esforço desperdiçado pode ser evitada prestando mais atenção à qualidade desde o início – antes do início da codificação. Qualquer coisa que possa ser feita para evitar bugs deve ser levada a sério. Evitar e prevenir defeitos requer proatividade.

Para compreender completamente como podemos acelerar a jornada rumo à excelente qualidade, precisamos considerar todos os seguintes itens:

  • Potenciais de defeito
  • Descoberta de defeitos
  • Evitar Defeitos
  • Remoção de defeitos

Estes precisam ser considerados no contexto de, pelo menos, requisitos, design, código e testes. Em outras palavras, começando com os requisitos:

  • qual é o defeito dos requisitos potencial?
  • como vamos descobrir os defeitos dos requisitos?
  • como podemos nós evitar os defeitos dos requisitos?
  • e como podemos remover os defeitos dos requisitos?

Repita as mesmas perguntas para design, código e testes.  Saiba como o ScopeMaster pode encontrar possíveis defeitos de requisitos para que você possa corrigi-los facilmente.

ScopeMaster irá ajudá-lo prevenir erros, certificando-se de que seus requisitos sejam de alta qualidade.

Bugs de produção de até 35% são decorrentes de requisitos inadequados

Em janeiro de 2021, a Accenture reconheceu no Fórum de Inteligência de Software que tantos quantos 35% de defeitos de produção são causados por problemas de requisitos, de acordo com seus dados baseados em 1.000 projetos. O que isto significa é que, na maioria dos projetos, o trabalho de garantia da qualidade dos requisitos está falhando. Além disso, outros problemas de requisitos estão entre os mais caros para corrigir após o início da codificação. Encontrar maneiras de resolver problemas de requisitos é possível através de uma combinação de educação, tempo, atenção à qualidade e automação. É aqui que o ScopeMaster pode ajudar, o ScopeMaster pode encontrar com segurança 50% de problemas de requisitose ajudá-lo a corrigi-los rapidamente também. No geral, usar o ScopeMaster ajuda a encontrar e corrigir problemas dez vezes mais rápido do que tentar fazer o mesmo manualmente.

Para detectar possíveis defeitos nos requisitos, devemos examiná-los detalhadamente. Felizmente, o trabalho pesado agora é feito para nós pelo ScopeMaster, a primeira e mais avançada ferramenta de análise de requisitos de software do mundo.

Relatório de Qualidade de Requisitos por ScopeMaster

A qualidade de altos requisitos é a chave para minimizar defeitos de software

O ScopeMaster avalia a qualidade dos seus requisitos.