{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,28]],"date-time":"2025-09-28T04:12:16Z","timestamp":1759032736332,"version":"3.41.0"},"reference-count":17,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2021,7,14]],"date-time":"2021-07-14T00:00:00Z","timestamp":1626220800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGSOFT Softw. Eng. Notes"],"published-print":{"date-parts":[[2021,7,14]]},"abstract":"<jats:p>Tests that modify (i.e., \"pollute\") the state shared among tests in a test suite are called \\polluter tests\". Finding these tests is im- portant because they could result in di erent test outcomes based on the order of the tests in the test suite. Prior work has proposed the PolDet technique for nding polluter tests in runs of JUnit tests on a regular Java Virtual Machine (JVM). Given that Java PathFinder (JPF) provides desirable infrastructure support, such as systematically exploring thread schedules, it is a worthwhile attempt to re-implement techniques such as PolDet in JPF. We present a new implementation of PolDet for nding polluter tests in runs of JUnit tests in JPF. We customize the existing state comparison in JPF to support the so-called \\common-root iso- morphism\" required by PolDet. We find that our implementation is simple, requiring only -200 lines of code, demonstrating that JPF is a sophisticated infrastructure for rapid exploration of re-search ideas on software testing. We evaluate our implementation on 187 test classes from 13 Java projects and nd 26 polluter tests. Our results show that the runtime overhead of PolDet@JPF com- pared to base JPF is relatively low, on average 1.43x. However, our experiments also show some potential challenges with JPF.<\/jats:p>","DOI":"10.1145\/3468744.3468756","type":"journal-article","created":{"date-parts":[[2021,7,21]],"date-time":"2021-07-21T16:06:11Z","timestamp":1626883571000},"page":"37-41","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Finding Polluter Tests Using Java PathFinder"],"prefix":"10.1145","volume":"46","author":[{"given":"Pu","family":"Yi","sequence":"first","affiliation":[{"name":"Peking University, Beijing, China"}]},{"given":"Anjiang","family":"Wei","sequence":"additional","affiliation":[{"name":"Peking University, Beijing, China"}]},{"given":"Wing","family":"Lam","sequence":"additional","affiliation":[{"name":"University of Illinois, Urbana, IL, USA"}]},{"given":"Tao","family":"Xie","sequence":"additional","affiliation":[{"name":"Peking University, Beijing, China"}]},{"given":"Darko","family":"Marinov","sequence":"additional","affiliation":[{"name":"University of Illinois, Urbana, IL, USA"}]}],"member":"320","published-online":{"date-parts":[[2021,7,21]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"ICSE","author":"Alshammari A.","year":"2021","unstructured":"A. Alshammari , C. Morris , M. Hilton , and J. Bell . FlakeFlagger: Predicting akiness without rerunning tests . In ICSE , 2021 . A. Alshammari, C. Morris, M. Hilton, and J. Bell. FlakeFlagger: Predicting akiness without rerunning tests. In ICSE, 2021."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2018.00011"},{"key":"e_1_2_1_3_1","volume-title":"ICST","author":"Gruber M.","year":"2021","unstructured":"M. Gruber , S. Lukasczyk , F. Kroi' , and G. Fraser . An empirical study of aky tests in Python . In ICST , 2021 . M. Gruber, S. Lukasczyk, F. Kroi', and G. Fraser. An empirical study of aky tests in Python. In ICST, 2021."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2771783.2771793"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2018.00009"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635917"},{"key":"e_1_2_1_7_1","unstructured":"JPF Core. https:\/\/github.com\/javapathfinder\/jpf-core.  JPF Core. https:\/\/github.com\/javapathfinder\/jpf-core."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2019.00038"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635920"},{"key":"e_1_2_1_10_1","volume-title":"ESEC\/FSE","author":"Soran B.","year":"2011","unstructured":"B. Soran , and J. Wuttke . Finding bugs by isolating unit tests . In ESEC\/FSE , 2011 . B. Soran, and J. Wuttke. Finding bugs by isolating unit tests. In ESEC\/FSE, 2011."},{"key":"e_1_2_1_11_1","volume-title":"ICSE","author":"Romano A.","year":"2021","unstructured":"A. Romano , Z. Song , S. Grandhi , W. Yang , and W. Wang . An empirical analysis of UI-based aky tests . In ICSE , 2021 . A. Romano, Z. Song, S. Grandhi, W. Yang, and W. Wang. An empirical analysis of UI-based aky tests. In ICSE, 2021."},{"key":"e_1_2_1_12_1","volume-title":"SPIN","author":"v. Breugel N.","year":"2014","unstructured":"N. Sha ei and F. v. Breugel . Automatic handling of native methods in Java PathFinder . In SPIN , 2014 . N. Sha ei and F. v. Breugel. Automatic handling of native methods in Java PathFinder. In SPIN, 2014."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3338906.3338925"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095430.1081749"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/786768.786967"},{"key":"e_1_2_1_16_1","unstructured":"XStream. https:\/\/x-stream.github.io.  XStream. https:\/\/x-stream.github.io."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2610384.2610404"}],"container-title":["ACM SIGSOFT Software Engineering Notes"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3468744.3468756","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3468744.3468756","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T17:49:36Z","timestamp":1750268976000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3468744.3468756"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,7,14]]},"references-count":17,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2021,7,14]]}},"alternative-id":["10.1145\/3468744.3468756"],"URL":"https:\/\/doi.org\/10.1145\/3468744.3468756","relation":{},"ISSN":["0163-5948"],"issn-type":[{"type":"print","value":"0163-5948"}],"subject":[],"published":{"date-parts":[[2021,7,14]]},"assertion":[{"value":"2021-07-21","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}