SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Bug Triage
with Bug Tossing Graphs
Gaeul Jeong, Sunghun Kim and Thomas Zimmermann
                               August 26, 2009


        Joint meeting of the European Software Engineering Conference (ESEC)
 and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE),
                                     Armsterdam,
                                   The Netherlands
Bug triage

Bu                                                    Bu
     g                                                     g

                                                      X

                                       Fixed
New                      Assigned                Resolved




         The life cycle of a bug report (A. Zeller)
                             2
Problem
    More than                More than
300 reports per day       1,000 developers

       Bu
            g              ?                        Bu
                                                         g

                                                   X

                                       Fixed
       New              Assigned               Resolved




                           3
Consequences
Mozilla
                      297,999 bugs                      116,890 bugs
                                       First                              First
           Reported                                                    Assignment
                                      Action
                       26.1 days                         161.1 days


                                       (a) All Bugs


     pse
                      131,958 bugs                      49,431 bugs
Ecli       Reported
                      144,102 bugs
                                       First
                                      Action            88,706 bugs
                                                                          First
                                                                       Assignment
                        7.1 days       First             38.1 days        First
           Reported                                                    Assignment
                                      Action
                       16.7 days                         23.6 days
                                     (b) Verified Bugs
                                       (a) All Bugs

                      18,498 bugs                       15,045 bugs
                                       First                              First
           Reported                                                    Assignment
                                      Action
                        5.2 days           4             19.3 days
Bug tossing
                Tossing (reassign)

Bu                                             Bu
     g                                              g

                                              X

                                 Fixed
New                Assigned               Resolved




         The life cycle of a bug report
                       5
Consequences
                       %!!

                       $"!
!"#$%&#'(%)*'+,'-%.#




                       $!!

                       #"!
                                                                              +,-.//0
                       #!!                                                    12/.345
                       "!

                         !
                             #   $   %   &      "       '    (   )   *   #!
                                             -,**/0&'1+#2*




                                                    6
Two Challenges


• Finding appropriate developer is hard
• Wrong assignment(bug tossing) make the
  fixing process slow down




                  7
Our solution

• Learning from previous tossing history
• To help
   • Assist manual bug triage
   • Reducing tossing paths
   • Assign bug automatically

                      8
Bug tossing path

• Extracting bug tossing information
• Identify more appropriate developers using
  tossing relationship




                         9
Learning from tossing paths
                                     Path tokens

                                  A→D (2), A→E(1)
Extracted path information
                                  B→D(1)
A    B     C      D
A    C     D      E               C→D(2), C→E(1)
C    E     A      F     D         D→E(1)

                                  E→D(1)

                                  F→D(1)
                             10
Learning from tossing paths
                           Path tokens
 Generated graph
                        A→D (2), A→E(1)

                        B→D(1)

                        C→D(2), C→E(1)

                        D→E(1)

                        E→D(1)

                        F→D(1)
                   11
Learning from tossing paths
                           Path tokens
 Generated graph
                        A→D (2), A→E(1)

           A            B→D(1)

                        C→D(2), C→E(1)

                        D→E(1)

                        E→D(1)

                        F→D(1)
                   11
Learning from tossing paths
                           Path tokens
 Generated graph
                        A→D (2), A→E(1)

           A            B→D(1)
     67%
                        C→D(2), C→E(1)
   D
                        D→E(1)

                        E→D(1)

                        F→D(1)
                   11
Learning from tossing paths
                                   Path tokens
   Generated graph
                                A→D (2), A→E(1)
   F         A                  B→D(1)
100%   67%           33%
                                C→D(2), C→E(1)
       D             E
           100%
100%                            D→E(1)
       67%        33%
             C                  E→D(1)
   B
                                F→D(1)
                           11
Tossing graph from Eclipse




            12
Manual process with cliques




             13
Developer structure




         14
Developer feedback

• “Very neat stuff! The clustering was correct
  for the team”
• “This would be useful for both integrators
  and managers wanting to understand the
  life cycle of bugs”



                     15
Path reduction
• Reducing tossing paths by graph search
 • Original path
       A        B         C       D


 • Recommended path?
       A        ? Search from A

                     16
Greedy search
              for optimal path
   • Start from a given node (A)
   • Visit heavy neighboring nodes first
   F                    Original :   A   B   C   D
             A
100%   67%        33%
                        Our path : A     D
       D          E
           100%



                          17
Reduced paths

                             $
!"#$%&'#$((')**%+,((-#+,'.




                             #


                                                                                        +,-.//0
                             "                                                          12/.345


                             !
                                 "   #   $    %    &    '        (   )   !*   !!   !"
                                             /"%,%+0-((')**%+,(-#+,'.


                                                            18
Our solution

• Learning from previous tossing history
• To help
   • Assist manual bug triage
   • Reducing tossing paths
   • Assign bug automatically

                     19
Automatic bug triage
                 Bu
               Re
                 po   g
                   rt




               Machine
            Machine learner
    Who should fix this bug? (J. Anvik)
                   20
Automatic bug triage
                         Bu
                       Re
                         po   g
                           rt




 New!
   Bu
 Re
   po   g
     rt


                       Machine
                    Machine learner
            Who should fix this bug? (J. Anvik)
                           20
Automatic bug triage
                         Bu
                       Re
                         po   g
                           rt




 New!
   Bu
 Re
   po   g
     rt

                                                   Predict
                       Machine
                    Machine learner              developers
            Who should fix this bug? (J. Anvik)
                           20
Experiment

• Integrating bug tossing information
 • existing approaches          P1    P2                   P3
      P = [ 1Pp2 , ..., 1 ,np]2 , ..., pn }
          {p , = {p p }

  • our approach                       T1        T2   T3

         = = , t t 2 t t2 , ..., t }
      RPRP [{p1{p1 , p1 , p2 , ..., pn ,pn , ]tn }


                             21
Experiment

• Integrating bug tossing information
 •  existing approaches ....... First 3 : [p1, p2, p3 ]
        P = [ 1Pp2 , ..., 1 ,np]2 , ..., pn }
            {p , = {p p }

  •   our approach ..................      First 3 : [p1, t1, p2]

          = = , t t 2 t t2 , ..., t }
       RPRP [{p1{p1 , p1 , p2 , ..., pn ,pn , ]tn }


                               22
Eclipse triage result
First 2

First 3
                                                          Naïve + Tossing
                                                          Naïve
First 4

First 5
      37.500   45.625   53.750    61.875   70.000   (%)


                             23
Eclipse triage result
First 2

First 3
                                                          Naïve + Tossing
                                                          Naïve
First 4

First 5
      37.500   45.625   53.750    61.875   70.000   (%)


                             24
Mozilla triage result
First 2

First 3
                                                       Naïve + Tossing
                                                       Naïve
First 4

First 5
          25.00   38.75   52.50    66.25   80.00 (%)



                              25
Mozilla triage result
First 2

First 3
                                                       Naïve + Tossing
                                                       Naïve
First 4

First 5
          25.00   38.75   52.50    66.25   80.00 (%)



                              26
Summary

• Tossing graphs help to
 • Assist manual bug triage
 • Reduce tossing paths
 • Assign bug automatically

                    27
Thank you
Gaeul Jeong, Sunghun Kim and Thomas Zimmermann
       Joint meeting of the European Software Engineering Conference (ESEC)
and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE),
                                    Armsterdam,
                                  The Netherlands
Experiment
•   They use the first 165,385 Eclipse bugs for
    training
•   The machine learners predict developers for
    bugs in a testing set, Eclipse bug from 165,397
    to 211,822

          0                    165,397        211,822


                Training set             Testing set


                        29
ML+
program   ML algorithm   selection        ML only                 improvement
                                                    tossing graph

                           first2            43.7       44.71         1.01
                           first3           49.87       53.15         3.27
          Naive Bayes      first4           56.42       59.95         3.53
                           first5           60.71       63.48         2.77
Eclipse                    first2           57.91       58.29         0.38
           Bayesian        first3           66.71       68.47         1.76
           Network         first4           69.47       71.48         2.01
                           first5           75.88       77.14         1.26
                           first2           33.41       56.39        15.84
                           first3           45.39       63.82        12.81
          Naive Bayes      first4           52.94       69.51        12.05
                           first5           59.35       72.92        11.29
Mozilla                    first2           40.02       55.85        22.98
           Bayesian        first3           50.25       63.05        18.43
           Network         first4            55.4       67.45        16.57
                           first5           59.53       70.82        13.58



                                     30

Weitere ähnliche Inhalte

Ähnlich wie BugTriage with Bug Tossing Graphs (ESEC/FSE 2009) (9)

Week 3 - Trigonometry
Week 3 - TrigonometryWeek 3 - Trigonometry
Week 3 - Trigonometry
 
February 9 2016
February 9 2016February 9 2016
February 9 2016
 
M A T H E M A T I C S I I I J N T U M O D E L P A P E R{Www
M A T H E M A T I C S  I I I  J N T U  M O D E L  P A P E R{WwwM A T H E M A T I C S  I I I  J N T U  M O D E L  P A P E R{Www
M A T H E M A T I C S I I I J N T U M O D E L P A P E R{Www
 
03 image transformations_i
03 image transformations_i03 image transformations_i
03 image transformations_i
 
4366 chapter7
4366 chapter74366 chapter7
4366 chapter7
 
Review
ReviewReview
Review
 
Evolutionary Algorithms and their Applications in Civil Engineering - 1
Evolutionary Algorithms and their Applications in Civil Engineering - 1Evolutionary Algorithms and their Applications in Civil Engineering - 1
Evolutionary Algorithms and their Applications in Civil Engineering - 1
 
Class 6: Programming with Data
Class 6: Programming with DataClass 6: Programming with Data
Class 6: Programming with Data
 
Basic data structures part I
Basic data structures part IBasic data structures part I
Basic data structures part I
 

Mehr von Sung Kim

DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
DeepAM: Migrate APIs with Multi-modal Sequence to Sequence LearningDeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
Sung Kim
 
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
Sung Kim
 
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Sung Kim
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution Techniques
Sung Kim
 
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Sung Kim
 
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
Sung Kim
 
Source code comprehension on evolving software
Source code comprehension on evolving softwareSource code comprehension on evolving software
Source code comprehension on evolving software
Sung Kim
 
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
A Survey on  Dynamic Symbolic Execution  for Automatic Test GenerationA Survey on  Dynamic Symbolic Execution  for Automatic Test Generation
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
Sung Kim
 
MSR2014 opening
MSR2014 openingMSR2014 opening
MSR2014 opening
Sung Kim
 

Mehr von Sung Kim (20)

DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
DeepAM: Migrate APIs with Multi-modal Sequence to Sequence LearningDeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
 
Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)
 
Time series classification
Time series classificationTime series classification
Time series classification
 
Tensor board
Tensor boardTensor board
Tensor board
 
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
 
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution Techniques
 
Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)
 
Software Defect Prediction on Unlabeled Datasets
Software Defect Prediction on Unlabeled DatasetsSoftware Defect Prediction on Unlabeled Datasets
Software Defect Prediction on Unlabeled Datasets
 
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
 
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
 
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
 
Source code comprehension on evolving software
Source code comprehension on evolving softwareSource code comprehension on evolving software
Source code comprehension on evolving software
 
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
A Survey on  Dynamic Symbolic Execution  for Automatic Test GenerationA Survey on  Dynamic Symbolic Execution  for Automatic Test Generation
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect Prediction
 
MSR2014 opening
MSR2014 openingMSR2014 opening
MSR2014 opening
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect Prediction
 
STAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash ReproductionSTAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash Reproduction
 
Transfer defect learning
Transfer defect learningTransfer defect learning
Transfer defect learning
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)

  • 1. Bug Triage with Bug Tossing Graphs Gaeul Jeong, Sunghun Kim and Thomas Zimmermann August 26, 2009 Joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), Armsterdam, The Netherlands
  • 2. Bug triage Bu Bu g g X Fixed New Assigned Resolved The life cycle of a bug report (A. Zeller) 2
  • 3. Problem More than More than 300 reports per day 1,000 developers Bu g ? Bu g X Fixed New Assigned Resolved 3
  • 4. Consequences Mozilla 297,999 bugs 116,890 bugs First First Reported Assignment Action 26.1 days 161.1 days (a) All Bugs pse 131,958 bugs 49,431 bugs Ecli Reported 144,102 bugs First Action 88,706 bugs First Assignment 7.1 days First 38.1 days First Reported Assignment Action 16.7 days 23.6 days (b) Verified Bugs (a) All Bugs 18,498 bugs 15,045 bugs First First Reported Assignment Action 5.2 days 4 19.3 days
  • 5. Bug tossing Tossing (reassign) Bu Bu g g X Fixed New Assigned Resolved The life cycle of a bug report 5
  • 6. Consequences %!! $"! !"#$%&#'(%)*'+,'-%.# $!! #"! +,-.//0 #!! 12/.345 "! ! # $ % & " ' ( ) * #! -,**/0&'1+#2* 6
  • 7. Two Challenges • Finding appropriate developer is hard • Wrong assignment(bug tossing) make the fixing process slow down 7
  • 8. Our solution • Learning from previous tossing history • To help • Assist manual bug triage • Reducing tossing paths • Assign bug automatically 8
  • 9. Bug tossing path • Extracting bug tossing information • Identify more appropriate developers using tossing relationship 9
  • 10. Learning from tossing paths Path tokens A→D (2), A→E(1) Extracted path information B→D(1) A B C D A C D E C→D(2), C→E(1) C E A F D D→E(1) E→D(1) F→D(1) 10
  • 11. Learning from tossing paths Path tokens Generated graph A→D (2), A→E(1) B→D(1) C→D(2), C→E(1) D→E(1) E→D(1) F→D(1) 11
  • 12. Learning from tossing paths Path tokens Generated graph A→D (2), A→E(1) A B→D(1) C→D(2), C→E(1) D→E(1) E→D(1) F→D(1) 11
  • 13. Learning from tossing paths Path tokens Generated graph A→D (2), A→E(1) A B→D(1) 67% C→D(2), C→E(1) D D→E(1) E→D(1) F→D(1) 11
  • 14. Learning from tossing paths Path tokens Generated graph A→D (2), A→E(1) F A B→D(1) 100% 67% 33% C→D(2), C→E(1) D E 100% 100% D→E(1) 67% 33% C E→D(1) B F→D(1) 11
  • 15. Tossing graph from Eclipse 12
  • 16. Manual process with cliques 13
  • 18. Developer feedback • “Very neat stuff! The clustering was correct for the team” • “This would be useful for both integrators and managers wanting to understand the life cycle of bugs” 15
  • 19. Path reduction • Reducing tossing paths by graph search • Original path A B C D • Recommended path? A ? Search from A 16
  • 20. Greedy search for optimal path • Start from a given node (A) • Visit heavy neighboring nodes first F Original : A B C D A 100% 67% 33% Our path : A D D E 100% 17
  • 21. Reduced paths $ !"#$%&'#$((')**%+,((-#+,'. # +,-.//0 " 12/.345 ! " # $ % & ' ( ) !* !! !" /"%,%+0-((')**%+,(-#+,'. 18
  • 22. Our solution • Learning from previous tossing history • To help • Assist manual bug triage • Reducing tossing paths • Assign bug automatically 19
  • 23. Automatic bug triage Bu Re po g rt Machine Machine learner Who should fix this bug? (J. Anvik) 20
  • 24. Automatic bug triage Bu Re po g rt New! Bu Re po g rt Machine Machine learner Who should fix this bug? (J. Anvik) 20
  • 25. Automatic bug triage Bu Re po g rt New! Bu Re po g rt Predict Machine Machine learner developers Who should fix this bug? (J. Anvik) 20
  • 26. Experiment • Integrating bug tossing information • existing approaches P1 P2 P3 P = [ 1Pp2 , ..., 1 ,np]2 , ..., pn } {p , = {p p } • our approach T1 T2 T3 = = , t t 2 t t2 , ..., t } RPRP [{p1{p1 , p1 , p2 , ..., pn ,pn , ]tn } 21
  • 27. Experiment • Integrating bug tossing information • existing approaches ....... First 3 : [p1, p2, p3 ] P = [ 1Pp2 , ..., 1 ,np]2 , ..., pn } {p , = {p p } • our approach .................. First 3 : [p1, t1, p2] = = , t t 2 t t2 , ..., t } RPRP [{p1{p1 , p1 , p2 , ..., pn ,pn , ]tn } 22
  • 28. Eclipse triage result First 2 First 3 Naïve + Tossing Naïve First 4 First 5 37.500 45.625 53.750 61.875 70.000 (%) 23
  • 29. Eclipse triage result First 2 First 3 Naïve + Tossing Naïve First 4 First 5 37.500 45.625 53.750 61.875 70.000 (%) 24
  • 30. Mozilla triage result First 2 First 3 Naïve + Tossing Naïve First 4 First 5 25.00 38.75 52.50 66.25 80.00 (%) 25
  • 31. Mozilla triage result First 2 First 3 Naïve + Tossing Naïve First 4 First 5 25.00 38.75 52.50 66.25 80.00 (%) 26
  • 32. Summary • Tossing graphs help to • Assist manual bug triage • Reduce tossing paths • Assign bug automatically 27
  • 33. Thank you Gaeul Jeong, Sunghun Kim and Thomas Zimmermann Joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), Armsterdam, The Netherlands
  • 34. Experiment • They use the first 165,385 Eclipse bugs for training • The machine learners predict developers for bugs in a testing set, Eclipse bug from 165,397 to 211,822 0 165,397 211,822 Training set Testing set 29
  • 35. ML+ program ML algorithm selection ML only improvement tossing graph first2 43.7 44.71 1.01 first3 49.87 53.15 3.27 Naive Bayes first4 56.42 59.95 3.53 first5 60.71 63.48 2.77 Eclipse first2 57.91 58.29 0.38 Bayesian first3 66.71 68.47 1.76 Network first4 69.47 71.48 2.01 first5 75.88 77.14 1.26 first2 33.41 56.39 15.84 first3 45.39 63.82 12.81 Naive Bayes first4 52.94 69.51 12.05 first5 59.35 72.92 11.29 Mozilla first2 40.02 55.85 22.98 Bayesian first3 50.25 63.05 18.43 Network first4 55.4 67.45 16.57 first5 59.53 70.82 13.58 30