105
Reabertura de Defeitos Corrigidos: Impactos e Prevenção (Exame de Qualificação) Rodrigo Rocha G. e Souza <[email protected] > Orientadora: Christina von Flach Garcia Chavez Co-Orientador: Roberto Almeida Bittencourt Laboratório de Engenharia de Software (LES) Universidade Federal da Bahia (UFBA) 3 de dezembro de 2012 1

2012 qualificacao-rodrigo-2012

Embed Size (px)

Citation preview

Page 1: 2012 qualificacao-rodrigo-2012

Reabertura de Defeitos Corrigidos: Impactos e Prevenção

(Exame de Qualificação)

Rodrigo Rocha G. e Souza <[email protected]>

Orientadora: Christina von Flach Garcia ChavezCo-Orientador: Roberto Almeida Bittencourt

Laboratório de Engenharia de Software (LES)Universidade Federal da Bahia (UFBA)

3 de dezembro de 2012 1

Page 2: 2012 qualificacao-rodrigo-2012

IntroduçãoContexto e Motivação.

Estado da Arte e Limitações.

2

Page 3: 2012 qualificacao-rodrigo-2012

Durante o desenvolvimento de software, defeitos são relatados em sistemas de acompanhamento de defeitos

Artefato: relatório de defeito ou tíquete

3

Page 4: 2012 qualificacao-rodrigo-2012

4

Criação de Tíquete

Page 5: 2012 qualificacao-rodrigo-2012

5

Page 6: 2012 qualificacao-rodrigo-2012

6

Page 7: 2012 qualificacao-rodrigo-2012

7

Page 8: 2012 qualificacao-rodrigo-2012

7

FIXED / DUPLICATE / WONTFIX / WORKSFORME / INVALID

Page 9: 2012 qualificacao-rodrigo-2012

Processo de Correção de

Defeitos

confirmação

triagem

localização

correção

verificação

8

Page 10: 2012 qualificacao-rodrigo-2012

Processo de Correção de

Defeitos

confirmação

triagem

localização

correção

verificação

8

UNCONFIRMED => NEW

Page 11: 2012 qualificacao-rodrigo-2012

Processo de Correção de

Defeitos

confirmação

triagem

localização

correção

verificação

8

DUPLICATEWONTFIX

WORKSFORMEINVALID

UNCONFIRMED => NEW

Page 12: 2012 qualificacao-rodrigo-2012

Processo de Correção de

Defeitos

confirmação

triagem

localização

correção

verificação

8

DUPLICATEWONTFIX

WORKSFORMEINVALID

UNCONFIRMED => NEW

Page 13: 2012 qualificacao-rodrigo-2012

Processo de Correção de

Defeitos

confirmação

triagem

localização

correção

verificação

8

DUPLICATEWONTFIX

WORKSFORMEINVALID

FIXED

UNCONFIRMED => NEW

Page 14: 2012 qualificacao-rodrigo-2012

Processo de Correção de

Defeitos

confirmação

triagem

localização

correção

verificação

8

DUPLICATEWONTFIX

WORKSFORMEINVALID

FIXED

UNCONFIRMED => NEW

VERIFIED

Page 15: 2012 qualificacao-rodrigo-2012

confirmação

triagem

localização

correção

verificação

9

existe uma fase de verificação?

é feita pelo responsável pela triagem?

que resoluções são empregadas?

Características

etc.

Page 16: 2012 qualificacao-rodrigo-2012

Reabertura de Defeitos

• Depois de marcado como resolvido, o tíquete é reaberto.

10

Page 17: 2012 qualificacao-rodrigo-2012

Quando o defeito pode ser reaberto

confirmação

triagem

localização

correção

verificação

11

Page 18: 2012 qualificacao-rodrigo-2012

Quando o defeito pode ser reaberto

confirmação

triagem

localização

correção

verificação

11

DUPLICATEWONTFIX

WORKSFORMEINVALID

Page 19: 2012 qualificacao-rodrigo-2012

Quando o defeito pode ser reaberto

confirmação

triagem

localização

correção

verificação

11

DUPLICATEWONTFIX

WORKSFORMEINVALID

FIXED

Page 20: 2012 qualificacao-rodrigo-2012

Quando o defeito pode ser reaberto

confirmação

triagem

localização

correção

verificação

11

DUPLICATEWONTFIX

WORKSFORMEINVALID

FIXED

VERIFIED

Page 21: 2012 qualificacao-rodrigo-2012

Só 2% dos defeitos corrigidos são reabertos

12

(Fonte: Almossawi, 2012)

Page 22: 2012 qualificacao-rodrigo-2012

Porém, defeitos reabertos...

13

Page 23: 2012 qualificacao-rodrigo-2012

levam mais tempo para ser corrigidos

14

(Fonte: Shihab et al., 2010)

Page 24: 2012 qualificacao-rodrigo-2012

envolvem mais desenvolvedores

15

(Fonte: Park et al., 2012)

Page 25: 2012 qualificacao-rodrigo-2012

podem atrasar o lançamento de novas

versões

16

Page 26: 2012 qualificacao-rodrigo-2012

podem ser descobertos após o lançamento

17

Page 27: 2012 qualificacao-rodrigo-2012

A reabertura de defeitos deve ser evitada

18

+ reabertura =- produtividade- qualidade

Page 28: 2012 qualificacao-rodrigo-2012

Qual o estado da arte sobre

reabertura de defeitos?

19

Page 29: 2012 qualificacao-rodrigo-2012

Métodos

• Mineração de repositórios de software (relatórios de defeito, código-fonte)

• Mineração de dados, estatística

• Questionários

Page 30: 2012 qualificacao-rodrigo-2012

Estado da Arte

• Por que os defeitos são reabertos?

• Em que defeitos reabertos diferem dos demais?

• Qual o custo da reabertura de defeitos?

Page 31: 2012 qualificacao-rodrigo-2012

Por que os defeitos são reabertos?

• Zimmermann et al., 2012:

• Dificuldade de se reproduzir o defeito

• Causa raiz do defeito não identificada

• Avaliação incorreta da prioridade (wontfix)

• Correção incompleta

• Problemas de integração de código

22

Page 32: 2012 qualificacao-rodrigo-2012

Por que os defeitos são reabertos?

• Almossawi, 2012 (apenas defeitos “fixed”):

• 68%: o defeito reapareceu

• 16%: erros humanos, falhas na colaboração (ex.: esquecer de anexar o patch)

• 7%: o defeito regrediu por causa de outras alterações

• 9%: causas diversas

23

Page 33: 2012 qualificacao-rodrigo-2012

Em que defeitos reabertos diferem dos demais?

• Shihab et al., 2010

• Palavras usadas na descrição e nos comentários (ex.: “depuração”, “plataformas”).

• Tempo para a primeira correção.

• Componente onde o defeito foi encontrado.

24

Page 34: 2012 qualificacao-rodrigo-2012

Em que defeitos reabertos diferem dos demais?

• Zimmermann et al., 2012:

• Como foram encontrados: revisão de código e ferramentas de análise vs. usuários e teste de sistema.

• Maior severidade.

25

Page 35: 2012 qualificacao-rodrigo-2012

Em que defeitos reabertos diferem dos demais?

• Desenvolvedores mais ativos (em código-fonte) tendem a fornecer correções definitivas. (Jongyindee et al., 2011)

• Defeitos corrigidos e reabertos estão associados a código-fonte com alta complexidade ciclomática. (Almossawi, 2012)

26

Page 36: 2012 qualificacao-rodrigo-2012

Qual o custo da reabertura de defeitos?

• Considerando apenas defeitos corrigidos, a taxa de reabertura é de 2,15% no GNOME, 1,35% no Evolution e 3,88% no GTK+. (Almossawi, 2012)

27

Page 37: 2012 qualificacao-rodrigo-2012

Qual o custo da reabertura de defeitos?

• Defeitos reabertos têm ciclo de vida...

• 2x mais longo (Shihab et al., 2010)

• 56 a 91% mais longo (Park et al., 2012)

• Defeitos reabertos envolvem a participação de 21 a 62% mais desenvolvedores. (Park et al., 2012)

28

Page 38: 2012 qualificacao-rodrigo-2012

Qual o custo da reabertura de defeitos?

• Nem todas as reaberturas representam custo adicional significativo. Às vezes defeitos são fechados de propósito para serem resolvidos no futuro. (Jongyindee et al., 2011)

29

Page 39: 2012 qualificacao-rodrigo-2012

Observações sobre o estado da arte

Page 40: 2012 qualificacao-rodrigo-2012

Área recente: 2010–

31

Page 41: 2012 qualificacao-rodrigo-2012

Caracterização e predição de reabertura

32

Page 42: 2012 qualificacao-rodrigo-2012

Predição ≠ Prevenção

33

Page 43: 2012 qualificacao-rodrigo-2012

Reabertura após triagemvs.

Reabertura após correção

34

Page 44: 2012 qualificacao-rodrigo-2012

Conhecimento limitado sobre o

impacto da reabertura

35

Page 45: 2012 qualificacao-rodrigo-2012

PropostaObjetivos. Questõesde Pesquisa. Métodos

36

Page 46: 2012 qualificacao-rodrigo-2012

37

Avaliar que características do processo de correção de defeitos

(sobretudo verificação) contribuem para evitar a

reabertura de defeitos corrigidos ou reduzir seus impactos

Objetivo Geral

Page 47: 2012 qualificacao-rodrigo-2012

38

Avaliar que características do processo de correção de defeitos

(sobretudo verificação) contribuem para evitar a

reabertura de defeitos corrigidos ou reduzir seus impactos

Objetivo Geral

Page 48: 2012 qualificacao-rodrigo-2012

38

Avaliar que características do processo de correção de defeitos

(sobretudo verificação) contribuem para evitar a

reabertura de defeitos corrigidos ou reduzir seus impactos

Objetivo Geral

foco em prevenção

Page 49: 2012 qualificacao-rodrigo-2012

38

Avaliar que características do processo de correção de defeitos

(sobretudo verificação) contribuem para evitar a

reabertura de defeitos corrigidos ou reduzir seus impactos

Objetivo Geral

foco em prevenção

foco em defeitos corrigidos

Page 50: 2012 qualificacao-rodrigo-2012

38

Avaliar que características do processo de correção de defeitos

(sobretudo verificação) contribuem para evitar a

reabertura de defeitos corrigidos ou reduzir seus impactos

Objetivo Geral

foco em prevenção

foco em defeitos corrigidos foco em

impactos

Page 51: 2012 qualificacao-rodrigo-2012

1. Caracterizar o processo de verificação a partir de relatórios

de defeito

39

Objetivo Específico

Page 52: 2012 qualificacao-rodrigo-2012

40

Questões de Pesquisa

Page 53: 2012 qualificacao-rodrigo-2012

• RQ1.1: Quando a verificação é realizada dentro do ciclo de vida de lançamentos?

40

Questões de Pesquisa

Page 54: 2012 qualificacao-rodrigo-2012

• RQ1.1: Quando a verificação é realizada dentro do ciclo de vida de lançamentos?

• RQ1.2: Quem realiza a verificação? Há uma equipe dedicada?

40

Questões de Pesquisa

Page 55: 2012 qualificacao-rodrigo-2012

• RQ1.1: Quando a verificação é realizada dentro do ciclo de vida de lançamentos?

• RQ1.2: Quem realiza a verificação? Há uma equipe dedicada?

• RQ1.3: Que técnicas são empregadas para a verificação?

40

Questões de Pesquisa

Page 56: 2012 qualificacao-rodrigo-2012

• RQ1.1: Quando a verificação é realizada dentro do ciclo de vida de lançamentos?

• RQ1.2: Quem realiza a verificação? Há uma equipe dedicada?

• RQ1.3: Que técnicas são empregadas para a verificação?

• RQ1.4: Que ameaças existem ao se investigar as questões RQ1.{1,2,3} através da mineração de repositórios de software?

40

Questões de Pesquisa

Page 57: 2012 qualificacao-rodrigo-2012

2. Caracterizar a reabertura de defeitos (ocorrência e custo*)

* tempo

41

Objetivo Específico

Page 58: 2012 qualificacao-rodrigo-2012

42

Questões de Pesquisa

Page 59: 2012 qualificacao-rodrigo-2012

• RQ2.1: Como a reabertura de defeitos se distribui em relação ao tempo, aos desenvolvedores etc.?

42

Questões de Pesquisa

Page 60: 2012 qualificacao-rodrigo-2012

• RQ2.1: Como a reabertura de defeitos se distribui em relação ao tempo, aos desenvolvedores etc.?

• RQ2.2: Qual o custo de defeitos reabertos (em relação a não-reabertos), em termos de tempo de desenvolvimento?

42

Questões de Pesquisa

Page 61: 2012 qualificacao-rodrigo-2012

3. Investigar a influência do processo de verificação na ocorrência e no custo de

reaberturas

43

Objetivo Específico

Page 62: 2012 qualificacao-rodrigo-2012

44

Questões de Pesquisa

Page 63: 2012 qualificacao-rodrigo-2012

• RQ3.1: Qual o impacto do instante da verificação na reabertura de defeitos?

44

Questões de Pesquisa

Page 64: 2012 qualificacao-rodrigo-2012

• RQ3.1: Qual o impacto do instante da verificação na reabertura de defeitos?

• RQ3.2: Qual o impacto da equipe de qualidade na reabertura de defeitos?

44

Questões de Pesquisa

Page 65: 2012 qualificacao-rodrigo-2012

• RQ3.1: Qual o impacto do instante da verificação na reabertura de defeitos?

• RQ3.2: Qual o impacto da equipe de qualidade na reabertura de defeitos?

• RQ3.3: Qual o impacto da técnica de verificação na reabertura de defeitos?

44

Questões de Pesquisa

Page 66: 2012 qualificacao-rodrigo-2012

Método

45

Page 67: 2012 qualificacao-rodrigo-2012

Método• Mineração de repositórios de software

45

Page 68: 2012 qualificacao-rodrigo-2012

Método• Mineração de repositórios de software

• Dados: relatórios de defeitos

45

Page 69: 2012 qualificacao-rodrigo-2012

Método• Mineração de repositórios de software

• Dados: relatórios de defeitos

• Ameaças

45

Page 70: 2012 qualificacao-rodrigo-2012

Método• Mineração de repositórios de software

• Dados: relatórios de defeitos

• Ameaças

• nem toda a coordenação entre desenvolvedores está registrada

45

Page 71: 2012 qualificacao-rodrigo-2012

Método• Mineração de repositórios de software

• Dados: relatórios de defeitos

• Ameaças

• nem toda a coordenação entre desenvolvedores está registrada

• o defeito pode ter sido resolvido antes mesmo de ser relatado

45

Page 72: 2012 qualificacao-rodrigo-2012

Método• Mineração de repositórios de software

• Dados: relatórios de defeitos

• Ameaças

• nem toda a coordenação entre desenvolvedores está registrada

• o defeito pode ter sido resolvido antes mesmo de ser relatado

• pode haver edições em massa

45

Page 73: 2012 qualificacao-rodrigo-2012

Método

• Análise exploratória*: levantamento de variáveis de interesse

• Classificação automática

• Análise exploratória*: validação

• Caracterização ou inferência

* quantitativa e qualitativa

Page 74: 2012 qualificacao-rodrigo-2012

47

• Método: teste exato de Fisher (associação entre variáveis)

• Desafio: isolar variáveis de confusão (ex.: severidade, componente...)

• Estratificação

• Regressão

Método(objetivo específico 3)

Page 75: 2012 qualificacao-rodrigo-2012

Projetos Estudados

Page 76: 2012 qualificacao-rodrigo-2012

Resultados Parciais

49

Page 77: 2012 qualificacao-rodrigo-2012

Como aproveitar relatórios de defeito para minerar o

processo de verificação? Há ruído nos dados?

50

(Objetivo Específico 1)

Page 78: 2012 qualificacao-rodrigo-2012

51

há ruídos nos dados?

quando é feita a verificação?

quem faz a verificação?

como é feita a verificação?

(RQ1.4)

(RQ1.1)

(RQ1.2)

(RQ1.3)

Page 79: 2012 qualificacao-rodrigo-2012

verificações em massa

há ruídos nos dados?

52

Page 80: 2012 qualificacao-rodrigo-2012

há ruídos nos dados?

No Eclipse Modelling Framework, VERIFIED significa que o patch está disponível em uma build.

53

Page 81: 2012 qualificacao-rodrigo-2012

fase de verificação

quando é feita a verificação?

54

Page 82: 2012 qualificacao-rodrigo-2012

quem faz a verificação?

55

time deQA

10

Page 83: 2012 qualificacao-rodrigo-2012

quem faz a verificação?

55

20% dos desenvolvedores

time deQA

10

Page 84: 2012 qualificacao-rodrigo-2012

quem faz a verificação?

55

20% dos desenvolvedores

time deQA

80% das verificações

10

Page 85: 2012 qualificacao-rodrigo-2012

como é feita a verificação?

56

A maioria dos comentários não traz informação sobre a técnica empregada.

Page 86: 2012 qualificacao-rodrigo-2012

Resumo

57

Fase de verificação ✓ ✗

Time de QA ✗ ✓

Comentários raramente mencionam técnica de verificação.⚠ Cuidado com verificações em massa.

Page 87: 2012 qualificacao-rodrigo-2012

Será que determinadas práticas de verificação são

mais eficazes do que outras no sentido de evitar

reaberturas?(em andamento)

58

Page 88: 2012 qualificacao-rodrigo-2012

4 olhos

59

Page 89: 2012 qualificacao-rodrigo-2012

4 olhos

• Hipótese: bugs verificados por outra pessoa (4 olhos) estão menos sujeitos a serem reabertos (depois da verificação)

59

Page 90: 2012 qualificacao-rodrigo-2012

4 olhos

• Hipótese: bugs verificados por outra pessoa (4 olhos) estão menos sujeitos a serem reabertos (depois da verificação)

• Dados: 34 subprojetos do Eclipse

59

Page 91: 2012 qualificacao-rodrigo-2012

4 olhos

• Hipótese: bugs verificados por outra pessoa (4 olhos) estão menos sujeitos a serem reabertos (depois da verificação)

• Dados: 34 subprojetos do Eclipse

• Método: teste exato de Fisher

59

Page 92: 2012 qualificacao-rodrigo-2012

4 olhos

• Hipótese: bugs verificados por outra pessoa (4 olhos) estão menos sujeitos a serem reabertos (depois da verificação)

• Dados: 34 subprojetos do Eclipse

• Método: teste exato de Fisher

• Resultado: inconclusivo

59

Page 93: 2012 qualificacao-rodrigo-2012

Exemplo de tabela de contingência

não reabriu

reabriu

2 olhos 1985 108

4 olhos 11366 125

Page 94: 2012 qualificacao-rodrigo-2012

• A chance de o bug ser reaberto após a verificação é menor quando...

• ... a verificação é feita pelo time de QA?inconclusivo

• ... a verificação é feita durante a fase de verificação?sim (em 2/4 dos projetos)

• ... uma determinada técnica de verificação é empregada (testes, inspeção etc.)?sim, no caso de inspeção de código no Eclipse/Platform

61

Page 95: 2012 qualificacao-rodrigo-2012

Cronograma

62

Page 96: 2012 qualificacao-rodrigo-2012

Atividades Concluídas

• Requisitos do programa

• Créditos de disciplinas (112%)

• Estágio docência (1 semestre, 2 turmas)

• Pesquisa

• 1º objetivo específico

• publicação no MSR 2012

Page 97: 2012 qualificacao-rodrigo-2012

1. Caracterizar a reabertura de defeitos2. Escrever artigo sobre a caracterização3. Investigar a influência do processo de

verificação na reabertura de defeitos4. Escrever a tese5. Apresentar a tese6. Escrever artigo com os resultados finais

64

Atividades Previstas

Page 98: 2012 qualificacao-rodrigo-2012

1. Caracterizar a reabertura de defeitos2. Escrever artigo sobre a caracterização3. Investigar a influência do processo de

verificação na reabertura de defeitos4. Escrever a tese5. Apresentar a tese6. Escrever artigo com os resultados finais

65

x•

Page 99: 2012 qualificacao-rodrigo-2012

66

2. Escrever artigo sobre a caracterização

Page 100: 2012 qualificacao-rodrigo-2012

Periódicos

• IEEE Transactions on Software Engineering

• Empirical Software Engineering

• Information and Software Technology

• Software Practice and Experience

• Journal of Systems and Software

67

6. Escrever artigo com os resultados finais

Page 101: 2012 qualificacao-rodrigo-2012

Considerações Finais

68

Page 102: 2012 qualificacao-rodrigo-2012

• Proposta do trabalho: estudar a reabertura de defeitos corrigidos — características, custo e meios de preveni-la.

• Área de pesquisa recente.

69

Page 103: 2012 qualificacao-rodrigo-2012

• Espera-se determinar que práticas podem ser usadas para diminuir a quantidade de defeitos reabertos e seus impactos negativos

• Esse conhecimento, se aplicado, ajuda a reduzir o custo de desenvolvimento e aumentar a qualidade do software

70

Page 104: 2012 qualificacao-rodrigo-2012

Referências

71

Page 105: 2012 qualificacao-rodrigo-2012

[Almossawi 2012] Almossawi, A. (2012). Investigating the architectural drivers of defects in open-source software systems: an empirical study of defects and reopened defects in gnome.

[Jongyindee et al. 2011] Jongyindee, A., Ohira, M., Ihara, A., and Matsumoto, K.-i. (2011). Good or bad committers? a case study of committers’ cautiousness and the conse- quences on the bug fixing process in the eclipse project. In Proceedings of the 2011 Joint Conference of the 21st International Workshop on Software Measurement and the 6th International Conference on Software Process and Product Measurement, IWSM- MENSURA ’11, pages 116–125, Washington, DC, USA. IEEE Computer Society.

[Park et al. 2012] Park, J., Kim, M., Ray, B., and Bae, D.-H. (2012). An empirical study of supplementary bug fixes. In Lanza, M., Penta, M. D., and Xi, T., editors, MSR, pages 40–49. IEEE.

[Shihab et al. 2010] Shihab, E., Ihara, A., Kamei, Y., Ibrahim, W. M., Ohira, M., Adams, B., Hassan, A. E., and Matsumoto, K.-i. (2010). Predicting re-opened bugs: A case study on the eclipse project. In Proceedings of the 2010 17th Working Conference on Reverse Engineering, WCRE ’10, pages 249–258, Washington, DC, USA. IEEE Computer Society.

[Zimmermann et al. 2012] Zimmermann, T., Nagappan, N., Guo, P. J., and Murphy, B. (2012). Characterizing and predicting which bugs get reopened. In Proceedings of the 2012 International Conference on Software Engineering, ICSE 2012, pages 1074– 1083, Piscataway, NJ, USA. IEEE Press.