Top Banner
An Empirical Study on Factors Impacting Bug Fixing Time Feng Zhang, Foutse Khomh, Ying Zou and Ahmed E. Hassan
21

An Empirical Study on Factors Impacting Bug Fixing Time

Jul 05, 2015

Download

Technology

Feng Zhang

Fixing bugs is an important activity of the software development process. A typical process of bug fixing consists of the following steps: 1) a user files a bug report; 2) the bug is assigned to a developer; 3) the developer fixes the bug; 4) changed code is reviewed and verified; and 5) the bug is resolved. Many studies have investigated the process of bug fixing. However, to the best of our knowledge, none has explicitly analyzed the interval between bug assignment and the time when bug fixing starts. After a bug assignment, some developers will immediately start fixing the bug while others will start bug fixing after a long period. We are blind on developer’s delays when fixing bugs. This paper explores such delays of developers through an empirical study on three open source software systems. We examine factors affecting bug fixing time along three dimensions: bug reports, source code involved in the fix, and code changes that are required to fix the bug. We further compare different factors by descriptive logistic regression models. Our results can help development teams better understand factors behind delays, and then improve bug fixing process.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Empirical Study on Factors Impacting Bug Fixing Time

An Empirical Study on Factors

Impacting Bug Fixing Time

Feng Zhang, Foutse Khomh, Ying Zou

and Ahmed E. Hassan

Page 2: An Empirical Study on Factors Impacting Bug Fixing Time

2

New Assign Bug Fixing Verified Resolved

A Typical Process of Bug Fixing

Page 3: An Empirical Study on Factors Impacting Bug Fixing Time

3

Bug Fixing Time

New Resolved Introduced

Page 4: An Empirical Study on Factors Impacting Bug Fixing Time

4

Example: delay before change

Reported & Assigned

Oct-2006

Fixing started & Resolved:

Mar-2011

almost

5 years

Page 5: An Empirical Study on Factors Impacting Bug Fixing Time

5

Example: delay after change

Reported & Assigned

Fixing started & ended:

September-2008

Resolved:

February-2011

over

2 years

Page 6: An Empirical Study on Factors Impacting Bug Fixing Time

6

DBC DBF DAC

Intervals during Bug Fixing

DBR

New Resolved First

Response Bug Fixing

Start

Bug Fixing

End

Assign

DBA

Delay Before Response DBR

Delay Before Assigned DBA

Delay Before Change DBC

Duration of Bug Fixing DBF

Delay After Change DAC

Page 7: An Empirical Study on Factors Impacting Bug Fixing Time

7

Benefits of Studying Delays

Locate time-consuming

steps

Understand factors affecting

the delays

Improve the process of bug fixing

Page 8: An Empirical Study on Factors Impacting Bug Fixing Time

8

Subject Systems

3,883 logs

2,722 bugs

606 bugs

524 bugs

793 logs

638 logs

Mylyn

Eclipse Platform

PDE

Page 9: An Empirical Study on Factors Impacting Bug Fixing Time

9

Data Sources

Properties of bug

Change history of bug

Properties of file edits

Static metrics

History metrics

Fine grained change types

Bug ID

Page 10: An Empirical Study on Factors Impacting Bug Fixing Time

10

Properties of Source

Code

Properties of Code Change

Properties of Bug Report

Title

Summary

Severity of Bug

Operating System

Comments

Size (LOC, NOM)

Complexity (WMC)

Code Churn

Number of Changed Files

Fine Grained Change Types

Metrics from three Dimensions

Page 11: An Empirical Study on Factors Impacting Bug Fixing Time

11

RQ1: Do delays by developers exist during

bug fixing process?

RQ2: Can we characterize delays incurred by

developers before and after fixing bugs?

RQ3: What factors contribute to the delays

most?

Research Questions

Page 12: An Empirical Study on Factors Impacting Bug Fixing Time

12

RQ1: Bug fixing time extracted from two data sources

Page 13: An Empirical Study on Factors Impacting Bug Fixing Time

13

RQ1: Intervals during bug fixing process

Delay

Before

Response

Delay

Before

Assign

Delay

Before

Change

Delay

After

Change

Duration

Of

Bug Fixing

Page 14: An Empirical Study on Factors Impacting Bug Fixing Time

14

Enhancement v.s. Defect

364

Delay

Before

Change

56

186

4

Low Severity v.s. High Severity

198

n.s

110

n.s

RQ2: Properties of Bug Report

Delay

After

Change

Delay

Before

Change

Delay

After

Change

Delay

Before

Change

Delay

After

Change

Delay

Before

Change

Delay

After

Change

Page 15: An Empirical Study on Factors Impacting Bug Fixing Time

15

RQ2: Properties of Bug Report (cont’)

Length of comment

delay before change

delay after change

Page 16: An Empirical Study on Factors Impacting Bug Fixing Time

16

RQ2: Properties of Source Code

Size of Source Code

delay before change (sum)

delay after change (avg/sum/max)

Complexity of Source Code

delay before change (sum)

delay after change (sum/max)

Page 17: An Empirical Study on Factors Impacting Bug Fixing Time

17

Code Churn

delay before change (avg/sum/max)

delay after change (avg/sum/max)

Fine Grained Change Types

delay before change

delay after change

RQ2: Properties of Code Change

Page 18: An Empirical Study on Factors Impacting Bug Fixing Time

18

RQ3: What factors contribute to the delays most?

Events:

Long DBC : greater than median

Long DAC : greater than median

Analysis Method: (Logistic Regression Model)

Predict the probability of an event’s occurrence.

Combines different factors.

Interpretation by Coefficient:

magnitude describes importance

sign describes direction

Page 19: An Empirical Study on Factors Impacting Bug Fixing Time

19

RQ3: Factors Impacting Delays Before Change

-0.5

0.4

0.3

0.2

is bug with high severity

max length of comment

sum NOM

sum Code Churn

-0.5 0.5 Coefficient

Page 20: An Empirical Study on Factors Impacting Bug Fixing Time

20

-0.7

0.5

-0.5

max length of comment

is bug

sum WMC

max WMC

is OS Linux

length of description

avg Code Churn

-0.5

-0.3

0.3

0.7

RQ3: Factors Impacting Delays After Change

-1.0 1.0 Coefficient

Page 21: An Empirical Study on Factors Impacting Bug Fixing Time

21

Top Two Intervals in Bug Fixing Process

delay before and after change

Delay Before Change

level of severity, code churn (most influential factors)

Delay After Change

comments, complexity (most influential factors)

Conclusions