This is a nonexhaustive list of interesting papers and background materials.
Feel free to suggest another paper that interests you!
Debugging
- Simplifying and Isolating Failure Inducing Input
- HDD: Hierarchical Delta Debugging
- Empirical evaluation of the tarantula automatic fault-localization technique
- Isolating failure causes through test case generation
- Golden implementation driven software debugging
- F3: Fault Localization for Field Failures
- Locating Faults Through Automated Predicate Switching
- Isolating Cause-Effect Chains from Computer Programs
- Error Explanation with Distance Metrics
- Comparative Causality: Explaining The Differences Between Executions
- Towards Optimization-Safe Systems: Analyzing the Impact of Undefined Behavior
- Regression Tests to Expose Change Interaction Errors
- Lightweight Control-Flow Instrumentation and
Postmortem Analysis in Support of Debugging
- AddressSanitizer: A Fast Address Sanity Checker
Concurrency
- Eraser: A Dynamic Data Race Detector for Multithreaded Programs
- Time, Clocks, and the Ordering of Events in a Distributed System
- Hybrid Dynamic Data Race Detection
- Effective race detection for event-driven programs
- AVIO: Detecting Atomicity Violations via Access Interleaving Invariants
- RaceMob: crowdsourced data race detection
- Velodrome: a sound and complete dynamic atomicity checker for multithreaded
programs
- DoubleChecker: Efficient Sound and Precise Atomicity Checking
- Analyzing Concurrency Bugs using Dual Slicing
- MUVI: Automatically Inferring Multi-Variable Access
- ConMem: Detecting Crash-Triggering Concurrency Bugs through an Effect-Oriented
Approach
- CHESS: A Systematic Testing Tool for Concurrent Software
Test Generation & Property Checking
- Symbolic Execution and Program Testing
- DART: Directed Automated Random Testing
- CUTE: A Concolic Unit Testing Engine for C
- KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex
Systems Programs
- SYNERGY: A New Algorithm for Property Checking
- Proofs from tests
- EvoSuite: automatic test suite generation for object-oriented software
- Whole Test Suite Generation
- Korat: Automated Testing Based on Java Predicates
- Test Generation through Programming in UDITA
Profiling
- Efficient Path Profiling
- Probabilistic Calling Context
- Precise Calling Context Encoding
- Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees
and Customized Memory Management
- Identifying Execution Points for Dynamic Analyses
- DeltaPath: Precise and Scalable Calling Context Encoding
Security
- Control Flow Integrity
- Securing software by enforcing data-flow integrity
- LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting
Security Attacks
- AEG: Automatic Exploit Generation
- Finding Security Vulnerabilities in Java Applications with Static Analysis
Distributed Systems
- Life, Death, and the Critical Transition: Detecting Liveness Bugs in Systems
Code
- Finding Latent Performance Bugs in Systems Implementations
- Gatling: Automatic Attack Discovery in Large-Scale Distributed Systems