Software Open Access
Mukherjee, Suvam;
Deligiannis, Pantazis;
Biswas, Arpita;
Lal, Akash
<?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"><p>Concurrency bugs are notoriously hard to detect and reproduce. Controlled concurrency testing (CCT) techniques aim to offer a solution, where a&nbsp;<em>scheduler</em>&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 &quot;interesting&quot;&nbsp;subspaces. However, current heuristics are typically tuned to specific bug patterns, which limits their effectiveness in practice.</p> <p>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&nbsp;on a set of microbenchmarks, complex protocols, as well as production cloud services. In our experiments, we found QL&nbsp;to consistently outperform the state-of-the-art in CCT.</p> <p>Please refer to the README file for more details on how to run the artifact.</p></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>
All versions | This version | |
---|---|---|
Views | 881 | 881 |
Downloads | 284 | 284 |
Data volume | 173.9 GB | 173.9 GB |
Unique views | 847 | 847 |
Unique downloads | 252 | 252 |