Software Open Access

Learning-based Controlled Concurrency Testing

Mukherjee, Suvam; Deligiannis, Pantazis; Biswas, Arpita; Lal, Akash

Dublin Core Export

<?xml version='1.0' encoding='utf-8'?>
<oai_dc:dc xmlns:dc="" xmlns:oai_dc="" xmlns:xsi="" xsi:schemaLocation="">
  <dc:creator>Mukherjee, Suvam</dc:creator>
  <dc:creator>Deligiannis, Pantazis</dc:creator>
  <dc:creator>Biswas, Arpita</dc:creator>
  <dc:creator>Lal, Akash</dc:creator>
  <dc:description>Concurrency bugs are notoriously hard to detect and reproduce. Controlled concurrency testing (CCT) techniques aim to offer a solution, where a scheduler explores the space of possible interleavings of a concurrent program looking for bugs. Since the set of possible interleavings is typically very large, these schedulers employ heuristics that prioritize the search to "interesting" subspaces. However, current heuristics are typically tuned to specific bug patterns, which limits their effectiveness in practice.

In this artifact, we present QL, a learning-based CCT framework where the likelihood of an action being selected by the scheduler is influenced by earlier explorations. We leverage the classical Q-learning algorithm to explore the space of possible interleavings, allowing the exploration to adapt to the program under test, unlike previous techniques. We have implemented and evaluated QL on a set of microbenchmarks, complex protocols, as well as production cloud services. In our experiments, we found QL to consistently outperform the state-of-the-art in CCT.

Please refer to the README file for more details on how to run the artifact.</dc:description>
  <dc:subject>model checking</dc:subject>
  <dc:subject>reinforcement learning</dc:subject>
  <dc:title>Learning-based Controlled Concurrency Testing</dc:title>
All versions This version
Views 881881
Downloads 284284
Data volume 173.9 GB173.9 GB
Unique views 847847
Unique downloads 252252


Cite as