SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Similaire à Bug Triage Graphs Reduce Tossing

February 9 2016
February 9 2016February 9 2016
February 9 2016khyps13
 
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{Wwwguest3f9c6b
 
03 image transformations_i
03 image transformations_i03 image transformations_i
03 image transformations_iankit_ppt
 
4366 chapter7
4366 chapter74366 chapter7
4366 chapter7Sai Kumar
 
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 - 1shreymodi
 
Class 6: Programming with Data
Class 6: Programming with DataClass 6: Programming with Data
Class 6: Programming with DataDavid Evans
 

Similaire à Bug Triage Graphs Reduce Tossing (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
 

Plus de 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 LearningSung Kim
 
Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Sung Kim
 
Time series classification
Time series classificationTime series classification
Time series classificationSung Kim
 
Tensor board
Tensor boardTensor board
Tensor boardSung 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 TechniquesSung Kim
 
Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)Sung Kim
 
Software Defect Prediction on Unlabeled Datasets
Software Defect Prediction on Unlabeled DatasetsSoftware Defect Prediction on Unlabeled Datasets
Software Defect Prediction on Unlabeled DatasetsSung Kim
 
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)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
 
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)Sung Kim
 
Source code comprehension on evolving software
Source code comprehension on evolving softwareSource code comprehension on evolving software
Source code comprehension on evolving softwareSung 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 GenerationSung Kim
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect PredictionSung Kim
 
MSR2014 opening
MSR2014 openingMSR2014 opening
MSR2014 openingSung Kim
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect PredictionSung Kim
 
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 ReproductionSung Kim
 
Transfer defect learning
Transfer defect learningTransfer defect learning
Transfer defect learningSung Kim
 

Plus de 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
 

Dernier

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Dernier (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Bug Triage Graphs Reduce Tossing

  • 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