PAFL: Enhancing Fault Localizers by Leveraging Project-Specific Fault Patterns
summary
PAFL mines project histories to synthesize project-specific fault patterns and boosts existing fault localizers by reweighting statement suspiciousness. It represents code as an aggregated-AST graph, encodes patterns in a small DSL called crossword, and selects relevant past versions using error embeddings built from passing and failing coverage. Applied as a postprocessor to seven baseline localizers on 12 C/C++ and Python projects, PAFL improves ranking (e.g., doubles top-1 success for one baseline) and rarely degrades performance.
AI-written summary · about
chapters (9)
- 0:00Project-aware fault localization
- 2:55Recurring fault patterns
- 4:20Limitations of existing techniques
- 5:02Introducing PAFL and PAL
- 6:30PAL updates scores with Crossword
- 10:05Synthesis algorithm in PAL
- 11:12PAFL effectiveness evaluation
- 12:59Summary of findings
- 13:44Q&A
related talks
19mCAFault: Enhance Fault Injection Technique in Practical Distributed Systems via...
20mAFL++ : Combining Incremental Steps of Fuzzing Research
14mUnveiling Compiler Faults via Attribute-Guided Compilation Space Exploration
38mTesting with two failure seeking missiles: fuzzing and property based testing
12mAutomatic Grammar Repair
18mEfficient Exposure of Partial Failure Bugs in Distributed Systems with Inferred...
41m0Flake - Reaching reliable non-flaky tests
16mA Model for Detecting Faults in Build Specifications
