SlideShare a Scribd company logo
1 of 48
Download to read offline
Duplicate Bug Reports
Considered Harmful ...
Really?!


Nicolas Bettenburg    Rahul Premraj          Tom Zimmermann          Sunghun Kim
Saarland University   Saarland University    University of Calgary   MIT CSAIL
Queenʼs University    Vrije Uni. Amsterdam   Microsoft Research      Hong Kong University
2
Duplicate Bug Reports




                     # 2271

                      A
      Bug Database




                              3
Duplicate Bug Reports




  BUG                  # 2271

                        A
        Bug Database




                                3
Duplicate Bug Reports




                     # 2271   # 3219

                      A         B
      Bug Database




                                       3
Duplicate Bug Reports




                     # 2271   # 3219

                      A         B
      Bug Database




                                       4
Duplicate Bug Reports




                     # 2271   # 3219

                      A         B
      Bug Database




                                       4
What are the
reasons for duplicates?




                          5
Inexperienced Users
                      6
Poor Search Feature
                      7
Multiple Failures - One Defect
                                 8
Accidental Resubmission
                          9
FIX THAT BUG!




Intentional Resubmission
                           10
ECLIPSE
20%   Duplicates
371   per month



                   11
Duplicate reports are
usually ignored
once identified!




                        12
But Wait!
 Is this really
      the right
 thing to do?



              13
“Duplicates [...] often
                 add useful information.
                   [It is unfortunate that
                 this information is filed
                        in a new report.]”


Developer
What Makes a Good Bug Report?
to appear in FSE 2008

                                         14
Alan Page
Director of Test Excellence, Microsoft

                                         15
Bug duplicates can provide
             valuable information [...]




Alan Page
Director of Test Excellence, Microsoft

                                         15
Experiment 1
Do duplicate bug reports
contain additional
information?



             2 EXPERIMENTS

                           Experiment 2
                                 Can additional
                           information improve
                                  bug triaging?
                                                  16
Experiment 1
Do duplicate bug reports contain additional information?




                                                           17
The infoZilla Tool
                                                                                                                                Detects and Extracts
Bug 137808
 Summary:             Exceptions from createFromString lock-up the editor
 Product:             [Modeling] EMF         Reporter:               Patrick Sodre <psodre@gmail.com>
 Component:           Core                   Assignee:               Marcelo Paternostro <marcelop@ca.ibm.com>
 Status:              VERIFIED FIXED         QA Contact:
 Severity:            normal




                                                                                                                                Structural Information:
 Priority:            P3                     CC:                     merks@ca.ibm.com
 Version:             2.2
 Target Milestone:    ---
 Hardware:            PC
 OS:                  Windows XP
 Whiteboard:


                                                                             Opened: 2006-04-20 14:25 -
Description:
                                                                             0400

As discussed on the newsgroup under the Thread with the same name I am opening
this bug entry. Here is a history of the thread.

-- From Ed Merks

Patrick,

The value is checked before it's applied and can't be applied until it's valid.
 But this BigDecimal cases behaves oddly because the exception thrown by

new BigDecimal(quot;badvaluequot;)

has a null message and the property editor relies on returning a non-null
                                                                                                                                     SCREENSHOTS
message string to indicate there is an error.

Please open a bugzilla which I'll fix like this:

### Eclipse Workspace Patch 1.0
#P org.eclipse.emf.edit.ui
Index: src/org/eclipse/emf/edit/ui/provider/PropertyDescriptor.java
===================================================================
RCS file:
/cvsroot/tools/org.eclipse.emf/plugins/org.eclipse.emf.edit.ui/src/org/eclipse/emf/edit/ui/provider/PropertyDescriptor.java,v
retrieving revision 1.10
diff -u -r1.10 PropertyDescriptor.java
--- src/org/eclipse/emf/edit/ui/provider/PropertyDescriptor.java     21 Mar 2006




                                                                                                                                     SOURCE CODE
16:42:30 -0000     1.10
+++ src/org/eclipse/emf/edit/ui/provider/PropertyDescriptor.java     20 Apr 2006
11:59:10 -0000
@@ -162,7 +162,8 @@
                 }
                 catch (Exception exception)
                 {
-                  return exception.getMessage();
+                  String message = exception.getMessage();
+                  return message == null ? exception.toString() : message;
                 }
               }
               Diagnostic diagnostic =
Diagnostician.INSTANCE.validate(EDataTypeCellEditor.this.eDataType, value);


Patrick Sodre wrote:
Hi,
    It seems that if the user inputs an invalid parameter that gets created from
quot;createFromStringquot; the Editor locks-up until the user explicitly calls quot;restore
Default Valuequot;.
    Is this the expected behavior or could something better be done? For




                                                                                                                                       PATCHES
instance if an exception is thrown restore the value back to what it was before
after displaying a pop-up error message.
    I understand that for DataTypes defined by the user he/she should take care
of catching the exceptions but for the default ones like BigInteger/BigDecimal
I think the EMF runtime could do some of the grunt work...
    If you think this is something worth pursuing I could post an entry in
Bugzilla.

Regards,
Patrick Sodre


Below is the stack trace that I got from the Editor...

java.lang.NumberFormatException
at java.math.BigDecimal.<init>(BigDecimal.java:368)
at java.math.BigDecimal.<init>(BigDecimal.java:647)
at
org.eclipse.emf.ecore.impl.EcoreFactoryImpl.createEBigDecimalFromString(EcoreFactoryImpl.java:559)
at
org.eclipse.emf.ecore.impl.EcoreFactoryImpl.createFromString(EcoreFactoryImpl.java:116)
at
org.eclipse.emf.edit.ui.provider.PropertyDescriptor$EDataTypeCellEditor.doGetValue(PropertyDescriptor.java:183)




                                                                                                                                     STACK TRACES
at org.eclipse.jface.viewers.CellEditor.getValue(CellEditor.java:449)
at
org.eclipse.ui.views.properties.PropertySheetEntry.applyEditorValue(PropertySheetEntry.java:135)
at
org.eclipse.ui.views.properties.PropertySheetViewer.applyEditorValue(PropertySheetViewer.java:249)
at


------- Comment #1 From Ed Merks 2006-04-20 15:09:23 -0400 -------

The fix has been committed to CVS.           Thanks for reporting this problem.




                                                                                             Extracting Structural Information from Bug Reports
                                                                                                                 MSR 2008
Experimental Setup

    BUGthisasd
    asdlknasdklnasdlk
    askdnaklsdn
    aksdnlaksdnlkasdkn

    asd
    sadddda
    asdaddasd

    aksdnlaskdnlkansd




 Master Report                             Elements



    BUGthisasd
    asdlknasdklnasdlk
                               infoZilla
    askdnaklsdn
    aksdnlkasdkn
    asdasdasdasdasd
    a
    s                 adddda
    a

    daddasd
    asdasdasdasdasd
    askdnlkansd




Duplicate Report                           Elements



                                                      19
Experimental Setup


                        compare

  Elements                          Elements

   BUGthisasd
   asdlknasdklnasdlk
                                      BUGthisasd
   askdnaklsdn                        asdlknasdklnasdlk
                                      askdnaklsdn
                                      aksdnlaksdnlkasdkn
   aksdnlaksdnlkasdkn                 asd
                                      sadddda
                                      asdaddasd
                                      aksdnlaskdnlkansd
   asd                                                     BUGthisasd
                                                           asdlknasdklnasdlk
                                                           askdnaklsdn
   sadddda                                                 aksdnlkasdkn
                                                           asdasdasdasdasd
                                                           a
   asdaddasd                                               s
                                                           adddda
                                                           a

   aksdnlaskdnlkansd                                       daddasd
                                                           asdasdasdasdasd
                                                           askdnlkansd




Master Report                     Extended Report




                                                                               20
ECLIPSE




          21
16,511 Master Reports
ECLIPSE




                                  21
16,511 Master Reports
ECLIPSE

          27,838 Duplicate Reports




                                     21
16,511 Master Reports
ECLIPSE

            27,838 Duplicate Reports



          Unique elements per report:




                     Master   Extended   21
16,511 Master Reports
ECLIPSE

                27,838 Duplicate Reports



          Unique elements per report:
          2.5
                         1.94
          2.0     1.83

          1.5                               1.42


          1.0
                                     0.50
          0.5                                               0.29
                                                     0.14
           0
                  Patches           Stacktraces     Screenshots

                                Master        Extended             21
Experiment 1
Do duplicate bug reports contain additional information?




                                                           22
Experiment 1
Do duplicate bug reports contain additional information?




         They do!
                                                           22
Experiment 2
Can additional information improve bug triaging?




                                                   23
Bug Triage


   Developer




               24
Bug Triage

 BUG



Report      Developer




                        24
Bug Triage

 BUG



            Developer
                        ✓BUG



                        Fixed
Report




                                24
Bug Triage
                      BUG
             BUG




                                               ✓
      BUG
                                                BUG
BUG                 BUG

            BUG
                          BUG
                   Report
                   BUG             Developer   Fixed




                                                       24
Bug Triage
                      BUG
             BUG




                                                        ✓
      BUG
                                                         BUG
BUG                 BUG

            BUG
                          BUG
                   Report
                   BUG            Triager   Developer   Fixed




                                                                24
Experimental Setup


•Machine learning to predict developers
•Train using master reports
•Train using extended reports
•10 Runs

                                          25
Results for predicting Top-5 developers

Precision

  70.00
                                                                                                            65
                                                         61        60                             60
  61.25                                                                                 58
                                                              57                             57        56             56
                                                    55
                           52        53        52                                  52
  52.50                                                                       51                                 51
                 47   47        47        48                             48

  43.75     42




  Run        1         2         3         4         5         6           7        8         9        10        All


                                                Master                  Extended


                                                                                                                           26
Experiment 2
Can additional information improve bug triaging?




                                                   27
Experiment 2
Can additional information improve bug triaging?




         They can!
                                                   27
Duplicate reports are
usually ignored
once identified!




                        28
Duplicate reports are
usually ignored




                   X
once identified!


Merge Reports

                        28
29
29
29
29
29

More Related Content

Similar to Duplicate Bug Reports Considered Harmful ... Really?

Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Nicolas Bettenburg
 
Quality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceQuality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceThomas Zimmermann
 
Production Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyProduction Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyBrian Lyttle
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise ApplicationsDaniel Oh
 
CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)Borislav Traykov
 
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Cωνσtantίnoς Giannoulis
 
Testability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableTestability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableAlexander Tarlinder
 
Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Marcel Bruch
 
Dependability Benchmarking by Injecting Software Bugs
Dependability Benchmarking by Injecting Software BugsDependability Benchmarking by Injecting Software Bugs
Dependability Benchmarking by Injecting Software BugsRoberto Natella
 
Testing Web Based Applications[1]
Testing Web Based Applications[1]Testing Web Based Applications[1]
Testing Web Based Applications[1]MBA_Community
 
K8Guard - An Auditing System For Kubernetes
K8Guard - An Auditing System For KubernetesK8Guard - An Auditing System For Kubernetes
K8Guard - An Auditing System For KubernetesMedya Ghazizadeh
 
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug PredictionIt's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Predictionsjust
 
Improving Bug Tracking Systems
Improving Bug Tracking SystemsImproving Bug Tracking Systems
Improving Bug Tracking SystemsRahul Premraj
 
Re-checking the ReactOS project - a large report
Re-checking the ReactOS project - a large reportRe-checking the ReactOS project - a large report
Re-checking the ReactOS project - a large reportPVS-Studio
 
Analyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-StudioAnalyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-StudioPVS-Studio
 
Accord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer HumankindAccord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer HumankindPVS-Studio
 

Similar to Duplicate Bug Reports Considered Harmful ... Really? (20)

Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.
 
Quality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceQuality of Bug Reports in Open Source
Quality of Bug Reports in Open Source
 
Production Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyProduction Debugging at Code Camp Philly
Production Debugging at Code Camp Philly
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
 
CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)
 
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
 
Testability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableTestability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testable
 
Grounded Pointers
Grounded PointersGrounded Pointers
Grounded Pointers
 
Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...
 
Dependability Benchmarking by Injecting Software Bugs
Dependability Benchmarking by Injecting Software BugsDependability Benchmarking by Injecting Software Bugs
Dependability Benchmarking by Injecting Software Bugs
 
Testing Web Based Applications[1]
Testing Web Based Applications[1]Testing Web Based Applications[1]
Testing Web Based Applications[1]
 
JUNit Presentation
JUNit PresentationJUNit Presentation
JUNit Presentation
 
K8Guard - An Auditing System For Kubernetes
K8Guard - An Auditing System For KubernetesK8Guard - An Auditing System For Kubernetes
K8Guard - An Auditing System For Kubernetes
 
Do Bugs Reside in Complex Code?
Do Bugs Reside in Complex Code?Do Bugs Reside in Complex Code?
Do Bugs Reside in Complex Code?
 
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug PredictionIt's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
 
Mcollective introduction
Mcollective introductionMcollective introduction
Mcollective introduction
 
Improving Bug Tracking Systems
Improving Bug Tracking SystemsImproving Bug Tracking Systems
Improving Bug Tracking Systems
 
Re-checking the ReactOS project - a large report
Re-checking the ReactOS project - a large reportRe-checking the ReactOS project - a large report
Re-checking the ReactOS project - a large report
 
Analyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-StudioAnalyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-Studio
 
Accord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer HumankindAccord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
 

More from Nicolas Bettenburg

10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...Nicolas Bettenburg
 
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...Nicolas Bettenburg
 
Think Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction ModelsThink Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction ModelsNicolas Bettenburg
 
Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...Nicolas Bettenburg
 
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source CodeUsing Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source CodeNicolas Bettenburg
 
A Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured DataA Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured DataNicolas Bettenburg
 
Managing Community Contributions: Lessons Learned from a Case Study on Andro...
Managing Community Contributions:  Lessons Learned from a Case Study on Andro...Managing Community Contributions:  Lessons Learned from a Case Study on Andro...
Managing Community Contributions: Lessons Learned from a Case Study on Andro...Nicolas Bettenburg
 
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release LevelAn Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release LevelNicolas Bettenburg
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...Nicolas Bettenburg
 
Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*Nicolas Bettenburg
 
Automatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesAutomatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesNicolas Bettenburg
 
Cloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulCloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulNicolas Bettenburg
 
Predictors of Customer Perceived Quality
Predictors of Customer Perceived QualityPredictors of Customer Perceived Quality
Predictors of Customer Perceived QualityNicolas Bettenburg
 
Computing Accuracy Precision And Recall
Computing Accuracy Precision And RecallComputing Accuracy Precision And Recall
Computing Accuracy Precision And RecallNicolas Bettenburg
 
The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07Nicolas Bettenburg
 

More from Nicolas Bettenburg (19)

10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
 
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
 
Think Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction ModelsThink Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction Models
 
Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...
 
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source CodeUsing Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
 
A Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured DataA Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured Data
 
Managing Community Contributions: Lessons Learned from a Case Study on Andro...
Managing Community Contributions:  Lessons Learned from a Case Study on Andro...Managing Community Contributions:  Lessons Learned from a Case Study on Andro...
Managing Community Contributions: Lessons Learned from a Case Study on Andro...
 
Mud flash
Mud flashMud flash
Mud flash
 
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release LevelAn Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
 
Fuzzy Logic in Smart Homes
Fuzzy Logic in Smart HomesFuzzy Logic in Smart Homes
Fuzzy Logic in Smart Homes
 
Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*
 
Automatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesAutomatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing Changes
 
Cloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulCloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered Harmful
 
Approximation Algorithms
Approximation AlgorithmsApproximation Algorithms
Approximation Algorithms
 
Predictors of Customer Perceived Quality
Predictors of Customer Perceived QualityPredictors of Customer Perceived Quality
Predictors of Customer Perceived Quality
 
Computing Accuracy Precision And Recall
Computing Accuracy Precision And RecallComputing Accuracy Precision And Recall
Computing Accuracy Precision And Recall
 
The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07
 
Metropolis Instant Radiosity
Metropolis Instant RadiosityMetropolis Instant Radiosity
Metropolis Instant Radiosity
 

Recently uploaded

Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 

Recently uploaded (20)

Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 

Duplicate Bug Reports Considered Harmful ... Really?

  • 1. Duplicate Bug Reports Considered Harmful ... Really?! Nicolas Bettenburg Rahul Premraj Tom Zimmermann Sunghun Kim Saarland University Saarland University University of Calgary MIT CSAIL Queenʼs University Vrije Uni. Amsterdam Microsoft Research Hong Kong University
  • 2. 2
  • 3. Duplicate Bug Reports # 2271 A Bug Database 3
  • 4. Duplicate Bug Reports BUG # 2271 A Bug Database 3
  • 5. Duplicate Bug Reports # 2271 # 3219 A B Bug Database 3
  • 6. Duplicate Bug Reports # 2271 # 3219 A B Bug Database 4
  • 7. Duplicate Bug Reports # 2271 # 3219 A B Bug Database 4
  • 8. What are the reasons for duplicates? 5
  • 11. Multiple Failures - One Defect 8
  • 13. FIX THAT BUG! Intentional Resubmission 10
  • 14. ECLIPSE 20% Duplicates 371 per month 11
  • 15. Duplicate reports are usually ignored once identified! 12
  • 16. But Wait! Is this really the right thing to do? 13
  • 17. “Duplicates [...] often add useful information. [It is unfortunate that this information is filed in a new report.]” Developer What Makes a Good Bug Report? to appear in FSE 2008 14
  • 18. Alan Page Director of Test Excellence, Microsoft 15
  • 19. Bug duplicates can provide valuable information [...] Alan Page Director of Test Excellence, Microsoft 15
  • 20. Experiment 1 Do duplicate bug reports contain additional information? 2 EXPERIMENTS Experiment 2 Can additional information improve bug triaging? 16
  • 21. Experiment 1 Do duplicate bug reports contain additional information? 17
  • 22. The infoZilla Tool Detects and Extracts Bug 137808 Summary: Exceptions from createFromString lock-up the editor Product: [Modeling] EMF Reporter: Patrick Sodre <psodre@gmail.com> Component: Core Assignee: Marcelo Paternostro <marcelop@ca.ibm.com> Status: VERIFIED FIXED QA Contact: Severity: normal Structural Information: Priority: P3 CC: merks@ca.ibm.com Version: 2.2 Target Milestone: --- Hardware: PC OS: Windows XP Whiteboard: Opened: 2006-04-20 14:25 - Description: 0400 As discussed on the newsgroup under the Thread with the same name I am opening this bug entry. Here is a history of the thread. -- From Ed Merks Patrick, The value is checked before it's applied and can't be applied until it's valid. But this BigDecimal cases behaves oddly because the exception thrown by new BigDecimal(quot;badvaluequot;) has a null message and the property editor relies on returning a non-null SCREENSHOTS message string to indicate there is an error. Please open a bugzilla which I'll fix like this: ### Eclipse Workspace Patch 1.0 #P org.eclipse.emf.edit.ui Index: src/org/eclipse/emf/edit/ui/provider/PropertyDescriptor.java =================================================================== RCS file: /cvsroot/tools/org.eclipse.emf/plugins/org.eclipse.emf.edit.ui/src/org/eclipse/emf/edit/ui/provider/PropertyDescriptor.java,v retrieving revision 1.10 diff -u -r1.10 PropertyDescriptor.java --- src/org/eclipse/emf/edit/ui/provider/PropertyDescriptor.java 21 Mar 2006 SOURCE CODE 16:42:30 -0000 1.10 +++ src/org/eclipse/emf/edit/ui/provider/PropertyDescriptor.java 20 Apr 2006 11:59:10 -0000 @@ -162,7 +162,8 @@ } catch (Exception exception) { - return exception.getMessage(); + String message = exception.getMessage(); + return message == null ? exception.toString() : message; } } Diagnostic diagnostic = Diagnostician.INSTANCE.validate(EDataTypeCellEditor.this.eDataType, value); Patrick Sodre wrote: Hi, It seems that if the user inputs an invalid parameter that gets created from quot;createFromStringquot; the Editor locks-up until the user explicitly calls quot;restore Default Valuequot;. Is this the expected behavior or could something better be done? For PATCHES instance if an exception is thrown restore the value back to what it was before after displaying a pop-up error message. I understand that for DataTypes defined by the user he/she should take care of catching the exceptions but for the default ones like BigInteger/BigDecimal I think the EMF runtime could do some of the grunt work... If you think this is something worth pursuing I could post an entry in Bugzilla. Regards, Patrick Sodre Below is the stack trace that I got from the Editor... java.lang.NumberFormatException at java.math.BigDecimal.<init>(BigDecimal.java:368) at java.math.BigDecimal.<init>(BigDecimal.java:647) at org.eclipse.emf.ecore.impl.EcoreFactoryImpl.createEBigDecimalFromString(EcoreFactoryImpl.java:559) at org.eclipse.emf.ecore.impl.EcoreFactoryImpl.createFromString(EcoreFactoryImpl.java:116) at org.eclipse.emf.edit.ui.provider.PropertyDescriptor$EDataTypeCellEditor.doGetValue(PropertyDescriptor.java:183) STACK TRACES at org.eclipse.jface.viewers.CellEditor.getValue(CellEditor.java:449) at org.eclipse.ui.views.properties.PropertySheetEntry.applyEditorValue(PropertySheetEntry.java:135) at org.eclipse.ui.views.properties.PropertySheetViewer.applyEditorValue(PropertySheetViewer.java:249) at ------- Comment #1 From Ed Merks 2006-04-20 15:09:23 -0400 ------- The fix has been committed to CVS. Thanks for reporting this problem. Extracting Structural Information from Bug Reports MSR 2008
  • 23. Experimental Setup BUGthisasd asdlknasdklnasdlk askdnaklsdn aksdnlaksdnlkasdkn asd sadddda asdaddasd aksdnlaskdnlkansd Master Report Elements BUGthisasd asdlknasdklnasdlk infoZilla askdnaklsdn aksdnlkasdkn asdasdasdasdasd a s adddda a daddasd asdasdasdasdasd askdnlkansd Duplicate Report Elements 19
  • 24. Experimental Setup compare Elements Elements BUGthisasd asdlknasdklnasdlk BUGthisasd askdnaklsdn asdlknasdklnasdlk askdnaklsdn aksdnlaksdnlkasdkn aksdnlaksdnlkasdkn asd sadddda asdaddasd aksdnlaskdnlkansd asd BUGthisasd asdlknasdklnasdlk askdnaklsdn sadddda aksdnlkasdkn asdasdasdasdasd a asdaddasd s adddda a aksdnlaskdnlkansd daddasd asdasdasdasdasd askdnlkansd Master Report Extended Report 20
  • 25. ECLIPSE 21
  • 27. 16,511 Master Reports ECLIPSE 27,838 Duplicate Reports 21
  • 28. 16,511 Master Reports ECLIPSE 27,838 Duplicate Reports Unique elements per report: Master Extended 21
  • 29. 16,511 Master Reports ECLIPSE 27,838 Duplicate Reports Unique elements per report: 2.5 1.94 2.0 1.83 1.5 1.42 1.0 0.50 0.5 0.29 0.14 0 Patches Stacktraces Screenshots Master Extended 21
  • 30. Experiment 1 Do duplicate bug reports contain additional information? 22
  • 31. Experiment 1 Do duplicate bug reports contain additional information? They do! 22
  • 32. Experiment 2 Can additional information improve bug triaging? 23
  • 33. Bug Triage Developer 24
  • 34. Bug Triage BUG Report Developer 24
  • 35. Bug Triage BUG Developer ✓BUG Fixed Report 24
  • 36. Bug Triage BUG BUG ✓ BUG BUG BUG BUG BUG BUG Report BUG Developer Fixed 24
  • 37. Bug Triage BUG BUG ✓ BUG BUG BUG BUG BUG BUG Report BUG Triager Developer Fixed 24
  • 38. Experimental Setup •Machine learning to predict developers •Train using master reports •Train using extended reports •10 Runs 25
  • 39. Results for predicting Top-5 developers Precision 70.00 65 61 60 60 61.25 58 57 57 56 56 55 52 53 52 52 52.50 51 51 47 47 47 48 48 43.75 42 Run 1 2 3 4 5 6 7 8 9 10 All Master Extended 26
  • 40. Experiment 2 Can additional information improve bug triaging? 27
  • 41. Experiment 2 Can additional information improve bug triaging? They can! 27
  • 42. Duplicate reports are usually ignored once identified! 28
  • 43. Duplicate reports are usually ignored X once identified! Merge Reports 28
  • 44. 29
  • 45. 29
  • 46. 29
  • 47. 29
  • 48. 29