Software Open Access

Learning-based Controlled Concurrency Testing

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


MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
  <leader>00000nmm##2200000uu#4500</leader>
  <datafield tag="041" ind1=" " ind2=" ">
    <subfield code="a">eng</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">concurrency</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">testing</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">model checking</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">reinforcement learning</subfield>
  </datafield>
  <controlfield tag="005">20200928122656.0</controlfield>
  <controlfield tag="001">4043041</controlfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Microsoft Research</subfield>
    <subfield code="0">(orcid)0000-0001-7582-4520</subfield>
    <subfield code="a">Deligiannis, Pantazis</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Indian Institute of Science</subfield>
    <subfield code="0">(orcid)0000-0002-5720-013X</subfield>
    <subfield code="a">Biswas, Arpita</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Microsoft Research</subfield>
    <subfield code="a">Lal, Akash</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">5995935232</subfield>
    <subfield code="z">md5:41b922ac44e4c060571a6bc72c0b843f</subfield>
    <subfield code="u">https://zenodo.org/record/4043041/files/QL.ova</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">39170</subfield>
    <subfield code="z">md5:9a25c4f3621e1772582afd48f264c422</subfield>
    <subfield code="u">https://zenodo.org/record/4043041/files/README.pdf</subfield>
  </datafield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2020-09-22</subfield>
  </datafield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">software</subfield>
    <subfield code="o">oai:zenodo.org:4043041</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">Microsoft Research</subfield>
    <subfield code="0">(orcid)0000-0002-9040-0053</subfield>
    <subfield code="a">Mukherjee, Suvam</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">Learning-based Controlled Concurrency Testing</subfield>
  </datafield>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u">https://creativecommons.org/licenses/by/4.0/legalcode</subfield>
    <subfield code="a">Creative Commons Attribution 4.0 International</subfield>
  </datafield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2">opendefinition.org</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;Concurrency bugs are notoriously hard to detect and reproduce. Controlled concurrency testing (CCT) techniques aim to offer a solution, where a&amp;nbsp;&lt;em&gt;scheduler&lt;/em&gt;&amp;nbsp;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 &amp;quot;interesting&amp;quot;&amp;nbsp;subspaces. However, current heuristics are typically tuned to specific bug patterns, which limits their effectiveness in practice.&lt;/p&gt;

&lt;p&gt;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&amp;nbsp;on a set of microbenchmarks, complex protocols, as well as production cloud services. In our experiments, we found QL&amp;nbsp;to consistently outperform the state-of-the-art in CCT.&lt;/p&gt;

&lt;p&gt;Please refer to the README file for more details on how to run the artifact.&lt;/p&gt;</subfield>
  </datafield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">doi</subfield>
    <subfield code="i">isVersionOf</subfield>
    <subfield code="a">10.5281/zenodo.4043040</subfield>
  </datafield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.5281/zenodo.4043041</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">software</subfield>
  </datafield>
</record>
881
284
views
downloads
All versions This version
Views 881881
Downloads 284284
Data volume 173.9 GB173.9 GB
Unique views 847847
Unique downloads 252252

Share

Cite as