SlideShare a Scribd company logo
1 of 29
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
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
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
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
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
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
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)
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)
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
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Questions?
• Email: masao@sys.wakayama-u.ac.jp
• HP: http://oss.sys.wakayama-u.ac.jp
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 28
2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 29

More Related Content

Similar to Ohira icsm2012

AN EMPIRICAL STUDY OF THE RELATION BETWEEN STRONG CHANGE COUPLING AND DEFECTS...
AN EMPIRICAL STUDY OF THE RELATION BETWEEN STRONG CHANGE COUPLING AND DEFECTS...AN EMPIRICAL STUDY OF THE RELATION BETWEEN STRONG CHANGE COUPLING AND DEFECTS...
AN EMPIRICAL STUDY OF THE RELATION BETWEEN STRONG CHANGE COUPLING AND DEFECTS...Igor Wiese
 
Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories ijseajournal
 
AN APPROACH FOR TEST CASE PRIORITIZATION BASED UPON VARYING REQUIREMENTS
AN APPROACH FOR TEST CASE PRIORITIZATION BASED UPON VARYING REQUIREMENTS AN APPROACH FOR TEST CASE PRIORITIZATION BASED UPON VARYING REQUIREMENTS
AN APPROACH FOR TEST CASE PRIORITIZATION BASED UPON VARYING REQUIREMENTS IJCSEA Journal
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtRungrojMaipradit1
 
131016 wcre-matching
131016   wcre-matching131016   wcre-matching
131016 wcre-matchingZephyrin Soh
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...SAIL_QU
 
Use case point ( Software Estimation Technique)
Use case point ( Software Estimation Technique)Use case point ( Software Estimation Technique)
Use case point ( Software Estimation Technique)Punjab University
 
130705 zephyrin soh - how developers spend their effort during maintenance ...
130705   zephyrin soh - how developers spend their effort during maintenance ...130705   zephyrin soh - how developers spend their effort during maintenance ...
130705 zephyrin soh - how developers spend their effort during maintenance ...Ptidej Team
 
Workshop BI/DWH AGILE TESTING SNS Bank English
Workshop BI/DWH AGILE TESTING SNS Bank EnglishWorkshop BI/DWH AGILE TESTING SNS Bank English
Workshop BI/DWH AGILE TESTING SNS Bank EnglishMarcus Drost
 
Extension of time Analysis
Extension of time AnalysisExtension of time Analysis
Extension of time AnalysisFarhan Moosa
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesSAIL_QU
 
Coordination and Productivity Issues in Free Software: The Role of Brooks' Law
Coordination and Productivity Issues in Free Software: The Role of Brooks' LawCoordination and Productivity Issues in Free Software: The Role of Brooks' Law
Coordination and Productivity Issues in Free Software: The Role of Brooks' LawAndrea Capiluppi
 
USING CATEGORICAL FEATURES IN MINING BUG TRACKING SYSTEMS TO ASSIGN BUG REPORTS
USING CATEGORICAL FEATURES IN MINING BUG TRACKING SYSTEMS TO ASSIGN BUG REPORTSUSING CATEGORICAL FEATURES IN MINING BUG TRACKING SYSTEMS TO ASSIGN BUG REPORTS
USING CATEGORICAL FEATURES IN MINING BUG TRACKING SYSTEMS TO ASSIGN BUG REPORTSijseajournal
 
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...CSCJournals
 

Similar to Ohira icsm2012 (20)

AN EMPIRICAL STUDY OF THE RELATION BETWEEN STRONG CHANGE COUPLING AND DEFECTS...
AN EMPIRICAL STUDY OF THE RELATION BETWEEN STRONG CHANGE COUPLING AND DEFECTS...AN EMPIRICAL STUDY OF THE RELATION BETWEEN STRONG CHANGE COUPLING AND DEFECTS...
AN EMPIRICAL STUDY OF THE RELATION BETWEEN STRONG CHANGE COUPLING AND DEFECTS...
 
Chi2017
Chi2017Chi2017
Chi2017
 
Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
AN APPROACH FOR TEST CASE PRIORITIZATION BASED UPON VARYING REQUIREMENTS
AN APPROACH FOR TEST CASE PRIORITIZATION BASED UPON VARYING REQUIREMENTS AN APPROACH FOR TEST CASE PRIORITIZATION BASED UPON VARYING REQUIREMENTS
AN APPROACH FOR TEST CASE PRIORITIZATION BASED UPON VARYING REQUIREMENTS
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
 
131016 wcre-matching
131016   wcre-matching131016   wcre-matching
131016 wcre-matching
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...
 
Use case point ( Software Estimation Technique)
Use case point ( Software Estimation Technique)Use case point ( Software Estimation Technique)
Use case point ( Software Estimation Technique)
 
130705 zephyrin soh - how developers spend their effort during maintenance ...
130705   zephyrin soh - how developers spend their effort during maintenance ...130705   zephyrin soh - how developers spend their effort during maintenance ...
130705 zephyrin soh - how developers spend their effort during maintenance ...
 
ncaca2016
ncaca2016ncaca2016
ncaca2016
 
SAD15 - Maintenance
SAD15 - MaintenanceSAD15 - Maintenance
SAD15 - Maintenance
 
Workshop BI/DWH AGILE TESTING SNS Bank English
Workshop BI/DWH AGILE TESTING SNS Bank EnglishWorkshop BI/DWH AGILE TESTING SNS Bank English
Workshop BI/DWH AGILE TESTING SNS Bank English
 
Extension of time Analysis
Extension of time AnalysisExtension of time Analysis
Extension of time Analysis
 
PROBLEMS FACED IN AUTOMATION
PROBLEMS FACED IN AUTOMATIONPROBLEMS FACED IN AUTOMATION
PROBLEMS FACED IN AUTOMATION
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution Analyses
 
Coordination and Productivity Issues in Free Software: The Role of Brooks' Law
Coordination and Productivity Issues in Free Software: The Role of Brooks' LawCoordination and Productivity Issues in Free Software: The Role of Brooks' Law
Coordination and Productivity Issues in Free Software: The Role of Brooks' Law
 
USING CATEGORICAL FEATURES IN MINING BUG TRACKING SYSTEMS TO ASSIGN BUG REPORTS
USING CATEGORICAL FEATURES IN MINING BUG TRACKING SYSTEMS TO ASSIGN BUG REPORTSUSING CATEGORICAL FEATURES IN MINING BUG TRACKING SYSTEMS TO ASSIGN BUG REPORTS
USING CATEGORICAL FEATURES IN MINING BUG TRACKING SYSTEMS TO ASSIGN BUG REPORTS
 
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
Software Defect Trend Forecasting In Open Source Projects using A Univariate ...
 

More from SAIL_QU

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...SAIL_QU
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsSAIL_QU
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...SAIL_QU
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...SAIL_QU
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...SAIL_QU
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...SAIL_QU
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?SAIL_QU
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesSAIL_QU
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...SAIL_QU
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...SAIL_QU
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...SAIL_QU
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...SAIL_QU
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?SAIL_QU
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...SAIL_QU
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...SAIL_QU
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsSAIL_QU
 
On the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity DataOn the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity DataSAIL_QU
 
On the Link Between Mobile App Quality and User Reviews
On the Link Between Mobile App Quality and User ReviewsOn the Link Between Mobile App Quality and User Reviews
On the Link Between Mobile App Quality and User ReviewsSAIL_QU
 

More from SAIL_QU (20)

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load tests
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log Changes
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
 
On the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity DataOn the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity Data
 
On the Link Between Mobile App Quality and User Reviews
On the Link Between Mobile App Quality and User ReviewsOn the Link Between Mobile App Quality and User Reviews
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
  • 28. Questions? • Email: masao@sys.wakayama-u.ac.jp • HP: http://oss.sys.wakayama-u.ac.jp 2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 28
  • 29. 2012/09/26 The Impact of Bug Management Patterns @ ICSM2012 29

Editor's Notes

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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),
  8. 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.
  9. Here, we introduce the bug management patterns which provide us with a framework to study the bug management process.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. Here, our research question is How do the bug management patterns impact the time to complete bug assignments?
  16. 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]).
  17. 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.
  18. Next Research Question is How do the bug management patterns impact the time to fix bugs?
  19. 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.
  20. This graph also shows this pattern, black line ([R̸=T̸=F]) is apparently the worst.
  21. 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.
  22. 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.
  23. 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.
  24. 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.
  25. 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.
  26. 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.
  27. 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).
  28. 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.