SlideShare a Scribd company logo
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.

More Related Content

PPTX
Predicting Recurring Crash Stacks (ASE 2012)
PDF
Ken thompson
PPTX
Event Detection and Characterization in Dynamic Graphs
PPTX
Dagstuhl seminar talk on querying big graphs
PDF
survey on analysing the crash reports of software applications
PDF
Automatic Identification of Bug Introducing Changes
PPTX
2012 talk to CSE department at U. Arizona
PPTX
Automated bug localization
Predicting Recurring Crash Stacks (ASE 2012)
Ken thompson
Event Detection and Characterization in Dynamic Graphs
Dagstuhl seminar talk on querying big graphs
survey on analysing the crash reports of software applications
Automatic Identification of Bug Introducing Changes
2012 talk to CSE department at U. Arizona
Automated bug localization

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

PDF
Lgm pakdd2011 public
PDF
Mining Software Archives 2010 Presentation
PPTX
Debugging multiplayer games
PDF
Dealing with Noise in Defect Prediction
PDF
BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)
PDF
Changes and Bugs: Mining and Predicting Development Activities
PPTX
ReLink: Recovering Links between Bugs and Changes (ESEC/FSE 2011)
PDF
Defect, defect, defect: PROMISE 2012 Keynote
PPTX
TDS Bug 221
PDF
Automatic comparison of malware
PDF
Web mapping with vector data. Is it the future ? 2012
PPSX
Design and analysis of Algorithms Lecture 1 (BFS, DFS).ppsx
PDF
PDF
Lecture 7: Data-Intensive Computing for Text Analysis (Fall 2011)
PPT
Memories of Bug Fixes
PDF
MSL2008. Debugging
KEY
Filtering Bug Reports for Fix-Time Analysis
PDF
Comparing Text Mining Algorithms for Predicting the Severity of a Reported Bug
PDF
Duplicate Bug Reports Considered Harmful ... Really?
PPTX
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
Lgm pakdd2011 public
Mining Software Archives 2010 Presentation
Debugging multiplayer games
Dealing with Noise in Defect Prediction
BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)
Changes and Bugs: Mining and Predicting Development Activities
ReLink: Recovering Links between Bugs and Changes (ESEC/FSE 2011)
Defect, defect, defect: PROMISE 2012 Keynote
TDS Bug 221
Automatic comparison of malware
Web mapping with vector data. Is it the future ? 2012
Design and analysis of Algorithms Lecture 1 (BFS, DFS).ppsx
Lecture 7: Data-Intensive Computing for Text Analysis (Fall 2011)
Memories of Bug Fixes
MSL2008. Debugging
Filtering Bug Reports for Fix-Time Analysis
Comparing Text Mining Algorithms for Predicting the Severity of a Reported Bug
Duplicate Bug Reports Considered Harmful ... Really?
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
Ad

More from Sung Kim (20)

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

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

ESEC/FSE 2015)
PDF
A Survey on Automatic Software Evolution Techniques
PPT
Crowd debugging (FSE 2015)
PPTX
Software Defect Prediction on Unlabeled Datasets
PDF
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
PPTX
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
PPTX
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
PPTX
Source code comprehension on evolving software
PDF
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
PPTX
Survey on Software Defect Prediction
PDF
MSR2014 opening
PDF
Personalized Defect Prediction
PPTX
STAR: Stack Trace based Automatic Crash Reproduction
PDF
Transfer defect learning
PDF
Automatic patch generation learned from human written patches
DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
Deep API Learning (FSE 2016)
Time series classification
Tensor board
REMI: Defect Prediction for Efficient API Testing (

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

ESEC/FSE 2015)
A Survey on Automatic Software Evolution Techniques
Crowd debugging (FSE 2015)
Software Defect Prediction on Unlabeled Datasets
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
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...
Source code comprehension on evolving software
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
Survey on Software Defect Prediction
MSR2014 opening
Personalized Defect Prediction
STAR: Stack Trace based Automatic Crash Reproduction
Transfer defect learning
Automatic patch generation learned from human written patches
Ad

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Approach and Philosophy of On baking technology
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Modernizing your data center with Dell and AMD
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
A Presentation on Artificial Intelligence
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Big Data Technologies - Introduction.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Teaching material agriculture food technology
Approach and Philosophy of On baking technology
20250228 LYD VKU AI Blended-Learning.pptx
Modernizing your data center with Dell and AMD
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
MYSQL Presentation for SQL database connectivity
A Presentation on Artificial Intelligence
“AI and Expert System Decision Support & Business Intelligence Systems”
Chapter 3 Spatial Domain Image Processing.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Big Data Technologies - Introduction.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Unlocking AI with Model Context Protocol (MCP)
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

"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