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

More from Sung Kim

DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
DeepAM: Migrate APIs with Multi-modal Sequence to Sequence LearningDeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning
Sung Kim
 
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 classification
Sung Kim
 
Tensor board
Tensor boardTensor board
Tensor board
Sung Kim
 
REMI: Defect Prediction for Efficient API Testing (

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

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

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

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

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Sung Kim
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution Techniques
Sung Kim
 
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 Datasets
Sung 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 software
Sung Kim
 
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
A Survey on  Dynamic Symbolic Execution  for Automatic Test GenerationA Survey on  Dynamic Symbolic Execution  for Automatic Test Generation
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
Sung Kim
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect Prediction
Sung Kim
 
MSR2014 opening
MSR2014 openingMSR2014 opening
MSR2014 openingSung Kim
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect Prediction
Sung 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 Reproduction
Sung Kim
 
Transfer defect learning
Transfer defect learningTransfer defect learning
Transfer defect learning
Sung Kim
 

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

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.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