1 Introdução

Existem várias maneiras de melhorar a qualidade do código. Uma delas é usar um padrão de codificação que garanta consistência. Deve haver cuidado para analisar e testar o código completamente antes de terminar seu projeto. Também é necessário seguir as melhores práticas de codificação e aproveitar as ferramentas automatizadas.
Melhorar a qualidade do código traz uma série de vantagens principais. Garantir que a qualidade do código seja boa pode aumentar a eficiência do seu projeto e reduzir o risco de falha do seu projeto. Um código de boa qualidade também é simples, o que significa que os níveis de complexidade são reduzidos e fáceis de manter. No geral, tudo isso resulta em projetos e software mais bem-sucedidos e econômicos.
No campo da engenharia de software, a análise da qualidade do código é essencial para garantir a eficácia e a eficiência dos projetos desenvolvidos. Esta base de dados foi criada para investigar a relação entre o número de bugs reportados, a cobertura de código e a qualidade percebida do código em diferentes tipos de projetos de software (Web, Mobile, Desktop).

2 Objetivo

O objetivo deste estudo é analisar a relação entre a cobertura de código e o número de bugs reportados em diferentes tipos de projetos de software. Além disso, buscamos entender como a qualidade do código é percebida em projetos com diferentes níveis de bugs e cobertura de código.

3 Metodologia

1. Coleta de Dados: Os dados foram coletados de diversos projetos de software desenvolvidos em diferentes ambientes (Web, Mobile, Desktop). Para cada projeto, foram registrados o número de bugs reportados, a cobertura de código obtida através de testes automatizados, o tipo de projeto e a avaliação da qualidade do código.

  • Organização do data frame em 3 data frames (WEB, MOBILE e DESKTOP).
  • Análise Exploratória de Dados e Medidas Estatísticas para cada data frame.
  • Análise dos dados quantitativos (Bugs Reportados e Cobertura de Código).
  • Análise Descritiva: Será realizada uma análise descritiva para entender a distribuição das variáveis e identificar padrões iniciais nos dados.

2. Relacionar: Relação entre a cobertura de código e a qualidade percebida do código em diferentes tipos de projetos (Web, Mobile, Desktop). Avaliar como a cobertura de testes influencia a quantidade de bugs reportados.

  • Gráficos de Dispersão.

3. Análise Inferencial: Serão aplicadas técnicas estatísticas para investigar as relações entre as variáveis quantitativas (bugs reportados e cobertura de código) e qualitativas (tipo de projeto e qualidade do código).

  • Relação entre as variáveis quantitativas e qualitativas.
  • Modelo de regressão linear múltipla.

4. Variáveis:

ID
Descrição: Identificador único para cada registro no conjunto de dados.
Tipo: Quantitativa Discreta.

Bugs Reportados
Descrição: Número de bugs reportados durante o ciclo de vida do projeto.
Tipo: Quantitativa Discreta.
Importância: Esta variável fornece uma medida direta dos problemas encontrados no software, afetando diretamente a satisfação do usuário e a qualidade geral do produto.

Cobertura de Código
Descrição: Porcentagem de cobertura de código obtida através de testes automatizados.
Tipo: Quantitativa Contínua.
Importância: A cobertura de código é uma métrica crucial para avaliar a eficácia dos testes. Uma alta cobertura de código geralmente indica que uma maior parte do código foi testada, potencialmente reduzindo a quantidade de bugs.

Tipo de Projeto
Descrição: Tipo de projeto de software (Web, Mobile, Desktop).
Tipo: Qualitativa Nominal.
Importância: Diferentes tipos de projetos podem apresentar desafios distintos. Por exemplo, projetos Web podem focar mais na responsividade e escalabilidade, enquanto projetos Mobile podem priorizar a performance e a usabilidade.

Qualidade do Código
Descrição: Avaliação da qualidade do código (Excelente, Boa, Regular, Ruim).
Tipo: Qualitativa Ordinal.
Importância: A qualidade do código é uma medida subjetiva que pode influenciar a manutenção e a evolução do software. Código de alta qualidade é mais fácil de entender, modificar e escalar.

Dados a serem Analisados

  • Os dados a serem analisados estão dispesos na tabela a seguir, todos os dados possuem 4 variáveis importantes para a análise, sendo duas quantitativas (Bugs Reportados e Cobertura de Código) e duas qualitativas (Tipo de Projeto e Qualidade do Código). Para uma melhor análise, a tabela será dividida em 3 tabelas distintas separadas por cada tipo de projeto.

4 Análise Exploratória de Dados e Medidas Estatísticas

4.1 Diagrama de Ramo-e-Folhas

  • O diagrama de Ramo e Folhas nos dará uma dimensão de todos os dados de acordo com sua densidade relativa. Ele nos apresenta de forma rápida uma visão geral de os dados.

Bugs Reportados (WEB)

## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   0 | 00235788
##   1 | 69
##   2 | 7
##   3 | 178
##   4 | 44577
##   5 | 3
##   6 | 4
##   7 | 66
##   8 | 00346
##   9 | 04

Cobertura de Código (%) (WEB)

## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   5 | 2
##   5 | 557899
##   6 | 122
##   6 | 69
##   7 | 4
##   7 | 69
##   8 | 0
##   8 | 788
##   9 | 1112234
##   9 | 5789

Bugs Reportados (MOBILE)

## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   0 | 4557
##   1 | 344566
##   2 | 2477
##   3 | 01468
##   4 | 14
##   5 | 19
##   6 | 2258
##   7 | 8
##   8 | 02
##   9 | 149

Cobertura de Código (%) (MOBILE)

## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   5 | 14
##   5 | 5
##   6 | 013
##   6 | 788899
##   7 | 4
##   7 | 59
##   8 | 124
##   8 | 577789
##   9 | 24
##   9 | 5677999

Bugs Reportados (DESKTOP)

## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   0 | 157799
##   1 | 16688
##   2 | 79
##   3 | 00123
##   4 | 7
##   5 | 58
##   6 | 1257
##   7 | 355788
##   8 | 2569
##   9 | 04

Cobertura de Código (%) (DESKTOP)

## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   5 | 3
##   5 | 66667789
##   6 | 014
##   6 | 6778
##   7 | 122
##   7 | 689
##   8 | 00124
##   8 | 55668
##   9 | 023
##   9 | 7
##   10 | 0

4.2 Tabela de Distribuição de Frequência

  • A Tabela de Distribuição de Frequência vai nos permitir ver com clareza informações sobre a distribuição dos valores de uma variável. Os resultados apresentam uma tabela de distribuição de frequência com intervalos de classe, frequências simples (Freq. Simples), frequências relativas (Freq. Rel), frequências acumuladas (Freq. Acum.), e frequências acumuladas relativas (Freq. Acum. Rel).

Bugs Reportados (WEB)

Intervalos Freq. Simples Freq. Rel Freq. Acum. Freq. Acum. Rel NA
[0,15.823) 8 0.2666667 26.666667 8 26.66667
[15.823,31.647) 4 0.1333333 13.333333 12 40.00000
[31.647,47.47) 7 0.2333333 23.333333 19 63.33333
[47.47,63.293) 1 0.0333333 3.333333 20 66.66667
[63.293,79.117) 3 0.1000000 10.000000 23 76.66667
[79.117,94.94) 7 0.2333333 23.333333 30 100.00000

A distribuição dos bugs reportados nos projetos Web revela uma variedade significativa. A maior concentração de projetos está nos intervalos de 0 a 31.647 bugs reportados, onde aproximadamente dois terços dos projetos estão localizados. Isso sugere que a maioria dos projetos Web tem um número moderado de bugs, enquanto projetos com números extremos (muito baixos ou muito altos) são menos frequentes.

Cobertura de Código (%) (WEB)

Intervalos Freq. Simples Freq. Rel Freq. Acum. Freq. Acum. Rel NA
[51.2424,59.3973) 7 0.2333333 23.333333 7 23.33333
[59.3973,67.5522) 4 0.1333333 13.333333 11 36.66667
[67.5522,75.7071) 2 0.0666667 6.666667 13 43.33333
[75.7071,83.862) 3 0.1000000 10.000000 16 53.33333
[83.862,92.0169) 8 0.2666667 26.666667 24 80.00000
[92.0169,100.172) 6 0.2000000 20.000000 30 100.00000

Nota-se que a maioria dos projetos Web (26.67%) possui uma cobertura de código na faixa de 83.862% a 92.0169%. Esta distribuição sugere que, embora haja uma variação nos níveis de cobertura, a maior parte dos projetos Web apresenta níveis de cobertura de código razoavelmente elevados. A frequência acumulada indica que 80% dos projetos Web têm uma cobertura de código que varia de 51.2424% a 92.0169%.

Bugs Reportados (MOBILE)

Intervalos Freq. Simples Freq. Rel Freq. Acum. Freq. Acum. Rel NA
[3.96,17.679) 10 0.3030303 30.303030 10 30.30303
[17.679,31.397) 6 0.1818182 18.181818 16 48.48485
[31.397,45.116) 5 0.1515152 15.151515 21 63.63636
[45.116,58.834) 1 0.0303030 3.030303 22 66.66667
[58.834,72.553) 5 0.1515152 15.151515 27 81.81818
[72.553,86.271) 3 0.0909091 9.090909 30 90.90909
[86.271,99.99) 3 0.0909091 9.090909 33 100.00000

Nota-se que a maior frequência de bugs reportados (30.30%) está na faixa de 3.96 a 17.679. A distribuição acumulada mostra que 66.67% dos projetos Mobile possuem até 58.834 bugs reportados, enquanto 100% dos projetos estão distribuídos entre 3.96 e 99.99 bugs reportados. Isso sugere uma variabilidade na quantidade de bugs encontrados nos projetos Mobile, com uma concentração significativa de projetos apresentando uma quantidade moderada a alta de bugs.

Cobertura de Código (%) (MOBILE)

Intervalos Freq. Simples Freq. Rel Freq. Acum. Freq. Acum. Rel NA
[50.9355,57.9981) 3 0.0909091 9.090909 3 9.090909
[57.9981,65.0607) 3 0.0909091 9.090909 6 18.181818
[65.0607,72.1233) 6 0.1818182 18.181818 12 36.363636
[72.1233,79.186) 3 0.0909091 9.090909 15 45.454546
[79.186,86.2486) 4 0.1212121 12.121212 19 57.575758
[86.2486,93.3112) 6 0.1818182 18.181818 25 75.757576
[93.3112,100.374) 8 0.2424242 24.242424 33 100.000000

Nota-se que a maior frequência de cobertura de código (24.24%) está na faixa de 93.3112% a 100.374%. A distribuição acumulada indica que 75.76% dos projetos Mobile possuem até 86.2486% de cobertura de código, enquanto 100% dos projetos estão distribuídos entre 50.9355% e 100.374% de cobertura. Isso sugere uma variabilidade na cobertura de código nos projetos Mobile, com a maioria dos projetos apresentando uma cobertura moderada a alta, mas com uma distribuição variada ao longo das faixas analisadas.

Bugs Reportados (DESKTOP)

Intervalos Freq. Simples Freq. Rel Freq. Acum. Freq. Acum. Rel NA
[0.99,14.411) 7 0.1891892 18.918919 7 18.91892
[14.411,27.833) 5 0.1351351 13.513514 12 32.43243
[27.833,41.254) 6 0.1621622 16.216216 18 48.64865
[41.254,54.676) 1 0.0270270 2.702703 19 51.35135
[54.676,68.097) 6 0.1621622 16.216216 25 67.56757
[68.097,81.519) 6 0.1621622 16.216216 31 83.78378
[81.519,94.94) 6 0.1621622 16.216216 37 100.00000

A maior frequência de bugs reportados (18.92%) está na faixa de 0.99 a 14.411. A distribuição acumulada indica que 51.35% dos projetos Desktop têm até 41.254 bugs reportados, enquanto 100% dos projetos estão distribuídos entre 0.99 e 94.94 bugs reportados. Isso sugere uma variação considerável na quantidade de bugs reportados nos projetos Desktop, com alguns projetos apresentando números significativos de bugs e outros com quantidades relativamente baixas.

Cobertura de Código (%) (DESKTOP)

Intervalos Freq. Simples Freq. Rel Freq. Acum. Freq. Acum. Rel NA
[52.1433,59.0824) 9 0.2432432 24.324324 9 24.32432
[59.0824,66.0216) 3 0.0810811 8.108108 12 32.43243
[66.0216,72.9607) 7 0.1891892 18.918919 19 51.35135
[72.9607,79.8998) 4 0.1081081 10.810811 23 62.16216
[79.8998,86.8389) 8 0.2162162 21.621622 31 83.78378
[86.8389,93.7781) 4 0.1081081 10.810811 35 94.59459
[93.7781,100.717) 2 0.0540541 5.405405 37 100.00000

A maior frequência de cobertura de código (24.32%) está na faixa de 52.1433 a 59.0824%. A distribuição acumulada mostra que 62.16% dos projetos Desktop têm uma cobertura de código de até 79.8998%. A variação na cobertura de código entre os projetos Desktop indica que alguns têm coberturas mais altas, enquanto outros apresentam coberturas mais baixas, influenciando potencialmente a qualidade e a quantidade de bugs reportados nos projetos.

4.3 Histograma

  • Os histogramas apresentados a seguir ilustram a distribuição dos bugs reportados e da cobertura de código em três tipos distintos de projetos: Web, Mobile e Desktop. Estas visualizações são fundamentais para entender as variações e padrões em relação à quantidade de bugs reportados e à cobertura de código em cada tipo de projeto. Observando essas distribuições, podemos identificar tendências e diferenças significativas que refletem as características específicas e os desafios enfrentados em cada plataforma. A comparação entre os histogramas permite uma análise aprofundada das relações entre cobertura de código e qualidade do software, oferecendo uma grande compreensão para estratégias de melhoria contínua no desenvolvimento de software.

Bugs Reportados (WEB)

Cobertura de Código (%) (WEB)

Bugs Reportados (MOBILE)

Cobertura de Código (%) (MOBILE)

Bugs Reportados (DESKTOP)

Cobertura de Código (%) (DESKTOP)

4.4 Ogiva

  • A ogiva apresentada a seguir mostra a distribuição cumulativa dos bugs reportados nos projetos Web, Mobile e Desktop. Esta visualização facilita a compreensão da frequência acumulada dos bugs reportados ao longo de diferentes intervalos. Através da ogiva, é possível identificar a concentração de bugs reportados e avaliar a tendência geral de crescimento cumulativo, o que ajuda a entender a severidade e o comportamento dos bugs ao longo do tempo. Esta análise é essencial para determinar os pontos críticos e áreas que necessitam de mais atenção e recursos no processo de desenvolvimento e manutenção de software.

Bugs Reportados (WEB)

Cobertura de Código (%) (WEB)

Bugs Reportados (MOBILE)

Cobertura de Código (%) (MOBILE)

Bugs Reportados (DESKTOP)

Cobertura de Código (%) (DESKTOP)

5 Análise Descritiva

  • As tabelas a seguir apresentam uma análise descritiva das colunas “Bugs Reportados” e “Cobertura de Código” para os projetos Web, Mobile e Desktop. São exibidas as medidas de tendência central (média, mediana, moda) e de dispersão (amplitude, variância, desvio padrão, coeficiente de variação). Essas estatísticas fornecem uma visão detalhada da distribuição dos dados, permitindo a identificação de padrões e variações em cada tipo de projeto. Compreender essas métricas é crucial para avaliar a qualidade do código e a eficácia das práticas de desenvolvimento adotadas, auxiliando na tomada de decisões informadas para melhorias contínuas.

WEB

Web
Estatística Bugs Reportados Cobertura de Código (%)
Média 43.13333 77.24400
Mediana 44.00000 79.54000
Moda 8.00000 91.79000
Amplitude 94.00000 47.42000
Variância 1012.74000 258.60870
Desvio padrão 31.82358 16.08131
Coeficiente de variação 73.77955 20.81885

MOBILE

Mobile
Estatística Bugs Reportados Cobertura de Código (%)
Média 41.03030 79.41303
Mediana 34.00000 82.18000
Moda 27.00000 84.21000
Amplitude 95.00000 47.93000
Variância 827.96780 214.07860
Desvio padrão 28.77443 14.63143
Coeficiente de variação 70.12970 18.42446

DESKTOP

Desktop
Estatística Bugs Reportados Cobertura de Código (%)
Média 46.64865 73.44270
Mediana 47.00000 72.31000
Moda 78.00000 71.21000
Amplitude 93.00000 47.05000
Variância 923.62310 184.83570
Desvio padrão 30.39117 13.59543
Coeficiente de variação 65.14909 18.51161

5.1 Box Plot

  • Os gráficos de box plot abaixo ilustram a distribuição dos dados de bugs reportados e cobertura de código para os três tipos de projetos (Web, Mobile e Desktop). Cada box plot mostra a mediana, os quartis e os outliers presentes nos dados. A linha central em cada box plot representa a mediana dos dados, enquanto as bordas da caixa representam o primeiro e o terceiro quartis. As linhas que se estendem das caixas, conhecidas como “bigodes”, indicam a amplitude dos dados dentro de 1,5 vezes o intervalo interquartil (IQR). Qualquer ponto fora dessa faixa é considerado um outlier e é marcado individualmente. Estes gráficos são úteis para comparar a distribuição de bugs reportados e cobertura de código entre os diferentes tipos de projetos, ajudando a identificar tendências e possíveis anomalias nos dados.

Bugs Reportados (WEB)

  • A mediana está aproximadamente em 44 bugs reportados.
  • A distribuição dos dados parece ser mais ou menos simétrica, já que a caixa (interquartil) não está deslocada significativamente para um dos lados.
  • Existem alguns outliers que indicam casos de bugs reportados significativamente acima ou abaixo da mediana, sugerindo possíveis áreas críticas ou excepcionais em termos de bugs relatados.

Cobertura de Código (WEB)

  • A mediana da cobertura de código está em torno de 80%.
  • A distribuição dos dados parece ser relativamente simétrica, com a caixa (interquartil) centralizada.
  • Há um outlier na parte inferior, indicando um valor de cobertura de código significativamente abaixo da mediana.

Bugs Reportados (MOBILE)

  • A mediana está localizada em torno de 30 bugs reportados.
  • A distribuição dos dados é relativamente simétrica, indicando que há uma distribuição uniforme dos valores ao redor da mediana.
  • Não há presença de outliers visíveis nos dados, o que sugere que não há valores extremos que se distanciem significativamente dos demais.

Cobertura de Código (MOBILE)

  • A mediana está centralizada em torno de 75% de cobertura de código.
  • A distribuição dos dados é simétrica, com uma quantidade semelhante de projetos distribuídos tanto acima quanto abaixo da mediana.
  • Não há presença de outliers visíveis nos dados, o que sugere que não há valores extremos que se distanciem significativamente dos demais.

Bugs Reportados (DESKTOP)

  • A mediana dos Bugs Reportados está entre aproximadamente 20 e 60.
  • A distribuição dos dados é assimétrica à direita, pois a caixa (interquartil) está mais próxima da parte inferior do gráfico, indicando que a maioria dos projetos tem uma quantidade relativamente baixa de bugs reportados, enquanto alguns poucos têm um número muito maior.
  • Não há presença de outliers visíveis nos dados, o que sugere que não há valores extremos significativamente distantes da maioria dos projetos.

Cobertura de Código (DESKTOP)

  • A mediana da Cobertura de Código está entre aproximadamente 70% e 80%.
  • A distribuição dos dados parece ser simétrica, pois a caixa (interquartil) está centralizada no gráfico, indicando uma distribuição uniforme dos valores ao redor da mediana.

6 Análise de Simetria

A análise de simetria dos dados de bugs reportados e cobertura de código para os projetos Web, Mobile e Desktop é apresentada nas tabelas a seguir. Utilizamos o Coeficiente de Assimetria de Pearson para avaliar a simetria das distribuições. Este coeficiente pode ser negativo, positivo ou próximo de zero, o que indica:

- Assimetria à Esquerda: Um coeficiente de assimetria negativo sugere que a distribuição é assimétrica à esquerda, com uma cauda mais longa à esquerda.

- Assimetria à Direita: Um coeficiente de assimetria positivo sugere que a distribuição é assimétrica à direita, com uma cauda mais longa à direita.

- Distribuição Simétrica: Um coeficiente de assimetria próximo de zero indica que a distribuição é aproximadamente simétrica.

A classificação da simetria nos ajuda a compreender melhor a distribuição dos dados e a identificar possíveis distorções que podem afetar a interpretação dos resultados.

WEB

Web
Métrica Coeficiente de Assimetria Classificação
Bugs Reportados -0.0817004 Assimétrica à Esquerda
Cobertura de Código (%) -0.4283232 Assimétrica à Esquerda

Bugs Reportados: O coeficiente de assimetria é aproximadamente -0.0817, indicando uma distribuição assimétrica à esquerda. Isso significa que há uma concentração maior de valores maiores do que a média, com uma cauda estendida para a esquerda.

Cobertura de Código (%): O coeficiente de assimetria é aproximadamente -0.4283, também indicando uma distribuição assimétrica à esquerda. Isso sugere que a maioria dos valores está concentrada acima da média, com uma cauda estendida para a esquerda.

MOBILE

Mobile
Métrica Coeficiente de Assimetria Classificação
Bugs Reportados 0.7329740 Assimétrica à Direita
Cobertura de Código (%) -0.5673343 Assimétrica à Esquerda

Bugs Reportados: O coeficiente de assimetria é aproximadamente 0.73297, indicando uma distribuição assimétrica à direita. Isso significa que há uma concentração maior de valores menores do que a média, com uma cauda estendida para a direita.

Cobertura de Código (%): O coeficiente de assimetria é aproximadamente -0.56733, indicando uma distribuição assimétrica à esquerda. Isso sugere que a maioria dos valores está concentrada acima da média, com uma cauda estendida para a esquerda.

DESKTOP

Desktop
Métrica Coeficiente de Assimetria Classificação
Bugs Reportados -0.0346829 Assimétrica à Esquerda
Cobertura de Código (%) 0.2499449 Assimétrica à Direita

Bugs Reportados: O coeficiente de assimetria é aproximadamente -0.03468, indicando uma distribuição assimétrica à esquerda. Isso sugere que há uma concentração maior de valores acima da média, com uma cauda estendida para a esquerda.

Cobertura de Código (%): O coeficiente de assimetria é aproximadamente 0.24994, indicando uma distribuição assimétrica à direita. Isso significa que a maioria dos valores está concentrada abaixo da média, com uma cauda estendida para a direita.

8 Relação entre Cobertura de Código e Qualidade do Código

8.1 Gráficos de Dispersão

  • Os gráficos de dispersão apresentados no relatório foram desenvolvidos para investigar a relação entre a cobertura de código e a qualidade do código nos projetos de software. Cada ponto no gráfico representa um projeto específico, com a cobertura de código plotada no eixo X e a qualidade do código no eixo Y. A análise é segregada por tipo de projeto (Web, Mobile e Desktop) para permitir uma visualização mais clara das tendências em cada categoria. Além disso, uma linha de tendência é adicionada para auxiliar na interpretação das possíveis correlações entre as variáveis, destacando padrões que podem informar estratégias de melhoria na qualidade do código. Este método visual facilita a compreensão de como diferentes níveis de cobertura de código podem impactar a qualidade do código nos projetos analisados.

WEB

O gráfico de dispersão mostra a relação entre a Cobertura de Código (%) e a Qualidade do Código para os projetos WEB. Observa-se que há uma distribuição variada dos pontos ao longo do gráfico. A análise revela que:

  • Existe uma tendência positiva entre a Cobertura de Código (%) e a Qualidade do Código, indicando que projetos com maior cobertura tendem a ter uma qualidade do código melhor.
  • No entanto, há pontos dispersos ao redor da tendência principal, sugerindo que a relação não é perfeitamente linear e que outros fatores podem influenciar na qualidade do código independentemente da cobertura.
  • Projetos com alta cobertura de código apresentam uma distribuição mais concentrada nos níveis de qualidade “Boa” e “Excelente”, enquanto projetos com baixa cobertura tendem a variar mais entre diferentes níveis de qualidade.

MOBILE

O gráfico de dispersão revela a relação entre a Cobertura de Código (%) e a Qualidade do Código nos projetos MOBILE. A análise visual dos dados mostra o seguinte:

  • Tendência Negativa: A linha de tendência linear indica uma relação negativa entre a Cobertura de Código (%) e a Qualidade do Código. Isso significa que, conforme a cobertura de código aumenta, há uma tendência de redução na qualidade percebida, com a linha de tendência inclinando-se para baixo.

  • Distribuição dos Pontos: Os pontos estão distribuídos ao longo do gráfico, mas a presença da linha de tendência sugere que projetos com alta cobertura de código tendem a ser classificados com qualidades mais baixas, como “Regular” e “Boa”, em comparação com projetos de menor cobertura, que têm mais pontos nas categorias “Boa” e “Excelente”.

  • Implicações para Práticas de Desenvolvimento: A análise indica que simplesmente aumentar a cobertura de código pode não ser suficiente para garantir uma alta qualidade de código nos projetos MOBILE. Outras práticas, como revisões de código e implementação de padrões de codificação, podem ser necessárias para melhorar consistentemente a qualidade do código.

DESKTOP

O gráfico de dispersão revela a relação entre a Cobertura de Código (%) e a Qualidade do Código nos projetos DESKTOP. Os principais insights são:

  • Tendência de Leve Queda na Qualidade: A linha de tendência linear indica uma tendência ligeiramente descendente entre a Cobertura de Código (%) e a Qualidade do Código. Inicialmente, os pontos tendem a estar mais próximos da categoria “Boa” de Qualidade, mas conforme a Cobertura de Código (%) aumenta, há uma leve queda na Qualidade percebida, inclinando-se mais para a categoria “Regular”.

  • Distribuição dos Pontos: Os dados mostram uma dispersão ao longo do gráfico, com projetos distribuídos principalmente em níveis intermediários de Cobertura e Qualidade de Código. Projetos com maior Cobertura de Código (%) variam em sua Qualidade, com uma concentração maior em níveis intermediários de “Boa” e “Regular”.

  • Cobertura de Código (%): No eixo horizontal, a cobertura de código varia de 60% a 100%, mostrando uma progressão gradual.

9 Influência da Cobertura de Código na Quantidade de bugs Reportados

9.1 Gráficos de Dispersão

  • Os gráficos de dispersão exibidos no relatório são utilizados para analisar a influência da cobertura de código na quantidade de bugs reportados em diferentes tipos de projetos de software (Web, Mobile e Desktop). Cada ponto no gráfico representa um projeto individual, onde a cobertura de código está plotada no eixo X e o número de bugs reportados no eixo Y. Esta visualização permite identificar possíveis correlações entre a cobertura de código e a ocorrência de bugs, fornecendo informações importantes sobre a eficácia das práticas de teste e revisão de código. A inclusão de uma linha de tendência auxilia na identificação de padrões e tendências, ajudando a interpretar como variações na cobertura de código podem estar associadas a mudanças na quantidade de bugs reportados. Esta análise é crucial para compreender e melhorar a qualidade do software através de práticas de cobertura de código mais eficazes.

WEB

O gráfico de dispersão mostra a relação entre a Cobertura de Código (%) e a quantidade de Bugs Reportados nos projetos da categoria Web. A dispersão dos pontos sugere uma tendência geral onde, à medida que a Cobertura de Código aumenta, a quantidade de Bugs Reportados tende a diminuir. Isso é indicado pela linha de tendência ajustada (em vermelho), que mostra uma inclinação negativa. Ou seja, projetos com maior Cobertura de Código (%) apresentam, em geral, menor número de Bugs Reportados, sugerindo uma influência positiva da Cobertura de Código na qualidade e estabilidade dos projetos.

Este padrão pode indicar que investir em uma maior Cobertura de Código pode contribuir significativamente para a redução de Bugs Reportados, promovendo uma melhor qualidade e confiabilidade dos sistemas desenvolvidos na categoria Web.

MOBILE

O gráfico de dispersão revela a relação entre a Cobertura de Código (%) e a quantidade de Bugs Reportados nos projetos da categoria Mobile. Observa-se uma tendência onde, à medida que a Cobertura de Código aumenta, há uma tendência de aumento na quantidade de Bugs Reportados. Isso é evidenciado pela linha de tendência ajustada (em vermelho), indicando que projetos com maior Cobertura de Código tendem a ter mais Bugs Reportados.

Esses resultados sugerem que, no contexto dos projetos Mobile, um aumento na Cobertura de Código pode não necessariamente se traduzir em uma redução proporcional de Bugs Reportados. Esse cenário pode ser influenciado por diversos fatores, como a complexidade do código, a eficácia dos testes implementados e a dinâmica de desenvolvimento da equipe. Assim, é essencial adotar estratégias adicionais para mitigar e monitorar o impacto de Bugs em projetos com alta Cobertura de Código, visando manter a qualidade e a confiabilidade do software.

DESKTOP

O gráfico de dispersão revela a relação entre a Cobertura de Código (%) e a quantidade de Bugs Reportados nos projetos da categoria Desktop. Observa-se uma leve tendência onde, à medida que a Cobertura de Código aumenta, há um ligeiro aumento na quantidade de Bugs Reportados. Isso é sugerido pela linha de tendência ajustada (em vermelho), indicando que projetos com maior Cobertura de Código tendem a ter uma quantidade ligeiramente maior de Bugs Reportados.

Esses resultados podem refletir desafios adicionais associados à complexidade e à natureza dos projetos Desktop, onde a Cobertura de Código nem sempre se correlaciona diretamente com uma redução linear de Bugs Reportados. Isso pode indicar a necessidade de uma abordagem mais holística no processo de desenvolvimento, incluindo revisões de código mais detalhadas, testes mais abrangentes e melhorias contínuas na gestão de qualidade do software.

Portanto, enquanto um aumento na Cobertura de Código pode oferecer benefícios significativos em termos de qualidade e estabilidade do software, é essencial considerar outras métricas e práticas de desenvolvimento para mitigar a ocorrência de Bugs Reportados em projetos Desktop.

10 Análise Inferencial

  • A análise inferencial apresentada no relatório examina a relação entre variáveis quantitativas, como bugs reportados e cobertura de código, e variáveis qualitativas, como tipo de projeto (Web, Mobile, Desktop) e qualidade do código (Ruim, Regular, Boa, Excelente). Utilizando técnicas de regressão, foi possível investigar como a cobertura de código e a qualidade percebida do código influenciam a quantidade de bugs reportados. Esta análise permite determinar a significância estatística dessas relações e identificar quais fatores têm maior impacto na qualidade do software. Os resultados obtidos fornecem uma base sólida para recomendações práticas no desenvolvimento de software, destacando a importância da cobertura de código e a classificação da qualidade do código na gestão e redução de bugs.

WEB

## 
## Call:
## lm(formula = `Bugs Reportados` ~ `Cobertura de Código (%)` + 
##     `Qualidade do Código`, data = data_frame_WEB)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -56.350 -25.959   1.744  24.852  55.029 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)                     83.4974    36.0984   2.313   0.0292 *
## `Cobertura de Código (%)`       -0.4132     0.4165  -0.992   0.3307  
## `Qualidade do Código`Excelente -15.1079    17.9855  -0.840   0.4089  
## `Qualidade do Código`Regular   -21.1018    18.2634  -1.155   0.2588  
## `Qualidade do Código`Ruim       -5.6933    15.5169  -0.367   0.7168  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 32.83 on 25 degrees of freedom
## Multiple R-squared:  0.08241,    Adjusted R-squared:  -0.06441 
## F-statistic: 0.5613 on 4 and 25 DF,  p-value: 0.6929

Cobertura de Código (%):

Para projetos Web, a Cobertura de Código apresentou um coeficiente negativo, sugerindo que um aumento na cobertura pode estar associado a uma ligeira redução nos bugs reportados.

Qualidade do Código:

Em projetos Web, nenhum nível de Qualidade do Código (Excelente, Regular, Ruim) apresentou uma influência estatisticamente significativa nos bugs reportados.

MOBILE

## 
## Call:
## lm(formula = `Bugs Reportados` ~ `Cobertura de Código (%)` + 
##     `Qualidade do Código`, data = data_frame_MOBILE)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -46.566 -22.543   2.796  17.445  48.140 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)                    -12.9303    29.6203  -0.437   0.6658  
## `Cobertura de Código (%)`        0.5847     0.3718   1.572   0.1271  
## `Qualidade do Código`Excelente  23.7019    13.3601   1.774   0.0869 .
## `Qualidade do Código`Regular    13.6675    12.5511   1.089   0.2855  
## `Qualidade do Código`Ruim       -8.1039    15.4388  -0.525   0.6038  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 27.7 on 28 degrees of freedom
## Multiple R-squared:  0.1889, Adjusted R-squared:  0.073 
## F-statistic:  1.63 on 4 and 28 DF,  p-value: 0.1945

Cobertura de Código (%):

Em projetos Mobile, a Cobertura de Código mostrou um coeficiente positivo e marginalmente significativo, indicando que uma maior cobertura pode estar associada a um aumento nos bugs reportados.

Qualidade do Código:

Para projetos Mobile, a Qualidade do Código no nível “Excelente” apresentou uma possível significância marginal, indicando que projetos com qualidade excelente podem reportar mais bugs.

DESKTOP

## 
## Call:
## lm(formula = `Bugs Reportados` ~ `Cobertura de Código (%)` + 
##     `Qualidade do Código`, data = data_frame_DESKTOP)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -51.109 -25.121   5.364  24.765  49.248 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)
## (Intercept)                     30.8516    30.3877   1.015    0.318
## `Cobertura de Código (%)`        0.1408     0.3875   0.363    0.719
## `Qualidade do Código`Excelente  -1.1932    14.3806  -0.083    0.934
## `Qualidade do Código`Regular     7.0069    14.7741   0.474    0.639
## `Qualidade do Código`Ruim       16.7552    14.7351   1.137    0.264
## 
## Residual standard error: 31.24 on 32 degrees of freedom
## Multiple R-squared:  0.06099,    Adjusted R-squared:  -0.05639 
## F-statistic: 0.5196 on 4 and 32 DF,  p-value: 0.7219

Cobertura de Código (%):

Para projetos Desktop, a Cobertura de Código também apresentou um coeficiente positivo, mas não significativo, sugerindo que a cobertura de código não tem um impacto claro nos bugs reportados.

Qualidade do Código:

Em projetos Desktop, similarmente, nenhum nível de Qualidade do Código mostrou significância estatística.

11 Conclusão

A partir das análises realizadas, conclui-se que a Cobertura de Código é um indicador importante, mas não absoluto, da Qualidade do Código e da quantidade de Bugs Reportados. Projetos Web se beneficiam mais diretamente de uma alta cobertura de código, refletindo melhores práticas de testes e uma maior qualidade do código, resultando em menos bugs reportados. Em contraste, projetos Mobile e Desktop mostram que uma alta cobertura de código não garante necessariamente uma redução de bugs, possivelmente devido à complexidade dos ambientes e outros fatores de desenvolvimento. Nos projetos Mobile, observou-se até mesmo um aumento na quantidade de bugs conforme a cobertura de código aumentava, sugerindo uma necessidade de revisão das práticas de testes e desenvolvimento. Projetos Desktop, embora apresentem uma relação negativa entre cobertura de código e qualidade, essa relação foi menos acentuada, indicando que outros fatores podem ser mais influentes na determinação da qualidade e na quantidade de bugs. Em suma, a qualidade do software e a quantidade de bugs reportados dependem de um conjunto complexo de fatores que vão além da cobertura de código, exigindo abordagens personalizadas para cada tipo de projeto.

Este estudo fornecerá insights valiosos para gerentes de projetos e desenvolvedores de software sobre como melhorar a qualidade do código e reduzir a incidência de bugs em diferentes tipos de projetos de software. A análise permitirá identificar melhores práticas e áreas de melhoria para otimizar o desenvolvimento de software e aumentar a satisfação dos usuários.

12 Recomendações

Recomenda-se que cada tipo de projeto adote estratégias específicas para melhorar a qualidade do código e reduzir bugs. Para projetos Web, é crucial manter uma alta cobertura de código, complementada por revisões rigorosas e testes automatizados abrangentes. Projetos Mobile devem revisar suas práticas de desenvolvimento e teste, focando em testes funcionais e de interface de usuário (UI), além de utilizar ferramentas de monitoramento de desempenho. Projetos Desktop precisam equilibrar a cobertura de código com testes de desempenho e de uso, considerando a diversidade de ambientes de execução. Em todos os casos, uma análise contínua dos fatores contextuais e a promoção de uma cultura de qualidade são essenciais para melhorias sustentáveis.

Referências

  1. Fernanda Peres. R Markdown: Gerando relatórios usando o R. Disponível em:
    https://youtube.com/@fernandaperes?si=55VMq6d43UamuUFM

  2. Qualidade do código e sua importância para um desenvolvimento bem sucedido. Bring. Acesso em: 10 de março de 2024.
    Disponível em:
    https://bring.com.br/blog/qualidade-do-codigo-e-sua-importancia-para-um-desenvolvimento-bem-sucedido/

  3. SILVESTRE, António. Análise de dados e estatística descritiva. Escolar editora, 2007.

  4. R Markdown: The Definitive Guide. Yihui Xie, j. j. Allaire, Garret Grolemund. Disponível em:
    https://bookdown.org/yihui/rmarkdown/