SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Crash Graphs: An aggregated view of
multiple crashes to improve crash triage

                                       Sung Kim (HKUST)
                 Tom Zimmermann and Nachi Nagappan (MSR)
Windows Error Reporting (WER) System
Windows Error Reporting (WER) System
Windows Error Reporting (WER) System

crashes
Windows Error Reporting (WER) System

Identifying
Crash causes
Windows Error Reporting (WER) System

bucketing
Windows Error Reporting (WER) System
Windows Error Reporting (WER) System


             Bug      Bug      Bug
            report   report   report
              1        2        3

Reporting
bugs
Crash Graph
Aggregation of multiple crashes
Crash Graph




Trace 1   A   B   C D
Trace 2   A   E   F   G D
Trace 3   C D G D
Crash Graph

                                    A



Trace 1   A   B   C D           B

Trace 2   A   E   F   G D
Trace 3   C D G D
                            C




                            D
Crash Graph

                                    A


                                        E
Trace 1   A   B   C D           B

Trace 2   A   E   F   G D
Trace 3   C D G D                           F
                            C

                                        G

                            D
Crash Graph

                                    A


                                        E
Trace 1   A   B   C D           B

Trace 2   A   E   F   G D
Trace 3   C D G D                           F
                            C

                                        G

                            D
Crash Graph

                                    A


                                        E
Trace 1   A   B   C D           B

Trace 2   A   E   F   G D
Trace 3   C D G D                           F
                            C

                                        G

                            D
Crash Graph Example
Research Questions
}  RQ1: Is   it useful for debugging?

}  RQ2: Can
           this identify duplicated bugs
 (second buckets)

}  RQ3: Can
           this hold crash properties: can
 we predict fixable crashes?
RQ1: Useful for Debugging?
Evaluation
}  Find fixed bugs reported by Watson(autobug)
}  Draw crash graphs for the bugs
}  Send the graphs to the corresponding fixers
}  Ask fixers for comments
Developer feedback
}    “… the graph would be showing me that a single cab
      could not…”

}    “Your graph looks helpful…”

}    “Usually developers can guess 50-80% the crash
      causes by reading call traces. This graph can help
      developers to see all traces together”
RQ2: Detecting Duplicated Bugs


             Bug      Bug      Bug
            report   report   report
              1        2        3

Reporting
bugs
RQ2: Detecting Duplicated Bugs
                       Duplicated!


               Bug                       Bug          Bug
      Fixed   report                    report       report
                1                         2            3

Reporting
bugs




                                     Second bucket
Sub-graph similarity




                       ⊇
Sub-graph similarity

         !"#(​%↓'"( ,  ​%↓*#+,, )=​|​-↓'"(   ∩​  -↓*#+,, |/|​-↓*#+,, |    ,
  where E is the set of edges in G and |​-↓*#+,, |≤|​-↓'"( |.

                                              ⊇
Evaluation
                                     Bug ids      Dup?
                                  Bug 1   Bug 2
     Bug 1
                                  Bug 1   Bug 3
                   Duplicated!
     Bug 2                        Bug 1   Bug 4
                                  Bug 1   Bug 5
     Bug 3                        Bug 2   Bug 3
                                  Bug 2   Bug 4
     Bug 4          Duplicated!
                                  Bug 2   Bug 5

     Bug 5                        Bug 3   Bug 4
                                  Bug 3   Bug 5
From bug reports                  Bug 4   Bug 5
Evaluation
                Bug ids      Dup?
             Bug 1   Bug 2
             Bug 1   Bug 3
             Bug 1   Bug 4
             Bug 1   Bug 5
             Bug 2   Bug 3
             Bug 2   Bug 4
             Bug 2   Bug 5
             Bug 3   Bug 4
             Bug 3   Bug 5
             Bug 4   Bug 5
Similarity Computation
     Bug ids       Dup?             Similarity   Dup?   threshold=0.9
  Bug 1   Bug 2                       0.85
  Bug 1   Bug 3                       0.95
  Bug 1   Bug 4                        0.8
  Bug 1   Bug 5                        0.7
  Bug 2   Bug 3                        0.8
  Bug 2   Bug 4                        0.8
  Bug 2   Bug 5                        0.1
  Bug 3   Bug 4                        0.4
  Bug 3   Bug 5                       0.96
  Bug 4   Bug 5                        0.2

               Precision= 50%, recall = 50%
Subject (WinOS Bugs)

         Name                Value
         # of bug reports                   X
     # of duplicated bugs               13.3%
       # of total bug pair           (X*X-1/2)

  # of duplicated bug pair              0.32%

  # of non-duplicated bug            Remaining
Dup-detection Results

 Similarity    Precision          Recall
 threshold
           1           *70.3               58.8
       0.99                71.5            62.4
       0.98                71.0            63.6
       0.97                68.4            64.2
       0.96                65.0            64.2
       0.95                61.6            64.2
Why Crash Graph Works?
}  Uses   all traces to compare



                     trace1
Why Crash Graph Works?
}  Uses   all traces to compare



            trace1
Why Crash Graph Works?
}  Uses   all traces to compare


                     90%   trace 2

            trace1
Why Crash Graph Works?
}  Uses   all traces to compare



            trace1



            trace 2
Why Crash Graph Works?
}  Uses   all traces to compare


                      80%   trace 3

            trace1



            trace 2
Why Crash Graph Works?
}  Uses   all traces to compare



            trace1                 trace 3



            trace 2
Why Crash Graph Works?
}  Uses   all traces to compare



            trace1                 trace 3

                          90%
            trace 2
Why Crash Graph Works?
}  Partial    traces

Bucket 1
 Trace 1   A   B   C D
 Trace 2   D   E   F   G H




Bucket 2
 Trace 3   C D     E   F
RQ3: Predicting Fixable Crashes
}  Not all crashes will be fixed
}  There are too many crashes
}  Can we prioritize developers’ effort?
 }  If we know which crashes are likely to be fixed
 }  Developers can focus on these first
Extracting Features



                      Features   values
                      Node #       7
                      Edge #       5
                      Max-in       4
                      Max-out      2


    Crash graph
Extracting Features
                     Bug id           Features            Fixed?
                          1   0   1   3   1     1   5 1
                          2   1   1   2   1     3   1 1
                          3   1   1   1   5     1   0 1




                                      Machine
1   1   2   1   3   1 0               learner                      Fixable!
Results

                       Subjects/Features      Precision   Recall     F-measure
Windows 7 Exchange14




                              Crash graph          79.5       69.6         74.5


                              Bug meta data        69.9       66.1         68.6
                              Crash graph          72.1       60.3           65
                               All features        71.8       61.2         65.4

Subjects: Several hundred bugs from Windows 7 and a few thousand from
Exchange 14 bugs
Results

                       Subjects/Features      Precision   Recall     F-measure

                              Bug meta data          80       57.2         66.3
Windows 7 Exchange14




                              Crash graph          79.5       69.6         74.5
                               All features          80       70.6         74.7
                              Bug meta data        69.9       66.1         68.6
                              Crash graph          72.1       60.3           65
                               All features        71.8       61.2         65.4

Subjects: Several hundred bugs from Windows 7 and a few thousand from
Exchange 14 bugs
Evaluation

                       Subjects/Features      Precision   Recall     F-measure

                              Bug meta data          80       57.2         66.3
Windows 7 Exchange14




                              Crash graph          79.5       69.6         74.5
                               All features          80       70.6         74.7
                              Bug meta data        69.9       66.1         68.6
                              Crash graph          72.1       60.3           65
                               All features        71.8       61.2         65.4

Subjects: Several hundred bugs from Windows 7 and a few thousand from
Exchange 14 bugs
Summary: Crash Graph is Useful

}  Debugging


}  Identifying   duplicated bugs (second
 buckets)

}  Predicting    fixable crashes
Future Work
}          Interactive Crash Graphs
}          Other trace clustering algorithms
       Crash topic analysis
      } 
}  Applying crash graphs for other problems
   }  One-hit buckets
"Crash Graphs: An Aggregated View of Multiple Crashes to Improve Crash Triage" by Sunghun Kim, Thomas Zimmermann and Nachiappan Nagappan.

Weitere ähnliche Inhalte

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

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

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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 AutomationSafe Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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 educationjfdjdjcjdnsjd
 
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, Adobeapidays
 
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
 
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
 
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 TerraformAndrey Devyatkin
 
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.pdfsudhanshuwaghmare1
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
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 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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 

Kürzlich hochgeladen (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
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
 
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
 
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
 
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
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

"Crash Graphs: An Aggregated View of Multiple Crashes to Improve Crash Triage" by Sunghun Kim, Thomas Zimmermann and Nachiappan Nagappan.

  • 1. Crash Graphs: An aggregated view of multiple crashes to improve crash triage Sung Kim (HKUST) Tom Zimmermann and Nachi Nagappan (MSR)
  • 2. Windows Error Reporting (WER) System
  • 3. Windows Error Reporting (WER) System
  • 4. Windows Error Reporting (WER) System crashes
  • 5. Windows Error Reporting (WER) System Identifying Crash causes
  • 6. Windows Error Reporting (WER) System bucketing
  • 7. Windows Error Reporting (WER) System
  • 8. Windows Error Reporting (WER) System Bug Bug Bug report report report 1 2 3 Reporting bugs
  • 9. Crash Graph Aggregation of multiple crashes
  • 10. Crash Graph Trace 1 A B C D Trace 2 A E F G D Trace 3 C D G D
  • 11. Crash Graph A Trace 1 A B C D B Trace 2 A E F G D Trace 3 C D G D C D
  • 12. Crash Graph A E Trace 1 A B C D B Trace 2 A E F G D Trace 3 C D G D F C G D
  • 13. Crash Graph A E Trace 1 A B C D B Trace 2 A E F G D Trace 3 C D G D F C G D
  • 14. Crash Graph A E Trace 1 A B C D B Trace 2 A E F G D Trace 3 C D G D F C G D
  • 16. Research Questions }  RQ1: Is it useful for debugging? }  RQ2: Can this identify duplicated bugs (second buckets) }  RQ3: Can this hold crash properties: can we predict fixable crashes?
  • 17. RQ1: Useful for Debugging?
  • 18. Evaluation }  Find fixed bugs reported by Watson(autobug) }  Draw crash graphs for the bugs }  Send the graphs to the corresponding fixers }  Ask fixers for comments
  • 19. Developer feedback }  “… the graph would be showing me that a single cab could not…” }  “Your graph looks helpful…” }  “Usually developers can guess 50-80% the crash causes by reading call traces. This graph can help developers to see all traces together”
  • 20. RQ2: Detecting Duplicated Bugs Bug Bug Bug report report report 1 2 3 Reporting bugs
  • 21. RQ2: Detecting Duplicated Bugs Duplicated! Bug Bug Bug Fixed report report report 1 2 3 Reporting bugs Second bucket
  • 23. Sub-graph similarity !"#(​%↓'"( ,  ​%↓*#+,, )=​|​-↓'"(   ∩​  -↓*#+,, |/|​-↓*#+,, |  , where E is the set of edges in G and |​-↓*#+,, |≤|​-↓'"( |. ⊇
  • 24. Evaluation Bug ids Dup? Bug 1 Bug 2 Bug 1 Bug 1 Bug 3 Duplicated! Bug 2 Bug 1 Bug 4 Bug 1 Bug 5 Bug 3 Bug 2 Bug 3 Bug 2 Bug 4 Bug 4 Duplicated! Bug 2 Bug 5 Bug 5 Bug 3 Bug 4 Bug 3 Bug 5 From bug reports Bug 4 Bug 5
  • 25. Evaluation Bug ids Dup? Bug 1 Bug 2 Bug 1 Bug 3 Bug 1 Bug 4 Bug 1 Bug 5 Bug 2 Bug 3 Bug 2 Bug 4 Bug 2 Bug 5 Bug 3 Bug 4 Bug 3 Bug 5 Bug 4 Bug 5
  • 26. Similarity Computation Bug ids Dup? Similarity Dup? threshold=0.9 Bug 1 Bug 2 0.85 Bug 1 Bug 3 0.95 Bug 1 Bug 4 0.8 Bug 1 Bug 5 0.7 Bug 2 Bug 3 0.8 Bug 2 Bug 4 0.8 Bug 2 Bug 5 0.1 Bug 3 Bug 4 0.4 Bug 3 Bug 5 0.96 Bug 4 Bug 5 0.2 Precision= 50%, recall = 50%
  • 27. Subject (WinOS Bugs) Name Value # of bug reports X # of duplicated bugs 13.3% # of total bug pair (X*X-1/2) # of duplicated bug pair 0.32% # of non-duplicated bug Remaining
  • 28. Dup-detection Results Similarity Precision Recall threshold 1 *70.3 58.8 0.99 71.5 62.4 0.98 71.0 63.6 0.97 68.4 64.2 0.96 65.0 64.2 0.95 61.6 64.2
  • 29. Why Crash Graph Works? }  Uses all traces to compare trace1
  • 30. Why Crash Graph Works? }  Uses all traces to compare trace1
  • 31. Why Crash Graph Works? }  Uses all traces to compare 90% trace 2 trace1
  • 32. Why Crash Graph Works? }  Uses all traces to compare trace1 trace 2
  • 33. Why Crash Graph Works? }  Uses all traces to compare 80% trace 3 trace1 trace 2
  • 34. Why Crash Graph Works? }  Uses all traces to compare trace1 trace 3 trace 2
  • 35. Why Crash Graph Works? }  Uses all traces to compare trace1 trace 3 90% trace 2
  • 36. Why Crash Graph Works? }  Partial traces Bucket 1 Trace 1 A B C D Trace 2 D E F G H Bucket 2 Trace 3 C D E F
  • 37. RQ3: Predicting Fixable Crashes }  Not all crashes will be fixed }  There are too many crashes }  Can we prioritize developers’ effort? }  If we know which crashes are likely to be fixed }  Developers can focus on these first
  • 38. Extracting Features Features values Node # 7 Edge # 5 Max-in 4 Max-out 2 Crash graph
  • 39. Extracting Features Bug id Features Fixed? 1 0 1 3 1 1 5 1 2 1 1 2 1 3 1 1 3 1 1 1 5 1 0 1 Machine 1 1 2 1 3 1 0 learner Fixable!
  • 40. Results Subjects/Features Precision Recall F-measure Windows 7 Exchange14 Crash graph 79.5 69.6 74.5 Bug meta data 69.9 66.1 68.6 Crash graph 72.1 60.3 65 All features 71.8 61.2 65.4 Subjects: Several hundred bugs from Windows 7 and a few thousand from Exchange 14 bugs
  • 41. Results Subjects/Features Precision Recall F-measure Bug meta data 80 57.2 66.3 Windows 7 Exchange14 Crash graph 79.5 69.6 74.5 All features 80 70.6 74.7 Bug meta data 69.9 66.1 68.6 Crash graph 72.1 60.3 65 All features 71.8 61.2 65.4 Subjects: Several hundred bugs from Windows 7 and a few thousand from Exchange 14 bugs
  • 42. Evaluation Subjects/Features Precision Recall F-measure Bug meta data 80 57.2 66.3 Windows 7 Exchange14 Crash graph 79.5 69.6 74.5 All features 80 70.6 74.7 Bug meta data 69.9 66.1 68.6 Crash graph 72.1 60.3 65 All features 71.8 61.2 65.4 Subjects: Several hundred bugs from Windows 7 and a few thousand from Exchange 14 bugs
  • 43. Summary: Crash Graph is Useful }  Debugging }  Identifying duplicated bugs (second buckets) }  Predicting fixable crashes
  • 44. Future Work }  Interactive Crash Graphs }  Other trace clustering algorithms Crash topic analysis }  }  Applying crash graphs for other problems }  One-hit buckets