Tags:Bug Finding, Concurrency Testing, Partial Order Reduction, Probabilistic State Space Exploration and Systematic Testing
Abstract:
We present POS, a concurrency testing approach that samples the partial order of concurrent programs. POS uses a novel priority based scheduling algorithm that dynamically reassigns priorities regarding the partial order information and formally ensures that each partial order will be explored with significant probability. POS is simple to implement and provides a probabilistic guarantee of error detection better than state-of-the-art sampling approaches. Evaluations show that POS is effective in covering the partial-order space of micro-benchmarks and finding concurrency bugs in real-world programs, such as Firefox's JavaScript engine SpiderMonkey.