The document discusses a case study examining how different bug management patterns impact bug fixing times in Eclipse projects. It identifies four patterns: 1) the same person reports, triages, and fixes a bug; 2) the reporter and triager are the same but the fixer is different; 3) the triager and fixer are the same but the reporter is different; and 4) all roles are filled by different people. The study finds that pattern 1 tends to yield the fastest bug fixes, while pattern 4, with disconnected roles, tends to be the most difficult.
On the Link Between Mobile App Quality and User Reviews
Ohira icsm2012
1. The Impact of Bug Management Patterns
on Bug Fixing:
A Case Study of Eclipse Projects
Masao Ohira Ahmed E. Hassan Naoya Osawa Ken-ichi Matsumoto
Wakayama Univ. Queens Univ. Nara Institute of Science and Technology
2. Background
• An efficient bug management process (reports, assignment
and fixing) is critical for the success of software projects.
• As the user base grows, some large open source projects
receive a large number of bug reports.
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 2
3. Complex challenges
to the bug management process
• Bug management process
– Understand a large amount of new bug reports
– Figure out If they are real bugs and whether they were reported in
the past (i.e., duplicate bugs)
– Assign them to appropriate persons to fix the bugs quickly
• 44% of bugs in the Eclipse project are reassigned to more than one developer
[Jeong et al. 2009]
Bug reported
UNCONFIRMED
Reporter FixerTriager
NEW ASSIGNED
Accepted as a bug Assigned to fix
RESOLVED
Bug fixed
FIXED
TOSSED
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 3
4. Related work
• Quality of bug reports
– A good report helps developers to quickly find, replicate, and
understand the bugs.
[N. Bettenburg et al. 2008] [S. Breu et al. 2010] [T. Zimmermann et al 2010]
• Detection of duplicate bug reports
– Users often report the same problems which were reported and
fixed in the past.
[X. Wang et al. 2008] [N. Bettenburg et al. 2008] [C. Sun et al. 2010]
• Re-opening and reassigning of bug reports
– A bug sometimes is be reopen and reassigned when it was
assigned to an inappropriate developer.
[Anvik et al. 2007] [G.Jeong et al. 2009] [E. Shihab et al. 2010] [P. J. Guo et al. 2011]
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 4
5. Our focus:
Relations between the individuals
• Relations between individuals involved in the bug
management process
– Who reports? Who triages it? Who fixes it?
Bug reported
UNCONFIRMED
Reporter FixerTriager
NEW ASSIGNED
Accepted as a bug Assigned to fix
RESOLVED
Bug fixed
FIXED
TOSSED
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012
Bug reported
UNCONFIRMED
Reporter FixerTriager
NEW ASSIGNED
Accepted as a bug Assigned to fix
RESOLVED
Bug fixed
FIXED
TOSSED
Bug reported
UNCONFIRMED
Reporter FixerTriager
NEW ASSIGNED
Accepted as a bug Assigned to fix
RESOLVED
Bug fixed
FIXED
TOSSED
Bug reported
UNCONFIRMED
Reporter FixerTriager
NEW ASSIGNED
Accepted as a bug Assigned to fix
RESOLVED
Bug fixed
FIXED
TOSSED
5
6. Our goal
• To better understand the impact of the relations between
the individuals on the efficiency of the bug management
process
– Impact of the time to assign bug fixing tasks
– Impact on the time to fix bugs
Bug reported
UNCONFIRMED
Reporter FixerTriager
NEW ASSIGNED
Accepted as a bug Assigned to fix
RESOLVED
Bug fixed
FIXED
Time to assign a bug (Tassignment) Time to fix a bug (Tbug-fix)
TOSSED
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 6
7. Pilot study (1)
Eclipse Platform and JDT
• RQ1: Does the time to assign a bug fixing task depend on
the fact that the same developer reports a bug and triages
it?
• Result
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 7
Bug reported
UNCONFIRMED
Reporter Triager
NEW ASSIGNED
Accepted as a bug
Time to assign a bug (Tassignment)
Bug reported
UNCONFIRMED
Reporter Triager
NEW ASSIGNED
Accepted as a bug
Time to assign a bug (Tassignment)
VS.
When a triager reports a bug, the average time of
assignments is about 17–47% faster
(2.6 days in Platform and 9.4 days in JDT)
8. Pilot study (2)
Eclipse Platform and JDT
• RQ2: Does the time to fix a bug depend on the fact that the
same developer triages a bug and fixes it?
• Result
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 8
VS.
FixerTriager
NEW ASSIGNED
Accepted as a bug Assigned to fix
RESOLVED
Bug fixed
FIXED
Time to fix a bug (Tbug-fix)
FixerTriager
NEW ASSIGNED
Accepted as a bug Assigned to fix
RESOLVED
Bug fixed
FIXED
Time to fix a bug (Tbug-fix)
The average time of bug fixing by triagers
was about two times faster
(23.8 days in Platform and 10.2 days in JDT)
9. Bug Management Patterns
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 9
10. Pattern #1
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 10
• Pattern #1 is assumed to make bug fixing faster.
• He likely knows the bug source.
• He likely has good confidence in his ability.
11. Pattern #2
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 11
• From our pilot study (RQ1), Pattern #2 can be
assumed to make the bug assignment faster, but bug
fix may be slower.
12. Pattern #3
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 12
• Pattern #3 would make bug fixing itself faster if (B) has a good
understanding of the bug reported by (A).
• otherwise it would make bug fixing difficult, because (B) has to
spend the time to investigate the bug.
13. Pattern #4
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 13
• This pattern is assumed to make both the bug
assignment and bug fixing most difficult
• The mismatches of knowledge and skills between
them would be larger than the other patterns.
14. Case study on bug management patterns
Eclipse Platform and JDT
• Data sets (also used in the pilot study)
– fixed bug reports from 2007 to 2009 (*)
• Eclipse Platform: 4,133 reports
– 811 reporters, 54 triagers and 85 fixers
• Eclipse JDT: 1,657 reports
– 369 reporters, 23 triagers and 33 fixers
• The ratio of #3 and #4 are almost same and large
(i.e., important patterns for the bug management process)
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 14
15. Case study (1)
Bug management patterns in Eclipse Platform and JDT
• RQ3: How do the bug management patterns impact the
time to complete bug assignments?
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 15
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
16. Case study (1)
Bug management patterns in Eclipse Platform and JDT
• RQ3: How do the bug management patterns impact the
time to complete bug assignments?
• Result
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 16
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the
roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to
fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and
fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from
others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
17. Case study (1)
Bug management patterns in Eclipse Platform and JDT
• RQ3: How do the bug management patterns impact the
time to complete bug assignments?
• Result
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 17
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the
roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to
fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and
fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from
others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
18. Case study (2)
Bug management patterns in Eclipse Platform and JDT
• RQ4: How do the bug management patterns impact the
time to fix bugs?
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 18
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
19. Case study (2)
Bug management patterns in Eclipse Platform and JDT
• RQ3: How do the bug management patterns impact the
time to complete bug assignments?
• Result
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 19
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the
roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to
fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and
fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from
others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
20. Case study (2)
Bug management patterns in Eclipse Platform and JDT
• RQ3: How do the bug management patterns impact the
time to complete bug assignments?
• Result
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 20
Case study (2)
Bug management patterns in Eclipse Platform and JDT
Reporter=Triager=Fixer (R=T=F)
One contributor plays all of the
roles.
Reporter=Triager≠Fixer (R=T≠F)
One contributor asks another contributor to
fix
a bug.
Reporter≠Triager=Fixer (R≠T=F)
One contributor serves as triager and
fixer.
Reporter≠Triager≠Fixer (R≠T≠F)
Each contributor has a different role from
others.
A
A
A
reporter fixer
Triager
RESOLVED RESOLVED
A
B
B
reporter fixer
Triager
A
A
B
reporter fixer
Triager
RESOLVED
A
B
C
reporter fixer
Triager
RESOLVED
21. Discussions (1)
Summary of our findings
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 21
RQ1
When a triager makes a bug
report as a reporter, the time to
assign a bug fixing task is 17–
47% faster than a regular
reporter.
RQ3
Surprisingly when the triager
assigns a task to himself, he
needs 48%–58% longer time for
the assignment than when he
assigns it to other developers.
RQ2
When a triager assigns a bug
fixing task to himself, he can fix
the bug around two times faster
than other developers.
RQ4
The pattern [R≠T≠F] exhibits
the worst performance
in bug fixing.
Task Assignment Bug Fix
22. Discussions (2)
The impact of discussions among developers
• The boxplot of [R≠T≠F] had the widest distribution.
– This implies that in some cases the pattern works better than other
patterns.
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 22
23. Discussions (2)
The impact of discussions among developers
• Discussions about bugs before bug report assignment
made a difference in the bug-fixing performance.
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 23
24. Discussions (3)
Other factors that would impact the time to fix
• There are many other factors that would impact the time to
fix bugs.
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 24
25. Discussions (3)
Other factors that would impact the time to fix
• We analyzed which metrics contributed to our prediction
(logistic regression) model.
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 25
26. Discussions
Threats to Validity
• Only three years (from 2007 to 2009) bug report data
without reassignments
– Such data selection might bring bias against the complete picture
of open source development
• Only the two open source projects
– The Eclipse projects is large enough, but they have developers
who are fully employed by IBM
– The user base of the Eclipse products is different from that of other
products such as Mozilla
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 26
27. Conclusion and future work
• A need for better ways to communicate and share
knowledge between the different individuals.
– In cases where all roles were played by different individuals, the
efficiency of the bug fixing was negatively impacted.
– Communication appears to have a positive impact on speeding up
bug fixing time even when every role is played by different
individuals.
• Our future work includes investigating other projects and
other factors (e.g., complexity of bugs).
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 27
I am Masao Ohira from Wakayama Univ. in Japan. Today I would like to talk about our collaborative work among Japanese Univ. and Queens Univ, titled the impact of bug management patterns on bug fixing.
An efficient bug management process (reports, assignment and fixing) is critical for the success of software projects.
As the user base grows, some large open source projects receive a large number of bug reports on a daily basis.
Bug tracking systems (BTS) are widely used to manage the bug management process, however, such the large projects have been faced with complex challenges to the process recently.
Developers, in particular, triager must understand a number of new bug reports,
Figure out If they are real bugs and whether they were reported in the past,
And Assign them to appropriate persons to fix the bugs quickly
Correct bug triaging is very challenging.
In fact, 44% of bugs in the Eclipse project are reassigned to more than one developer.
To improve the bug management process, previous work proposed several promising approaches.
for example,
A good bug report helps developers[略]. So, many studies have interviewed developers to understand their information needs for effective bug fixing.
Users often report the same problems[略]. Developers also sometimes try to resolve the same problem which was resolved in the past. This can happen because there are a large number of bug reports in BTS. Several approached have been proposed to automatically detect duplicate bug reports.
A bug will be often reopen and reassigned when it was assigned to an inappropriate developer. So, previous work proposed automatic assignment methods using natural language processing techniques, social graph and so on.
In this study, our focus is on relations between individuals involved in the bug management process.
As a contributor for the project, the triager can be a reporter and/or a fixer. So these relations should impact the efficiency of the process.
So, our goal in this study is to better understand the impact of the relations between the individuals on the efficiency of the bug management process.
In particular, we would like to see the impact of the time to assign bug fixing tasks and the impact of the time to fix bugs.
In order to do so, we had a pilot study using bug report data from the Eclipse Platform and JDT projects.
Our first research question is Does the time to assign a bug fixing task depend on the fact that the same developer reports a bug and triages it?
In the data set, around 25% of the individuals were developers, that is, a reporter is a triager.
And We found that the average time of assignments of bug reports from triagers is about 17–47% faster than regular reporters.
(2.6 days in Platform and 9.4 days in JDT),
Next research question is Does the time to fix a bug depend on the fact that the same developer triages a bug and fixes it?
Around 50% of the individuals played both roles of triager and fixer.
The average time of bug fixing by triagers was about two times faster than regular developers.
The results of our pilot study provided clear understandings of the relations between individuals, but the results encouraged us to further investigate the combined consequence of all three roles on Tassignment and Bug fixing.
Here, we introduce the bug management patterns which provide us with a framework to study the bug management process.
In this first pattern, a single individual plays all the roles. This is assumed to make bug fixing faster since the individual likely knows the bug source and has good confidence in his ability to fix the bug.
In this pattern, One individual (A) has the roles of both reporter and triager, and another individual (B) fixes the bug. From our pilot study, this pattern can be assumed to make the bug assignment faster, but bug fix may be slower.
In this pattern, one individual (A) reports a bug and another individual (B) assigns the bug report to herself as to fix. This pattern would make bug fixing itself faster if (B) has a good understanding of the bug reported by (A); otherwise it would make bug fixing difficult because (B) has to spend the time to investigate the bug.
In this pattern, three different individuals play each of the roles in the process. This pattern is assumed to make both the bug assignment and bug fixing most difficult because the mismatches of knowledge and skills between them would be larger than the other patterns.
In our study we wish to confirm the difficulty of “team work” in the bug management process and to find hints to overcome it.
This is our data set to investigate the impact of bug management patterns on bug assignment and bug fixing.
The data set was the same one used in our pilot study.
We collected 3 year’s bug reports from Eclipse Platform and JDT.
The pattern #3 and #4 has the almost same and large rate. This implies this two patterns are important for the bug management process.
Here, our research question is How do the bug management patterns impact the time to complete bug assignments?
As we expected before the analysis, these two patterns (1番目と2番目) showed good performance in assigning tasks in the both projects
Against our expectations, there were no differences between this ([R≠ T=F]) and this ([R̸=T≠ F]) in the Platform project. Furthermore we could confirm the statistically significant difference in JDT, surprisingly this means that the performance in this ([R̸=T≠ F]) was significantly superior to this pattern ([R̸=T=F]).
This figure shows the required days to assign all the tasks to individuals in Platform and JDT. This figure also said that this pattern, green line ([R̸=T=F]) is worse performance, 48%–58% longer time than this pattern, black line.
We don’t have strong confidence, but we suspect that this phenomena likely happened when this triager in [R≠ T=F] tried to ask a fixer to take a bug fixing task but he cannot get any response from the fixer, then he finally assigns the task to himself or herself. So it maybe take longer time than this pattern.
Next Research Question is How do the bug management patterns impact the time to fix bugs?
We found the statistical differences between [R̸=T̸=F] and other patterns in Platform and JDT. This implies that “team work” in the bug management process is much difficult due to communication overhead and/or miscommunication among stakeholders.
This graph also shows this pattern, black line ([R̸=T̸=F]) is apparently the worst.
Here, I summarize our finding in this study.
RQ1→RQ3→RQ2→RQ4
To get some hints to overcome the difficulty in this pattern [R≠T≠F], we did additional analysis.
We noticed that in the boxplot of time to fix, this pattern [R≠ T̸=F] had the widest distribution. This implies that in some cases this pattern [R≠ T≠ F] works better than other patterns.
We manually checked 100 bug reports randomly selected from our data set We then compared quickly- fixed bug reports with slowly-fixed bug reports.
We found that discussions about bugs before bug report assignment made a difference in the bug-fixing performance.
We see Tfix is gradually reduced as comments increase. Comments mean discussions about a bug in Bugzilla.
We also manually read the bug reports and found that developers including triagers discussed how to reproduce and fix the bugs, and who would be the most appropriate to fix the bugs.
From this finding, we can say that project personnel can improve their efficiency through better communication about bugs before assigning them.
We also have another additional analysis to study the importance of the bug management patterns, because there are many other factors that would impact the time to fix bugs.
For example, which component does developers try to fix is well known as very important factor to predict when the bug will be fixed.
So, using these metrics, we created a prediction model based on logistic regression to quantify the importance of each metric.
We analyzed which independent variable contributed to our prediction model building. We used deviance residuals as the measures to check the model fit.
We can see that Component (i.e., which component is fixed) is the most important factor to predict Tfix in each period of time. <a day, <a week, <a month means our logistic regression model predicts if the bug will be fixed in a day, or, in a week, or in a month.
Pattern (i.e., the bug management patterns) is the second important factor. Fixer, who will fix bugs are third important. We can conclude that the bug management pattern is an unignorable, important factor.
However, in this study, we only used three years bug report data and two open source projects. So we need to do more using a complete dataset and other projects.
In this study we explored the bug management process from a social perspective. In particular, we studied the impact of the relation between individuals involved in the process, we called bug management patterns.
From this study, we conclude that there is a need for for better ways to communicate and share knowledge between the different individuals,
Because, In cases where all roles were played by different individuals, the efficiency of the bug fixing was negatively impacted,
But Communication appears to have a positive impact on speeding up bug fixing time even when every role is played by different individuals.
Our future work includes investigating other projects and other factors (e.g., complexity of bugs).
This is results of the prediction accuracy for each specified period. It also shows the improvement rate against a prediction result which was calculated 1,000 times by randomly selecting one independent variable. Almost all results with the three evaluation measures (precision, recall and F1-value) tend to be better when predicting a longer period of time. All the F1-values of our results also perform the result which is predicted by using randomly selected independent variable.