{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,4,11]],"date-time":"2025-04-11T16:07:39Z","timestamp":1744387659991,"version":"3.37.3"},"reference-count":37,"publisher":"Association for Computing Machinery (ACM)","issue":"FSE","funder":[{"name":"National Science Foundation","award":["CCF-2129388, CCF-1910067, CCF-2129446"]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. ACM Softw. Eng."],"published-print":{"date-parts":[[2024,7,12]]},"abstract":"\n While mutation testing has been a topic of academic interest for decades, it is only recently that \u201creal-world\u201d developers, including industry leaders such as Google and Meta, have adopted mutation testing. We propose a new approach to the development of mutation testing tools, and in particular the core challenge of\n generating mutants<\/jats:italic>\n . Current practice tends towards two limited approaches to mutation generation: mutants are either (1) generated at the bytecode\/IR level, and thus neither human readable nor adaptable to source-level features of languages or projects, or (2) generated at the source level by language-specific tools that are hard to write and maintain, and in fact are often abandoned by both developers and users. We propose instead that source-level mutation generation is a special case of\n program transformation<\/jats:italic>\n in general, and that adopting this approach allows for a single tool that can effectively generate source-level mutants for essentially\n any<\/jats:italic>\n programming language. Furthermore, by using\n parser parser combinators<\/jats:italic>\n many of the seeming limitations of an any-language approach can be overcome, without the need to parse specific languages. We compare this new approach to mutation to existing tools, and demonstrate the advantages of using parser parser combinators to improve on a regular-expression based approach to generation. Finally, we show that our approach can provide effective mutant generation even for a language for which it lacks any language-specific operators, and that is not very similar in syntax to any language it has been applied to previously.\n <\/jats:p>","DOI":"10.1145\/3643756","type":"journal-article","created":{"date-parts":[[2024,7,12]],"date-time":"2024-07-12T14:22:09Z","timestamp":1720794129000},"page":"654-674","source":"Crossref","is-referenced-by-count":1,"title":["Syntax Is All You Need: A Universal-Language Approach to Mutant Generation"],"prefix":"10.1145","volume":"1","author":[{"ORCID":"https:\/\/orcid.org\/0009-0003-4225-7453","authenticated-orcid":false,"given":"Sourav","family":"Deb","sequence":"first","affiliation":[{"name":"Northern Arizona University, Flagstaff, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7583-6713","authenticated-orcid":false,"given":"Kush","family":"Jain","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2912-191X","authenticated-orcid":false,"given":"Rijnard","family":"van Tonder","sequence":"additional","affiliation":[{"name":"Mysten Labs, Palo Alto, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3931-060X","authenticated-orcid":false,"given":"Claire","family":"Le Goues","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0273-4668","authenticated-orcid":false,"given":"Alex","family":"Groce","sequence":"additional","affiliation":[{"name":"Northern Arizona University, Flagstaff, USA"}]}],"member":"320","published-online":{"date-parts":[[2024,7,12]]},"reference":[{"unstructured":"[n. d.]. How fast (or slow) mutation testing really is? https:\/\/solidsoft.wordpress.com\/2017\/09\/19\/how-fast-or-slow-mutation-testing-really-is\/","key":"e_1_2_1_1_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_2_1","DOI":"10.1145\/3526099"},{"volume-title":"Introduction to software testing","author":"Ammann Paul","unstructured":"Paul Ammann and Jeff Offutt. 2016. Introduction to software testing. Cambridge University Press.","key":"e_1_2_1_3_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_4_1","DOI":"10.1109\/ICSE-SEIP52600.2021.00036"},{"doi-asserted-by":"publisher","key":"e_1_2_1_5_1","DOI":"10.1145\/2976002.2976003"},{"doi-asserted-by":"publisher","key":"e_1_2_1_6_1","DOI":"10.1145\/2491956.2462173"},{"doi-asserted-by":"publisher","key":"e_1_2_1_7_1","DOI":"10.1109\/ICST.2013.20"},{"doi-asserted-by":"publisher","key":"e_1_2_1_8_1","DOI":"10.1007\/s10270-020-00827-0"},{"doi-asserted-by":"publisher","key":"e_1_2_1_9_1","DOI":"10.1007\/s11219-016-9317-7"},{"doi-asserted-by":"publisher","key":"e_1_2_1_10_1","DOI":"10.1109\/TR.2017.2705662"},{"key":"e_1_2_1_11_1","volume-title":"On The Limits of Mutation Reduction Strategies. In 2016 IEEE\/ACM 38th International Conference on Software Engineering (ICSE). 511\u2013522","author":"Gopinath Rahul","year":"2016","unstructured":"Rahul Gopinath, Mohammad Amin Alipour, Iftekhar Ahmed, Carlos Jensen, and Alex Groce. 2016. On The Limits of Mutation Reduction Strategies. In 2016 IEEE\/ACM 38th International Conference on Software Engineering (ICSE). 511\u2013522."},{"doi-asserted-by":"publisher","key":"e_1_2_1_12_1","DOI":"10.1109\/QRS54544.2021.00032"},{"doi-asserted-by":"publisher","key":"e_1_2_1_13_1","DOI":"10.5555\/3288647.3288712"},{"doi-asserted-by":"publisher","key":"e_1_2_1_14_1","DOI":"10.1145\/3183440.3183485"},{"key":"e_1_2_1_15_1","volume-title":"International Fuzzing Workshop, ser. FUZZING. 22","author":"Groce Alex","year":"2022","unstructured":"Alex Groce, Goutamkumar Tulajappa Kalburgi, Claire Le Goues, Kush Jain, and Rahul Gopinath. 2022. Registered report: First, fuzz the mutants. In International Fuzzing Workshop, ser. FUZZING. 22."},{"doi-asserted-by":"publisher","key":"e_1_2_1_16_1","DOI":"10.1145\/3497776.3517765"},{"doi-asserted-by":"publisher","key":"e_1_2_1_17_1","DOI":"10.1109\/ICST.2019.00021"},{"doi-asserted-by":"publisher","key":"e_1_2_1_18_1","DOI":"10.1109\/ASE.2015.14"},{"doi-asserted-by":"publisher","key":"e_1_2_1_19_1","DOI":"10.1145\/3510003.3510187"},{"doi-asserted-by":"publisher","key":"e_1_2_1_20_1","DOI":"10.1109\/SCAM.2016.28"},{"doi-asserted-by":"publisher","key":"e_1_2_1_21_1","DOI":"10.1145\/2610384.2628052"},{"doi-asserted-by":"publisher","key":"e_1_2_1_22_1","DOI":"10.1109\/C-M.1978.218136"},{"volume-title":"Foundations of Software Testing","author":"Mathur Aditya P","unstructured":"Aditya P Mathur. 2012. Foundations of Software Testing. Addison-Wesley.","key":"e_1_2_1_23_1"},{"unstructured":"Giorgio Natili. [n. d.]. Mutation Testing at Scale. https:\/\/slides.com\/giorgionatili\/mutation-testing-at-scale","key":"e_1_2_1_24_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_25_1","DOI":"10.1145\/227607.227610"},{"doi-asserted-by":"publisher","key":"e_1_2_1_26_1","DOI":"10.1145\/227607.227610"},{"key":"e_1_2_1_27_1","volume-title":"Automatically detecting equivalent mutants and infeasible paths. Software testing, verification and reliability, 7, 3","author":"Jefferson Offutt A","year":"1997","unstructured":"A Jefferson Offutt and Jie Pan. 1997. Automatically detecting equivalent mutants and infeasible paths. Software testing, verification and reliability, 7, 3 (1997), 165\u2013192."},{"volume-title":"Mutation testing for the new century","author":"Jefferson Offutt A","unstructured":"A Jefferson Offutt and Roland H Untch. 2001. Mutation 2000: Uniting the orthogonal. In Mutation testing for the new century. Springer, 34\u201344.","key":"e_1_2_1_28_1"},{"key":"e_1_2_1_29_1","volume-title":"International Conference on Software Engineering.","author":"Papadakis Mike","year":"2015","unstructured":"Mike Papadakis, Yue Jia, Mark Harman, and Yves Le Traon. 2015. Trivial Compiler Equivalence: A Large Scale Empirical Study of a Simple Fast and Effective Equivalent Mutant Detection Technique. In International Conference on Software Engineering."},{"doi-asserted-by":"publisher","key":"e_1_2_1_30_1","DOI":"10.1145\/3183519.3183521"},{"doi-asserted-by":"publisher","key":"e_1_2_1_31_1","DOI":"10.1109\/ICSTW.2018.00027"},{"doi-asserted-by":"publisher","key":"e_1_2_1_32_1","DOI":"10.1016\/j.jss.2019.07.100"},{"doi-asserted-by":"publisher","key":"e_1_2_1_33_1","DOI":"10.1002\/stvr.1473"},{"doi-asserted-by":"publisher","key":"e_1_2_1_34_1","DOI":"10.1145\/174146.154265"},{"key":"e_1_2_1_35_1","volume-title":"Lightweight Multi-Language Syntax Transformation with Parser Parser Combinators. In Conference on Programming language Design and Implementation (PLDI \u201919)","author":"van Tonder Rijnard","year":"2019","unstructured":"Rijnard van Tonder and Claire Le Goues. 2019. Lightweight Multi-Language Syntax Transformation with Parser Parser Combinators. In Conference on Programming language Design and Implementation (PLDI \u201919)."},{"doi-asserted-by":"publisher","key":"e_1_2_1_36_1","DOI":"10.1145\/2931037.2931038"},{"doi-asserted-by":"publisher","key":"e_1_2_1_37_1","DOI":"10.1145\/2931037.2931038"}],"container-title":["Proceedings of the ACM on Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3643756","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,8,19]],"date-time":"2024-08-19T18:50:04Z","timestamp":1724093404000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3643756"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,7,12]]},"references-count":37,"journal-issue":{"issue":"FSE","published-print":{"date-parts":[[2024,7,12]]}},"alternative-id":["10.1145\/3643756"],"URL":"https:\/\/doi.org\/10.1145\/3643756","relation":{},"ISSN":["2994-970X"],"issn-type":[{"type":"electronic","value":"2994-970X"}],"subject":[],"published":{"date-parts":[[2024,7,12]]}}}