SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Characterizing and Predicting
        Which Bugs Get Reopened

        Thomas Zimmermann
        Nachiappan Nagappan
        Microsoft Research


        Philip J. Guo
        Stanford University


        Brendan Murphy
        Microsoft Research




© Microsoft Corporation
A bug’s life




Picture on the right via http://www.bugzilla.org/docs/2.18/html/lifecycle.html
© Microsoft Corporation
Final part of a trilogy

     Which bugs are fixed?     Bug reassignments   Bug reopens (this paper)
     ICSE 2010                 CSCW 2011           ICSE 2012 SEIP




© Microsoft Corporation

and partly a remake




                                Emad Shihab, Akinori Ihara, Yasutaka Kamei,
                                Walid M. Ibrahim, Masao Ohira, Bram Adams,
                                Ahmed E. Hassan, Ken-ichi Matsumoto:
                                Predicting Re-opened Bugs: A Case Study on
                                the Eclipse Project. WCRE 2010: 249-258




© Microsoft Corporation
Shihab et. al: Predicting Reopened Bugs     This paper: Characterizing Reopened Bugs
   (WCRE 2010)
   Four dimensions: work habits, bug report,
   bug fix and team

   Predicted reopened bugs with a precision
   of 62.9% and a recall of 84.5% (d-trees)

   Top node analysis found that bug report
   dimension was most influential

   |




© Microsoft Corporation
Shihab et. al: Predicting Reopened Bugs     This paper: Characterizing Reopened Bugs
   (WCRE 2010)
   Four dimensions: work habits, bug report,   Partial replication of Shihab et al.
   bug fix and team
                                               New measurements: organizational and
   Predicted reopened bugs with a precision    geographic distance, reputation, how found
   of 62.9% and a recall of 84.5% (d-trees)
                                               Qualitative component on the causes of
   Top node analysis found that bug report     bug reopens (identified with a survey)
   dimension was most influential
                                               Descriptive models (logistic regression)
   |
                                               |




© Microsoft Corporation
Methodology

          Qualitative       ‱ “In your experience, what are reasons why a
                              bug would be reopened multiple times”
           survey           ‱ 358 out of 1,773 responded. Card sort.



        Quantitative        ‱ All bug reports for Windows Vista and
                              Windows 7
          analysis          ‱ Logistic regression model for reopened bugs



            Manual          ‱ Random sample of reopened bugs
          inspection        ‱ 20 bug reports



© Microsoft Corporation
What are reasons
                           for bug report
                             reopens?




© Microsoft Corporation
Causes of bug reopens

        Not FIXED             Related to Root Cause
                               Bugs difficult to reproduce
                               Developers misunderstood root cause
                               Bug had insufficient information

                              Related to Priority
                               Priority of the bug increased

        FIXED                  Regression bugs
        Process-related        Process



© Microsoft Corporation
#1: Difficult to reproduce
        “The bug is hard to reproduce and so the fix was made without
        being able to fully verify it. A good example is a customer who
        reports something. We think we see the issue in house and fix
        that. It turns out we saw something different
”

                            “Bugs which are difficult to reproduce generally get
                            re-activated multiple times. At first, developers will
                            give a simple repro attempt before resolving bugs
                            'Not repro'. But if the bug opener is able to reproduce
                            the issue again, or perhaps comes up with better repro
                            instructions, then the developer will pay more
                            attention the second time the bug is activated.”

                             “Heisenbugs”

© Microsoft Corporation
#2: Misunderstood root cause
        “The bug is tracking an unidentified symptom and it takes a
        while to fully root cause. This comes up a lot with memory
        leaks: there will be an unknown memory leak in a component
        and the owning team plays whack-a-mole with the code
        defects to remove memory issues one-by-one.”


                           “Not fixing the root cause and only
                           addressing symptoms. Without root
                           cause understood for the bug a
                           patch/hack can often be done that
                           will then be reactivated.”


© Microsoft Corporation
#3: Insufficient information
        “Poor bug quality. If the bug wasn't described well enough, or
        not enough diagnostic info was there, the dev will guess and
        fix *something* in order to make the bug go away. What they
        fix isn't always what the person who filed the bug ran into.”

                           “If a bug report does not accurately convey
                           enough information about what is actually
                           wrong (i.e. it describes incorrect behavior
                           but neglects to mention data loss) or if the
                           bug does not convey a dependency (such as
                           another team relying on a fix), a bug may be
                           de-prioritized and resolved without fixing.”


© Microsoft Corporation
#4: Increased priority
        “Bugs are closed because one person or triage team believes
        the bug is not worthy of fixing (i.e. too risky, don't care, etc.),
        but then a few days later a VP or external customer reports
        the same issue, then the bug has a higher priority.”

                             “Other reason is lack of business justification or too
                             late in product cycle; reopened when sufficient
                             justification exists or new cycle begins.”

                               “One team may feel an issue is critical while
                               the other does not see it as important enough,
                               and instead of carrying a discussion, the bug
                               is bounced around.”


© Microsoft Corporation
#5: Regression bugs
        “First attempt at fix was flawed in some way, and wasn't
        caught because of lack of testing or unknown related
        scenario regression.”

                           “I've seen cases in the past where it was
                           thought that a bug was fixed only to find that
                           a corner case had been missed.”

                              “I've also seen cases where the bug was
                              only being hit due to a timing issue and
                              something changed that affected the
                              timing and the bug disappeared again.”

© Microsoft Corporation
#6: Process-related bugs
        “Sometimes bugs are reopened due to a misunderstanding
        of process. e.g. dev resolves bug when fix is submitted, but
        tester reactivates because bug still repros (because fix has
        not yet reached tester).”



                                “Bug is verified fixed in a feature of
                                developer’s branch and the fix takes
                                too long to hit the main branch.”




© Microsoft Corporation
#6: Process-related bugs

                               “First of all, I don’t like the model where we
                               reactivate bugs that were Fixed but the issue
                               was not resolved. Logically it makes sense,
                               but tracking the thread of the issue through
                               multiple checkins & reactivates can be hell if
                               it happens more than once or twice. I would
                               prefer a model where once a checkin has
                               been made for a bug, that bug is done! New
                               issues, or issues that linger despite a previous
                               fix, should/ would be tracked in a new bug.”



© Microsoft Corporation
What factors
                          correlate with
                          bug reopens?




© Microsoft Corporation
Does the source of a bug (how it was found)
       influence the likelihood of bug reopens?

Bug Sources                   Vista    Win7
Reopen rate for all bugs           P        Q
Code analysis tools           0.52P   0.73Q   less likely to
                                                be reopened
Human review                  0.85P   0.66Q
Ad-hoc testing                0.87P   0.99Q
Internal user                 1.12P   0.97Q
Component testing             1.13P   0.81Q
System testing                1.21P   1.46Q   more likely to
                                                be reopened
Customer                      1.33P   1.12Q

© Microsoft Corporation
Does opener reputation influence the
                   likelihood of bug reopens?




                For each bug, calculate opener’s reputation by
                aggregating over all bugs in the past.


Hooimeijer and Weimer: Modeling bug report quality. ASE 2007.


© Microsoft Corporation
Does opener reputation influence the
                   likelihood of bug reopens?



                          more likely to
                          be reopened
                                           less likely to
                                           be reopened




© Microsoft Corporation
Does organizational and geographic distance
       influence the likelihood of bug reopens?
                                                                Vista   Win7
Organizational Opened by and initially assigned to 

distance        
 the same person                                    X      R
                
 someone with the same manager                 1.13X 0.96R
                
 someone with a different manager              1.37X 1.07R
Geographic                Opened by and initially assigned to 

distance                   
 the same person                          X      R
                           
 someone in the same building        1.27X 0.93R
                           
 someone in a different building but
                             in the same country                 1.45X 1.00R
                           
 someone in a different country      1.52X 1.14R

© Microsoft Corporation
Does organizational and geographic distance
       influence the likelihood of bug reopens?
                                                          Vista    Win7
         Assigned to opener at some point in time             Y       S

         Never assigned to opener, but assigned to        0.54Y   0.39S
          someone with the same manager as opener
         Never assigned to anyone with same manager       0.27Y   0.34S

         Never assigned to opener, but assigned to        0.41Y   0.37S
          someone in the same building
         Never assigned to anyone in same building, but   0.31Y   0.43S
          assigned to someone in the same country
         Never assigned to anyone in the same country     0.20Y   0.20S

© Microsoft Corporation
Descriptive statistical analysis
    ‱ All pre- and post-release bug reports for Windows
      Vista and Windows 7 until July 2009
    ‱ Logistic regression model to characterize
           – Probability that a bug will be reopened

    ‱ Logistic regression model to characterize
           – Probability that a bug will be fixed after the bug
             has been reopened
           – Probability that a bug will be fixed
             (Guo et al., ICSE 2010)

    ‱ Same factors as in Guo et al., ICSE 2010



© Microsoft Corporation
Factor                Reopen (Vista)
                                        Human review         not significant
                                        Code analysis tool       -0.503
                    Bug source:         Component testing         0.238
                    (categorical)       Ad-hoc testing         (baseline)
                                        System testing            0.204
                                        Customer                  0.239
                                        Internal user        not significant
              Reputation of bug opener                           -0.266
              Reputation of 1st assignee                     not significant
              Opened by temporary employee                        0.178
              Initial severity level                             0.127
              Severity upgraded?                                 0.331
              Opener / any assignee same manager?                0.721
              Opener / any assignee same building?               0.468
              Num. editors                                        0.236
              Num. assignee building                              0.090
              Num. component path changes                        -0.160


© Microsoft Corporation
Factor                 Reopen (Vista)
                                        Human review           not significant
                                        Code analysis tool   decrease (-0.503)
                    Bug source:         Component testing     increase (0.238)
                    (categorical)       Ad-hoc testing           (baseline)
                                        System testing        increase (0.204)
                                        Customer              increase (0.239)
                                        Internal user          not significant
              Reputation of bug opener                            -0.266
              Reputation of 1st assignee                      not significant
              Opened by temporary employee                         0.178
              Initial severity level                              0.127
              Severity upgraded?                                  0.331
              Opener / any assignee same manager?                 0.721
              Opener / any assignee same building?                0.468
              Num. editors                                         0.236
              Num. assignee building                               0.090
              Num. component path changes                         -0.160


© Microsoft Corporation
Factor                 Reopen (Vista)
                                        Human review           not significant
                                        Code analysis tool   decrease (-0.503)
                    Bug source:         Component testing     increase (0.238)
                    (categorical)       Ad-hoc testing           (baseline)
                                        System testing        increase (0.204)
                                        Customer              increase (0.239)
                                        Internal user          not significant
              Reputation of bug opener                          decrease
              Reputation of 1st assignee                      not significant
              Opened by temporary employee                      increase
              Initial severity level                             increase
              Severity upgraded?                                 increase
              Opener / any assignee same manager?                increase
              Opener / any assignee same building?               increase
              Num. editors                                       increase
              Num. assignee building                             increase
              Num. component path changes                        decrease


© Microsoft Corporation
Which *reopened*
                            bugs get fixed?
                                   vs.
                          Which bugs get fixed?




© Microsoft Corporation
Fixed When         Fixed (Vista)
                            Factor
                                                  Reopened (Vista)   [Guo, ICSE 2010]
                             Human review               0.377              0.511
                             Code analysis tool    not significant         0.357
         Bug source:         Component testing         -0.160              0.065
         (categorical)       Ad-hoc testing                                 
                             System testing        not significant        -0.129
                             Customer                  -0.498             -0.347
                             Internal user             -0.465             -0.454
   Reputation of bug opener                             1.632             2.193
   Reputation of 1st assignee                           1.651             2.463
   Opened by temporary employee                        -0.144            -0.125
   Initial severity level                          not significant        0.033
   Severity upgraded?                              not significant        0.256
   Opener / any assignee same manager?             not significant        0.676
   Opener / any assignee same building?            not significant        0.270
   Num. editors                                         0.127             0.240
   Num. assignee building                              -0.213            -0.257
   Num. component path changes                         -0.162            -0.232
   Num. re-opens                                         n/a             -0.135

© Microsoft Corporation
Fixed When         Fixed (Vista)
                            Factor
                                                  Reopened (Vista)   [Guo, ICSE 2010]
                             Human review               0.377              0.511
                             Code analysis tool    not significant         0.357
         Bug source:         Component testing         -0.160              0.065
         (categorical)       Ad-hoc testing                                 
                             System testing        not significant        -0.129
                             Customer                  -0.498             -0.347
                             Internal user             -0.465             -0.454
   Reputation of bug opener                             1.632             2.193
   Reputation of 1st assignee                           1.651             2.463
   Opened by temporary employee                        -0.144            -0.125
   Initial severity level                          not significant        0.033
   Severity upgraded?                              not significant        0.256
   Opener / any assignee same manager?             not significant        0.676
   Opener / any assignee same building?            not significant        0.270
   Num. editors                                         0.127             0.240
   Num. assignee building                              -0.213            -0.257
   Num. component path changes                         -0.162            -0.232
   Num. re-opens                                         n/a             -0.135

© Microsoft Corporation
Fixed When         Fixed (Vista)
                            Factor
                                                  Reopened (Vista)   [Guo, ICSE 2010]
                             Human review               0.377              0.511
                             Code analysis tool    not significant         0.357
         Bug source:         Component testing         -0.160              0.065
         (categorical)       Ad-hoc testing                                 
                             System testing        not significant        -0.129
                             Customer                  -0.498             -0.347
                             Internal user             -0.465             -0.454
   Reputation of bug opener                             1.632             2.193
   Reputation of 1st assignee                           1.651             2.463
   Opened by temporary employee                        -0.144            -0.125
   Initial severity level                          not significant        0.033
   Severity upgraded?                              not significant        0.256
   Opener / any assignee same manager?             not significant        0.676
   Opener / any assignee same building?            not significant        0.270
   Num. editors                                         0.127             0.240
   Num. assignee building                              -0.213            -0.257
   Num. component path changes                         -0.162            -0.232
   Num. re-opens                                         n/a             -0.135

© Microsoft Corporation
Lessons learned
    ‱    Improve reproducibility of bug reports
    ‱    Provide better tools to identify root cause
    ‱    Better estimate initial priorities
    ‱    Reduce the complexity of branching
         (bugs were “verified” in the wrong branch)




© Microsoft Corporation
Thank you!            Partial replication of Shihab et al.

                          New measurements:
                           organizational and geographic
                          distance, reputation, how found

                          Qualitative component on the
                          causes of bug reopens (survey):
                           root cause, priority, process

                          Descriptive models based on
                          logistic regression

                          http://research.microsoft.com/ese
© Microsoft Corporation

Weitere Àhnliche Inhalte

Was ist angesagt?

Software testability slide share
Software testability slide shareSoftware testability slide share
Software testability slide shareBeBo Technology
 
AV-Comparatives Performance Test
AV-Comparatives Performance TestAV-Comparatives Performance Test
AV-Comparatives Performance TestHerbert Rodriguez
 
SW Engineering Management
SW Engineering ManagementSW Engineering Management
SW Engineering ManagementRobert Sayegh
 
Protecting Enterprise - An examination of bugs, major vulnerabilities and exp...
Protecting Enterprise - An examination of bugs, major vulnerabilities and exp...Protecting Enterprise - An examination of bugs, major vulnerabilities and exp...
Protecting Enterprise - An examination of bugs, major vulnerabilities and exp...ESET Middle East
 
Bill of-rights-white-paper-final-012312
Bill of-rights-white-paper-final-012312Bill of-rights-white-paper-final-012312
Bill of-rights-white-paper-final-012312Cristiano Caetano
 
Alm 4 Azure with screenshots
Alm 4 Azure with screenshotsAlm 4 Azure with screenshots
Alm 4 Azure with screenshotsClemens Reijnen
 
Online exa-syste
Online exa-systeOnline exa-syste
Online exa-systeAnand Bavarava
 
Soffront Defect tracking
Soffront Defect trackingSoffront Defect tracking
Soffront Defect trackingSoffront Software
 
Automatic Proactive Troubleshooting with IBM Rational Build Forge
Automatic Proactive Troubleshooting with IBM Rational Build ForgeAutomatic Proactive Troubleshooting with IBM Rational Build Forge
Automatic Proactive Troubleshooting with IBM Rational Build ForgeBill Duncan
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect predictionThomas Zimmermann
 
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsMagenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsAaron Humerickhouse
 
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...Denim Group
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basicssachinmistry786
 
Open Source tools in Continuous Integration environment (case study for agil...
Open Source tools in Continuous Integration environment  (case study for agil...Open Source tools in Continuous Integration environment  (case study for agil...
Open Source tools in Continuous Integration environment (case study for agil...suwalki24.pl
 
San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting Native
San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting NativeSan Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting Native
San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting NativeDante Briones
 
Real Cost of Software Remediation
Real Cost of Software RemediationReal Cost of Software Remediation
Real Cost of Software RemediationDenim Group
 
Attacking antivirus
Attacking antivirusAttacking antivirus
Attacking antivirusUltraUploader
 
Quality Assurance 1: Why Quality Matters
Quality Assurance 1: Why Quality MattersQuality Assurance 1: Why Quality Matters
Quality Assurance 1: Why Quality MattersMarc Miquel
 

Was ist angesagt? (19)

Software testability slide share
Software testability slide shareSoftware testability slide share
Software testability slide share
 
AV-Comparatives Performance Test
AV-Comparatives Performance TestAV-Comparatives Performance Test
AV-Comparatives Performance Test
 
SW Engineering Management
SW Engineering ManagementSW Engineering Management
SW Engineering Management
 
Dtl 2012 kl-app_ctl1.2
Dtl 2012 kl-app_ctl1.2Dtl 2012 kl-app_ctl1.2
Dtl 2012 kl-app_ctl1.2
 
Protecting Enterprise - An examination of bugs, major vulnerabilities and exp...
Protecting Enterprise - An examination of bugs, major vulnerabilities and exp...Protecting Enterprise - An examination of bugs, major vulnerabilities and exp...
Protecting Enterprise - An examination of bugs, major vulnerabilities and exp...
 
Bill of-rights-white-paper-final-012312
Bill of-rights-white-paper-final-012312Bill of-rights-white-paper-final-012312
Bill of-rights-white-paper-final-012312
 
Alm 4 Azure with screenshots
Alm 4 Azure with screenshotsAlm 4 Azure with screenshots
Alm 4 Azure with screenshots
 
Online exa-syste
Online exa-systeOnline exa-syste
Online exa-syste
 
Soffront Defect tracking
Soffront Defect trackingSoffront Defect tracking
Soffront Defect tracking
 
Automatic Proactive Troubleshooting with IBM Rational Build Forge
Automatic Proactive Troubleshooting with IBM Rational Build ForgeAutomatic Proactive Troubleshooting with IBM Rational Build Forge
Automatic Proactive Troubleshooting with IBM Rational Build Forge
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect prediction
 
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsMagenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
 
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Open Source tools in Continuous Integration environment (case study for agil...
Open Source tools in Continuous Integration environment  (case study for agil...Open Source tools in Continuous Integration environment  (case study for agil...
Open Source tools in Continuous Integration environment (case study for agil...
 
San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting Native
San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting NativeSan Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting Native
San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting Native
 
Real Cost of Software Remediation
Real Cost of Software RemediationReal Cost of Software Remediation
Real Cost of Software Remediation
 
Attacking antivirus
Attacking antivirusAttacking antivirus
Attacking antivirus
 
Quality Assurance 1: Why Quality Matters
Quality Assurance 1: Why Quality MattersQuality Assurance 1: Why Quality Matters
Quality Assurance 1: Why Quality Matters
 

Ähnlich wie Characterizing and Predicting Which Bugs Get Reopened

Not my bug! Reasons for software bug report reassignments
Not my bug! Reasons for software bug report reassignmentsNot my bug! Reasons for software bug report reassignments
Not my bug! Reasons for software bug report reassignmentsThomas Zimmermann
 
Characterizing and predicting which bugs get fixed
Characterizing and predicting which bugs get fixedCharacterizing and predicting which bugs get fixed
Characterizing and predicting which bugs get fixedThomas Zimmermann
 
Bug Advocacy
Bug AdvocacyBug Advocacy
Bug Advocacynazeer pasha
 
Bug best practice
Bug best practiceBug best practice
Bug best practicegaoliang641
 
Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226MBA_Community
 
Improving developer tester collaboration with microsoft visual studio 2010
Improving developer tester collaboration with microsoft visual studio 2010Improving developer tester collaboration with microsoft visual studio 2010
Improving developer tester collaboration with microsoft visual studio 2010Mohamed Samy
 
10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find ThemRosie Sherry
 
DevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkDevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkD Z
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-TestingMary Clemons
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationBoris Dominic
 
How to Reproduce a Non Reproducible Bug
How to Reproduce a Non Reproducible BugHow to Reproduce a Non Reproducible Bug
How to Reproduce a Non Reproducible BugBugRaptors
 
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
 
Software engineering 22 error detection and debugging
Software engineering 22 error detection and debuggingSoftware engineering 22 error detection and debugging
Software engineering 22 error detection and debuggingVaibhav Khanna
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652ngothanhtungth
 
Agile testing overview
Agile testing overviewAgile testing overview
Agile testing overviewraianup
 
Agile testingoverview
Agile testingoverviewAgile testingoverview
Agile testingoverviewRangabashyam S
 

Ähnlich wie Characterizing and Predicting Which Bugs Get Reopened (20)

Not my bug! Reasons for software bug report reassignments
Not my bug! Reasons for software bug report reassignmentsNot my bug! Reasons for software bug report reassignments
Not my bug! Reasons for software bug report reassignments
 
Characterizing and predicting which bugs get fixed
Characterizing and predicting which bugs get fixedCharacterizing and predicting which bugs get fixed
Characterizing and predicting which bugs get fixed
 
Bug Advocacy
Bug AdvocacyBug Advocacy
Bug Advocacy
 
Bug best practice
Bug best practiceBug best practice
Bug best practice
 
Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226
 
Improving developer tester collaboration with microsoft visual studio 2010
Improving developer tester collaboration with microsoft visual studio 2010Improving developer tester collaboration with microsoft visual studio 2010
Improving developer tester collaboration with microsoft visual studio 2010
 
10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them
 
DevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkDevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talk
 
bug-advocacy
bug-advocacybug-advocacy
bug-advocacy
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
Debugging
DebuggingDebugging
Debugging
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
How to Reproduce a Non Reproducible Bug
How to Reproduce a Non Reproducible BugHow to Reproduce a Non Reproducible Bug
How to Reproduce a Non Reproducible Bug
 
midterm_fa08.pdf
midterm_fa08.pdfmidterm_fa08.pdf
midterm_fa08.pdf
 
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
 
Software engineering 22 error detection and debugging
Software engineering 22 error detection and debuggingSoftware engineering 22 error detection and debugging
Software engineering 22 error detection and debugging
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652
 
Agile testing overview
Agile testing overviewAgile testing overview
Agile testing overview
 
Agile testingoverview
Agile testingoverviewAgile testingoverview
Agile testingoverview
 

Mehr von Thomas Zimmermann

Software Analytics = Sharing Information
Software Analytics = Sharing InformationSoftware Analytics = Sharing Information
Software Analytics = Sharing InformationThomas Zimmermann
 
Klingon Countdown Timer
Klingon Countdown TimerKlingon Countdown Timer
Klingon Countdown TimerThomas Zimmermann
 
Data driven games user research
Data driven games user researchData driven games user research
Data driven games user researchThomas Zimmermann
 
Empirical Software Engineering at Microsoft Research
Empirical Software Engineering at Microsoft ResearchEmpirical Software Engineering at Microsoft Research
Empirical Software Engineering at Microsoft ResearchThomas Zimmermann
 
Security trend analysis with CVE topic models
Security trend analysis with CVE topic modelsSecurity trend analysis with CVE topic models
Security trend analysis with CVE topic modelsThomas Zimmermann
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software developmentThomas Zimmermann
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesThomas Zimmermann
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesThomas Zimmermann
 
Predicting Defects using Network Analysis on Dependency Graphs
Predicting Defects using Network Analysis on Dependency GraphsPredicting Defects using Network Analysis on Dependency Graphs
Predicting Defects using Network Analysis on Dependency GraphsThomas Zimmermann
 
Predicting Subsystem Defects using Dependency Graph Complexities
Predicting Subsystem Defects using Dependency Graph Complexities Predicting Subsystem Defects using Dependency Graph Complexities
Predicting Subsystem Defects using Dependency Graph Complexities Thomas Zimmermann
 
Got Myth? Myths in Software Engineering
Got Myth? Myths in Software EngineeringGot Myth? Myths in Software Engineering
Got Myth? Myths in Software EngineeringThomas Zimmermann
 
Mining Workspace Updates in CVS
Mining Workspace Updates in CVSMining Workspace Updates in CVS
Mining Workspace Updates in CVSThomas Zimmermann
 
Mining Software Archives to Support Software Development
Mining Software Archives to Support Software DevelopmentMining Software Archives to Support Software Development
Mining Software Archives to Support Software DevelopmentThomas Zimmermann
 
Unit testing with JUnit
Unit testing with JUnitUnit testing with JUnit
Unit testing with JUnitThomas Zimmermann
 
esolang: Esoterische Programmiersprachen
esolang: Esoterische Programmiersprachenesolang: Esoterische Programmiersprachen
esolang: Esoterische ProgrammiersprachenThomas Zimmermann
 
TA-RE: An Exchange Language for Mining Software Repositories
TA-RE: An Exchange Language for Mining Software RepositoriesTA-RE: An Exchange Language for Mining Software Repositories
TA-RE: An Exchange Language for Mining Software RepositoriesThomas Zimmermann
 
Fine-grained Processing of CVS Archives with APFEL
Fine-grained Processing of CVS Archives with APFELFine-grained Processing of CVS Archives with APFEL
Fine-grained Processing of CVS Archives with APFELThomas Zimmermann
 
DynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision HistoriesDynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision HistoriesThomas Zimmermann
 

Mehr von Thomas Zimmermann (20)

Software Analytics = Sharing Information
Software Analytics = Sharing InformationSoftware Analytics = Sharing Information
Software Analytics = Sharing Information
 
MSR 2013 Preview
MSR 2013 PreviewMSR 2013 Preview
MSR 2013 Preview
 
Klingon Countdown Timer
Klingon Countdown TimerKlingon Countdown Timer
Klingon Countdown Timer
 
Data driven games user research
Data driven games user researchData driven games user research
Data driven games user research
 
Empirical Software Engineering at Microsoft Research
Empirical Software Engineering at Microsoft ResearchEmpirical Software Engineering at Microsoft Research
Empirical Software Engineering at Microsoft Research
 
Security trend analysis with CVE topic models
Security trend analysis with CVE topic modelsSecurity trend analysis with CVE topic models
Security trend analysis with CVE topic models
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software development
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
 
Predicting Defects using Network Analysis on Dependency Graphs
Predicting Defects using Network Analysis on Dependency GraphsPredicting Defects using Network Analysis on Dependency Graphs
Predicting Defects using Network Analysis on Dependency Graphs
 
Meet Tom and his Fish
Meet Tom and his FishMeet Tom and his Fish
Meet Tom and his Fish
 
Predicting Subsystem Defects using Dependency Graph Complexities
Predicting Subsystem Defects using Dependency Graph Complexities Predicting Subsystem Defects using Dependency Graph Complexities
Predicting Subsystem Defects using Dependency Graph Complexities
 
Got Myth? Myths in Software Engineering
Got Myth? Myths in Software EngineeringGot Myth? Myths in Software Engineering
Got Myth? Myths in Software Engineering
 
Mining Workspace Updates in CVS
Mining Workspace Updates in CVSMining Workspace Updates in CVS
Mining Workspace Updates in CVS
 
Mining Software Archives to Support Software Development
Mining Software Archives to Support Software DevelopmentMining Software Archives to Support Software Development
Mining Software Archives to Support Software Development
 
Unit testing with JUnit
Unit testing with JUnitUnit testing with JUnit
Unit testing with JUnit
 
esolang: Esoterische Programmiersprachen
esolang: Esoterische Programmiersprachenesolang: Esoterische Programmiersprachen
esolang: Esoterische Programmiersprachen
 
TA-RE: An Exchange Language for Mining Software Repositories
TA-RE: An Exchange Language for Mining Software RepositoriesTA-RE: An Exchange Language for Mining Software Repositories
TA-RE: An Exchange Language for Mining Software Repositories
 
Fine-grained Processing of CVS Archives with APFEL
Fine-grained Processing of CVS Archives with APFELFine-grained Processing of CVS Archives with APFEL
Fine-grained Processing of CVS Archives with APFEL
 
DynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision HistoriesDynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision Histories
 

KĂŒrzlich hochgeladen

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...gurkirankumar98700
 

KĂŒrzlich hochgeladen (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
 

Characterizing and Predicting Which Bugs Get Reopened

  • 1. Characterizing and Predicting Which Bugs Get Reopened Thomas Zimmermann Nachiappan Nagappan Microsoft Research Philip J. Guo Stanford University Brendan Murphy Microsoft Research © Microsoft Corporation
  • 2. A bug’s life Picture on the right via http://www.bugzilla.org/docs/2.18/html/lifecycle.html © Microsoft Corporation
  • 3. Final part of a trilogy
 Which bugs are fixed? Bug reassignments Bug reopens (this paper) ICSE 2010 CSCW 2011 ICSE 2012 SEIP © Microsoft Corporation
  • 4. 
and partly a remake Emad Shihab, Akinori Ihara, Yasutaka Kamei, Walid M. Ibrahim, Masao Ohira, Bram Adams, Ahmed E. Hassan, Ken-ichi Matsumoto: Predicting Re-opened Bugs: A Case Study on the Eclipse Project. WCRE 2010: 249-258 © Microsoft Corporation
  • 5. Shihab et. al: Predicting Reopened Bugs This paper: Characterizing Reopened Bugs (WCRE 2010) Four dimensions: work habits, bug report, bug fix and team Predicted reopened bugs with a precision of 62.9% and a recall of 84.5% (d-trees) Top node analysis found that bug report dimension was most influential | © Microsoft Corporation
  • 6. Shihab et. al: Predicting Reopened Bugs This paper: Characterizing Reopened Bugs (WCRE 2010) Four dimensions: work habits, bug report, Partial replication of Shihab et al. bug fix and team New measurements: organizational and Predicted reopened bugs with a precision geographic distance, reputation, how found of 62.9% and a recall of 84.5% (d-trees) Qualitative component on the causes of Top node analysis found that bug report bug reopens (identified with a survey) dimension was most influential Descriptive models (logistic regression) | | © Microsoft Corporation
  • 7. Methodology Qualitative ‱ “In your experience, what are reasons why a bug would be reopened multiple times” survey ‱ 358 out of 1,773 responded. Card sort. Quantitative ‱ All bug reports for Windows Vista and Windows 7 analysis ‱ Logistic regression model for reopened bugs Manual ‱ Random sample of reopened bugs inspection ‱ 20 bug reports © Microsoft Corporation
  • 8. What are reasons for bug report reopens? © Microsoft Corporation
  • 9. Causes of bug reopens Not FIXED Related to Root Cause  Bugs difficult to reproduce  Developers misunderstood root cause  Bug had insufficient information Related to Priority  Priority of the bug increased FIXED  Regression bugs Process-related  Process © Microsoft Corporation
  • 10. #1: Difficult to reproduce “The bug is hard to reproduce and so the fix was made without being able to fully verify it. A good example is a customer who reports something. We think we see the issue in house and fix that. It turns out we saw something different
” “Bugs which are difficult to reproduce generally get re-activated multiple times. At first, developers will give a simple repro attempt before resolving bugs 'Not repro'. But if the bug opener is able to reproduce the issue again, or perhaps comes up with better repro instructions, then the developer will pay more attention the second time the bug is activated.” “Heisenbugs” © Microsoft Corporation
  • 11. #2: Misunderstood root cause “The bug is tracking an unidentified symptom and it takes a while to fully root cause. This comes up a lot with memory leaks: there will be an unknown memory leak in a component and the owning team plays whack-a-mole with the code defects to remove memory issues one-by-one.” “Not fixing the root cause and only addressing symptoms. Without root cause understood for the bug a patch/hack can often be done that will then be reactivated.” © Microsoft Corporation
  • 12. #3: Insufficient information “Poor bug quality. If the bug wasn't described well enough, or not enough diagnostic info was there, the dev will guess and fix *something* in order to make the bug go away. What they fix isn't always what the person who filed the bug ran into.” “If a bug report does not accurately convey enough information about what is actually wrong (i.e. it describes incorrect behavior but neglects to mention data loss) or if the bug does not convey a dependency (such as another team relying on a fix), a bug may be de-prioritized and resolved without fixing.” © Microsoft Corporation
  • 13. #4: Increased priority “Bugs are closed because one person or triage team believes the bug is not worthy of fixing (i.e. too risky, don't care, etc.), but then a few days later a VP or external customer reports the same issue, then the bug has a higher priority.” “Other reason is lack of business justification or too late in product cycle; reopened when sufficient justification exists or new cycle begins.” “One team may feel an issue is critical while the other does not see it as important enough, and instead of carrying a discussion, the bug is bounced around.” © Microsoft Corporation
  • 14. #5: Regression bugs “First attempt at fix was flawed in some way, and wasn't caught because of lack of testing or unknown related scenario regression.” “I've seen cases in the past where it was thought that a bug was fixed only to find that a corner case had been missed.” “I've also seen cases where the bug was only being hit due to a timing issue and something changed that affected the timing and the bug disappeared again.” © Microsoft Corporation
  • 15. #6: Process-related bugs “Sometimes bugs are reopened due to a misunderstanding of process. e.g. dev resolves bug when fix is submitted, but tester reactivates because bug still repros (because fix has not yet reached tester).” “Bug is verified fixed in a feature of developer’s branch and the fix takes too long to hit the main branch.” © Microsoft Corporation
  • 16. #6: Process-related bugs “First of all, I don’t like the model where we reactivate bugs that were Fixed but the issue was not resolved. Logically it makes sense, but tracking the thread of the issue through multiple checkins & reactivates can be hell if it happens more than once or twice. I would prefer a model where once a checkin has been made for a bug, that bug is done! New issues, or issues that linger despite a previous fix, should/ would be tracked in a new bug.” © Microsoft Corporation
  • 17. What factors correlate with bug reopens? © Microsoft Corporation
  • 18. Does the source of a bug (how it was found) influence the likelihood of bug reopens? Bug Sources Vista Win7 Reopen rate for all bugs P Q Code analysis tools 0.52P 0.73Q less likely to be reopened Human review 0.85P 0.66Q Ad-hoc testing 0.87P 0.99Q Internal user 1.12P 0.97Q Component testing 1.13P 0.81Q System testing 1.21P 1.46Q more likely to be reopened Customer 1.33P 1.12Q © Microsoft Corporation
  • 19. Does opener reputation influence the likelihood of bug reopens? For each bug, calculate opener’s reputation by aggregating over all bugs in the past. Hooimeijer and Weimer: Modeling bug report quality. ASE 2007. © Microsoft Corporation
  • 20. Does opener reputation influence the likelihood of bug reopens? more likely to be reopened less likely to be reopened © Microsoft Corporation
  • 21. Does organizational and geographic distance influence the likelihood of bug reopens? Vista Win7 Organizational Opened by and initially assigned to 
 distance 
 the same person X R 
 someone with the same manager 1.13X 0.96R 
 someone with a different manager 1.37X 1.07R Geographic Opened by and initially assigned to 
 distance 
 the same person X R 
 someone in the same building 1.27X 0.93R 
 someone in a different building but in the same country 1.45X 1.00R 
 someone in a different country 1.52X 1.14R © Microsoft Corporation
  • 22. Does organizational and geographic distance influence the likelihood of bug reopens? Vista Win7 Assigned to opener at some point in time Y S Never assigned to opener, but assigned to 0.54Y 0.39S someone with the same manager as opener Never assigned to anyone with same manager 0.27Y 0.34S Never assigned to opener, but assigned to 0.41Y 0.37S someone in the same building Never assigned to anyone in same building, but 0.31Y 0.43S assigned to someone in the same country Never assigned to anyone in the same country 0.20Y 0.20S © Microsoft Corporation
  • 23. Descriptive statistical analysis ‱ All pre- and post-release bug reports for Windows Vista and Windows 7 until July 2009 ‱ Logistic regression model to characterize – Probability that a bug will be reopened ‱ Logistic regression model to characterize – Probability that a bug will be fixed after the bug has been reopened – Probability that a bug will be fixed (Guo et al., ICSE 2010) ‱ Same factors as in Guo et al., ICSE 2010 © Microsoft Corporation
  • 24. Factor Reopen (Vista) Human review not significant Code analysis tool -0.503 Bug source: Component testing 0.238 (categorical) Ad-hoc testing  (baseline) System testing 0.204 Customer 0.239 Internal user not significant Reputation of bug opener -0.266 Reputation of 1st assignee not significant Opened by temporary employee 0.178 Initial severity level 0.127 Severity upgraded? 0.331 Opener / any assignee same manager? 0.721 Opener / any assignee same building? 0.468 Num. editors 0.236 Num. assignee building 0.090 Num. component path changes -0.160 © Microsoft Corporation
  • 25. Factor Reopen (Vista) Human review not significant Code analysis tool decrease (-0.503) Bug source: Component testing increase (0.238) (categorical) Ad-hoc testing  (baseline) System testing increase (0.204) Customer increase (0.239) Internal user not significant Reputation of bug opener -0.266 Reputation of 1st assignee not significant Opened by temporary employee 0.178 Initial severity level 0.127 Severity upgraded? 0.331 Opener / any assignee same manager? 0.721 Opener / any assignee same building? 0.468 Num. editors 0.236 Num. assignee building 0.090 Num. component path changes -0.160 © Microsoft Corporation
  • 26. Factor Reopen (Vista) Human review not significant Code analysis tool decrease (-0.503) Bug source: Component testing increase (0.238) (categorical) Ad-hoc testing  (baseline) System testing increase (0.204) Customer increase (0.239) Internal user not significant Reputation of bug opener decrease Reputation of 1st assignee not significant Opened by temporary employee increase Initial severity level increase Severity upgraded? increase Opener / any assignee same manager? increase Opener / any assignee same building? increase Num. editors increase Num. assignee building increase Num. component path changes decrease © Microsoft Corporation
  • 27. Which *reopened* bugs get fixed? vs. Which bugs get fixed? © Microsoft Corporation
  • 28. Fixed When Fixed (Vista) Factor Reopened (Vista) [Guo, ICSE 2010] Human review 0.377 0.511 Code analysis tool not significant 0.357 Bug source: Component testing -0.160 0.065 (categorical) Ad-hoc testing   System testing not significant -0.129 Customer -0.498 -0.347 Internal user -0.465 -0.454 Reputation of bug opener 1.632 2.193 Reputation of 1st assignee 1.651 2.463 Opened by temporary employee -0.144 -0.125 Initial severity level not significant 0.033 Severity upgraded? not significant 0.256 Opener / any assignee same manager? not significant 0.676 Opener / any assignee same building? not significant 0.270 Num. editors 0.127 0.240 Num. assignee building -0.213 -0.257 Num. component path changes -0.162 -0.232 Num. re-opens n/a -0.135 © Microsoft Corporation
  • 29. Fixed When Fixed (Vista) Factor Reopened (Vista) [Guo, ICSE 2010] Human review 0.377 0.511 Code analysis tool not significant 0.357 Bug source: Component testing -0.160 0.065 (categorical) Ad-hoc testing   System testing not significant -0.129 Customer -0.498 -0.347 Internal user -0.465 -0.454 Reputation of bug opener 1.632 2.193 Reputation of 1st assignee 1.651 2.463 Opened by temporary employee -0.144 -0.125 Initial severity level not significant 0.033 Severity upgraded? not significant 0.256 Opener / any assignee same manager? not significant 0.676 Opener / any assignee same building? not significant 0.270 Num. editors 0.127 0.240 Num. assignee building -0.213 -0.257 Num. component path changes -0.162 -0.232 Num. re-opens n/a -0.135 © Microsoft Corporation
  • 30. Fixed When Fixed (Vista) Factor Reopened (Vista) [Guo, ICSE 2010] Human review 0.377 0.511 Code analysis tool not significant 0.357 Bug source: Component testing -0.160 0.065 (categorical) Ad-hoc testing   System testing not significant -0.129 Customer -0.498 -0.347 Internal user -0.465 -0.454 Reputation of bug opener 1.632 2.193 Reputation of 1st assignee 1.651 2.463 Opened by temporary employee -0.144 -0.125 Initial severity level not significant 0.033 Severity upgraded? not significant 0.256 Opener / any assignee same manager? not significant 0.676 Opener / any assignee same building? not significant 0.270 Num. editors 0.127 0.240 Num. assignee building -0.213 -0.257 Num. component path changes -0.162 -0.232 Num. re-opens n/a -0.135 © Microsoft Corporation
  • 31. Lessons learned ‱ Improve reproducibility of bug reports ‱ Provide better tools to identify root cause ‱ Better estimate initial priorities ‱ Reduce the complexity of branching (bugs were “verified” in the wrong branch) © Microsoft Corporation
  • 32. Thank you! Partial replication of Shihab et al. New measurements:  organizational and geographic distance, reputation, how found Qualitative component on the causes of bug reopens (survey):  root cause, priority, process Descriptive models based on logistic regression http://research.microsoft.com/ese © Microsoft Corporation