Variable and Thread Bounding for Systematic Testing of Multithreaded Programs
Sandeep Bindal, Sorav Bansal, Akash Lal

TL;DR
This paper introduces variable and thread bounding metrics to improve systematic testing of multithreaded programs, enabling more efficient bug detection by focusing on low-v and low-t characteristics, reducing overhead and increasing bug-finding effectiveness.
Contribution
It proposes new metrics based on variable and thread bounds for ranking schedules, and demonstrates their effectiveness in finding bugs more efficiently than prior methods.
Findings
Finds common bugs with fewer execution runs.
Improves lower bounds on bug detection probability.
Reduces overhead in variable access instrumentation by 10-100x.
Abstract
Previous approaches to systematic state-space exploration for testing multi-threaded programs have proposed context-bounding and depth-bounding to be effective ranking algorithms for testing multithreaded programs. This paper proposes two new metrics to rank thread schedules for systematic state-space exploration. Our metrics are based on characterization of a concurrency bug using v (the minimum number of distinct variables that need to be involved for the bug to manifest) and t (the minimum number of distinct threads among which scheduling constraints are required to manifest the bug). Our algorithm is based on the hypothesis that in practice, most concurrency bugs have low v (typically 1- 2) and low t (typically 2-4) characteristics. We iteratively explore the search space of schedules in increasing orders of v and t. We show qualitatively and empirically that our algorithm finds…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Parallel Computing and Optimization Techniques · Software Engineering Research
