{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,17]],"date-time":"2026-03-17T22:42:44Z","timestamp":1773787364998,"version":"3.50.1"},"reference-count":94,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2023,5,26]],"date-time":"2023-05-26T00:00:00Z","timestamp":1685059200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Ministry of Education, Singapore, under its Academic Research Fund Tier 2","award":["MOE2019-T2-1-040"],"award-info":[{"award-number":["MOE2019-T2-1-040"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2023,10,31]]},"abstract":"<jats:p>\n            Modern software systems are complex, and they heavily rely on external libraries developed by different teams and organizations. Such systems suffer from higher instability due to incompatibility issues caused by library upgrades. In this article, we address the problem by investigating the impact of a library upgrade on the behaviors of its clients. We developed\n            <jats:sc>CompCheck<\/jats:sc>\n            , an automated upgrade compatibility checking framework that generates incompatibility-revealing tests based on previous examples.\n            <jats:sc>CompCheck<\/jats:sc>\n            first establishes an offline knowledge base of incompatibility issues by mining from open source projects and their upgrades. It then discovers incompatibilities for a specific client project, by searching for similar library usages in the knowledge base and generating tests to reveal the problems. We evaluated\n            <jats:sc>CompCheck<\/jats:sc>\n            on 202 call sites of 37 open source projects and the results show that\n            <jats:sc>CompCheck<\/jats:sc>\n            successfully revealed incompatibility issues on 76 call sites, 72.7% and 94.9% more than two existing techniques, confirming\n            <jats:sc>CompCheck<\/jats:sc>\n            \u2019s applicability and effectiveness.\n          <\/jats:p>","DOI":"10.1145\/3582569","type":"journal-article","created":{"date-parts":[[2023,2,1]],"date-time":"2023-02-01T12:34:45Z","timestamp":1675254885000},"page":"1-31","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":11,"title":["Client-Specific Upgrade Compatibility Checking via Knowledge-Guided Discovery"],"prefix":"10.1145","volume":"32","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-7343-8279","authenticated-orcid":false,"given":"Chenguang","family":"Zhu","sequence":"first","affiliation":[{"name":"The University of Texas at Austin"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0025-6837","authenticated-orcid":false,"given":"Mengshi","family":"Zhang","sequence":"additional","affiliation":[{"name":"Meta Platforms"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4464-0782","authenticated-orcid":false,"given":"Xiuheng","family":"Wu","sequence":"additional","affiliation":[{"name":"Nanyang Technological University"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2564-6660","authenticated-orcid":false,"given":"Xiufeng","family":"Xu","sequence":"additional","affiliation":[{"name":"Nanyang Technological University"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4562-8208","authenticated-orcid":false,"given":"Yi","family":"Li","sequence":"additional","affiliation":[{"name":"Nanyang Technological University"}]}],"member":"320","published-online":{"date-parts":[[2023,5,26]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"Alibaba. 2022. Fastjson. Retrieved February 9 2023 from https:\/\/github.com\/alibaba\/fastjson."},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2018.2827384"},{"key":"e_1_3_2_4_2","unstructured":"Apache. 2022. Apache HttpComponents. Retrieved February 9 2023 from https:\/\/hc.apache.org."},{"key":"e_1_3_2_5_2","unstructured":"Apache Software Foundation. 2020. Apache Maven Project. Retrieved February 9 2023 from https:\/\/maven.apache.org."},{"key":"e_1_3_2_6_2","unstructured":"Internet Archive. 2020. Heritrix. Retrieved February 9 2023 from https:\/\/github.com\/internetarchive\/heritrix3."},{"key":"e_1_3_2_7_2","unstructured":"https:\/\/github.com\/junkdog\/artemis-odb. 2020 Artemis-odb"},{"key":"e_1_3_2_8_2","unstructured":"ASM Developers. 2020. ASM. Retrieved February 9 2023 from https:\/\/asm.ow2.io."},{"key":"e_1_3_2_9_2","unstructured":"AWS. 2022. AWS SDK for Java. Retrieved February 9 2023 from https:\/\/github.com\/aws\/aws-sdk-java."},{"key":"e_1_3_2_10_2","unstructured":"AWS. 2022. Release: AWS SDK for Java 1.8.0. Retrieved February 9 2023 from https:\/\/aws.amazon.com\/releasenotes\/release-aws-sdk-for-java-1-8-0."},{"key":"e_1_3_2_11_2","first-page":"12","volume-title":"Proceedings of the International Symposium on Software Testing and Analysis","author":"Babi\u0107 Domagoj","year":"2011","unstructured":"Domagoj Babi\u0107, Lorenzo Martignoni, Stephen McCamant, and Dawn Song. 2011. Statically-directed dynamic automated test generation. In Proceedings of the International Symposium on Software Testing and Analysis. 12\u201322."},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409757"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/1176617.1176671"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/2382196.2382284"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-27940-9_9"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380436"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/1291535.1291541"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2018.00080"},{"key":"e_1_3_2_19_2","unstructured":"CompCheck. 2020. CompCheck. Retrieved February 9 2023 from https:\/\/sites.google.com\/view\/compcheck."},{"key":"e_1_3_2_20_2","unstructured":"Dependabot. 2020. Dependabot. Retrieved February 9 2023 from https:\/\/github.com\/dependabot."},{"key":"e_1_3_2_21_2","unstructured":"AWS SDK Developers. 2022. New JodaTime-Based DateUtils Can\u2019t Deserialize Some Dates Saved in DynamoDB by an Older Version of the SDK. Retrieved February 9 2023 from https:\/\/github.com\/aws\/aws-sdk-java\/issues\/233."},{"key":"e_1_3_2_22_2","article-title":"Line #125 of Kryo.java at Version 3.0.3","author":"Developers Kryo","year":"2015","unstructured":"Kryo Developers. 2015. Line #125 of Kryo.java at Version 3.0.3. Retrieved February 9, 2023 from https:\/\/github.com\/EsotericSoftware\/kryo\/blob\/9422c847db584dcddfa614303cd41d57eb76220f\/src\/com\/esotericsoftware\/kryo\/Kryo.java#L125.","journal-title":"https:\/\/github.com\/EsotericSoftware\/kryo\/blob\/9422c847db584dcddfa614303cd41d57eb76220f\/src\/com\/esotericsoftware\/kryo\/Kryo.java#L125."},{"key":"e_1_3_2_23_2","article-title":"Line #141 of Kryo.java at Version 5.0.0-RC4","author":"Developers Kryo","year":"2019","unstructured":"Kryo Developers. 2019. Line #141 of Kryo.java at Version 5.0.0-RC4. Retrieved February 9, 2023 from https:\/\/github.com\/EsotericSoftware\/kryo\/blob\/d729517080d5a6037e6fd4bb953936106228ab43\/src\/com\/esotericsoftware\/kryo\/Kryo.java#L141.","journal-title":"https:\/\/github.com\/EsotericSoftware\/kryo\/blob\/d729517080d5a6037e6fd4bb953936106228ab43\/src\/com\/esotericsoftware\/kryo\/Kryo.java#L141."},{"key":"e_1_3_2_24_2","article-title":"Myth","year":"2020","unstructured":"Dromara. 2020. Myth. Retrieved February 9, 2023 from https:\/\/github.com\/dromara\/myth.","journal-title":"https:\/\/github.com\/dromara\/myth."},{"key":"e_1_3_2_25_2","article-title":"Kryo","year":"2020","unstructured":"EsotericSoftware. 2020. Kryo. Retrieved February 9, 2023 from https:\/\/github.com\/EsotericSoftware\/kryo.","journal-title":"https:\/\/github.com\/EsotericSoftware\/kryo."},{"key":"e_1_3_2_26_2","article-title":"Differential \/ Regression Test Generation","year":"2020","unstructured":"EvoSuite. 2020. Differential \/ Regression Test Generation. Retrieved February 9, 2023 from https:\/\/www.evosuite.org\/evosuiter\/.","journal-title":"https:\/\/www.evosuite.org\/evosuiter\/."},{"key":"e_1_3_2_27_2","volume-title":"EvoSuite Documentation","year":"2020","unstructured":"EvoSuite. 2020. EvoSuite Documentation. Retrieved February 9, 2023 from https:\/\/www.evosuite.org\/documentation\/tutorial-part-1."},{"key":"e_1_3_2_28_2","unstructured":"FasterXML LLC. 2020. Jackson-core. Retrieved February 9 2023 from https:\/\/github.com\/FasterXML\/jackson-core."},{"key":"e_1_3_2_29_2","unstructured":"FasterXML LLC. 2020. Jackson-databind. Retrieved February 9 2023 from https:\/\/github.com\/FasterXML\/jackson-databind."},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/2642937.2642987"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3275535"},{"key":"e_1_3_2_32_2","unstructured":"Apache Software Foundation. 2019. Apache Commons Codec. Retrieved February 9 2023 from https:\/\/commons.apache.org\/proper\/commons-codec."},{"key":"e_1_3_2_33_2","unstructured":"Apache Software Foundation. 2020. Apache HttpClient. Retrieved February 9 2023 from https:\/\/github.com\/apache\/httpcomponents-client."},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/2025113.2025179"},{"key":"e_1_3_2_35_2","article-title":"GitHub","year":"2020","unstructured":"GitHub. 2020. GitHub. Retrieved February 9, 2023 from https:\/\/github.com.","journal-title":"https:\/\/github.com."},{"key":"e_1_3_2_36_2","article-title":"Jackson-databind Version X Should Depend on jackson-annotations Version X","year":"2020","unstructured":"GitHub. 2020. Jackson-databind Version X Should Depend on jackson-annotations Version X. Retrieved February 9, 2023 from https:\/\/github.com\/FasterXML\/jackson-databind\/issues\/135.","journal-title":"https:\/\/github.com\/FasterXML\/jackson-databind\/issues\/135."},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/3395363.3397374"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1002\/stvr.1472"},{"key":"e_1_3_2_39_2","unstructured":"Google. 2020. Guice. Retrieved February 9 2023 from https:\/\/github.com\/google\/guice."},{"key":"e_1_3_2_40_2","unstructured":"Sable Research Group. 2022. Soot. Retrieved February 9 2023 from https:\/\/github.com\/Sable\/soot."},{"key":"e_1_3_2_41_2","unstructured":"https:\/\/kafka.apache.org\/20\/documentation\/streams\/upgrade-guide. 2020 Upgrade Guide and API Changes"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISSRE.2018.00022"},{"key":"e_1_3_2_43_2","unstructured":"HtmlCleaner. 2022. HtmlCleaner. Retrieved February 9 2023 from http:\/\/htmlcleaner.sourceforge.net."},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/503502.503505"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1145\/1831708.1831729"},{"key":"e_1_3_2_46_2","unstructured":"Joda-Time. 2022. Joda-Time. Retrieved February 9 2023 from https:\/\/www.joda.org\/joda-time."},{"key":"e_1_3_2_47_2","unstructured":"Kohsuke Kawaguchi. 2020. Args4j. Retrieved February 9 2023 from https:\/\/github.com\/kohsuke\/args4j."},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/3293882.3330552"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180187"},{"key":"e_1_3_2_50_2","unstructured":"Kryo. 2019. Migration to v5. Retrieved February 9 2023 from https:\/\/github.com\/EsotericSoftware\/kryo\/wiki\/Migration-to-v5."},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-017-9521-5"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/2491411.2491452"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213857"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1145\/3360578"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.49"},{"key":"e_1_3_2_56_2","unstructured":"MVN Repository 2020. Maven Central Repository. Retrieved February 9 2023 from https:\/\/mvnrepository.com\/repos\/central."},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1145\/1985793.1985809"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2012.6227179"},{"key":"e_1_3_2_59_2","first-page":"Article 7, 24 p","volume-title":"Proceedings of the European Conference on Object-Oriented Programming","author":"Mezzetti Gianluca","year":"2018","unstructured":"Gianluca Mezzetti, Anders M\u00f8ller, and Martin Toldam Torp. 2018. Type regression testing to detect breaking changes in Node.js libraries. In Proceedings of the European Conference on Object-Oriented Programming. Article 7, 24 pages."},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1145\/3338906.3338940"},{"key":"e_1_3_2_61_2","unstructured":"MongoDB. 2022. MongoDB Java Drivers. Retrieved February 9 2023 from https:\/\/mongodb.github.io\/mongo-java-driver."},{"key":"e_1_3_2_62_2","doi-asserted-by":"publisher","DOI":"10.1145\/3238147.3238178"},{"key":"e_1_3_2_63_2","doi-asserted-by":"publisher","DOI":"10.1145\/3092703.3092721"},{"key":"e_1_3_2_64_2","doi-asserted-by":"publisher","DOI":"10.1145\/3379597.3387476"},{"key":"e_1_3_2_65_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00089"},{"key":"e_1_3_2_66_2","doi-asserted-by":"crossref","first-page":"49","DOI":"10.1142\/9789812797902_0004","volume-title":"Pattern Recognition and Image Analysis: Selected Papers from the IVth Spanish Symposium","author":"Oncina Jos\u00e9","year":"1992","unstructured":"Jos\u00e9 Oncina and Pedro Garcia. 1992. Inferring regular languages in polynomial updated time. In Pattern Recognition and Image Analysis: Selected Papers from the IVth Spanish Symposium. 49\u201361."},{"key":"e_1_3_2_67_2","unstructured":"Jan Ouwens. 2022. EqualsVerifier. Retrieved February 9 2023 from https:\/\/jqno.nl\/equalsverifier."},{"key":"e_1_3_2_68_2","doi-asserted-by":"publisher","DOI":"10.1145\/1453101.1453131"},{"key":"e_1_3_2_69_2","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993558"},{"key":"e_1_3_2_70_2","article-title":"Versions Maven Plugin","year":"2022","unstructured":"MojoHaus. 2022. Versions Maven Plugin. Retrieved February 9, 2023 from https:\/\/www.mojohaus.org\/versions-maven-plugin.","journal-title":"https:\/\/www.mojohaus.org\/versions-maven-plugin."},{"key":"e_1_3_2_71_2","unstructured":"JVM Profiler. 2020. Uber JVM Profiler. Retrieved February 9 2023 from https:\/\/github.com\/uber-common\/jvm-profiler."},{"key":"e_1_3_2_72_2","unstructured":"Protostuff. 2020. Protostuff-runtime. Retrieved February 9 2023 from https:\/\/github.com\/protostuff\/protostuff\/tree\/master\/protostuff-runtime."},{"key":"e_1_3_2_73_2","unstructured":"Querydsl. 2022. Unified Queries for Java. Retrieved February 9 2023 from http:\/\/querydsl.com."},{"key":"e_1_3_2_74_2","unstructured":"Ron Mamo. 2020. Reflections. Retrieved February 9 2023 from https:\/\/github.com\/ronmamo\/reflections."},{"key":"e_1_3_2_75_2","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1029012"},{"key":"e_1_3_2_76_2","unstructured":"Restlet. 2022. Restlet Framework. Retrieved February 9 2023 from https:\/\/restlet.talend.com."},{"key":"e_1_3_2_77_2","article-title":"Rtree","author":"Moten David","year":"2020","unstructured":"David Moten. 2020. Rtree. Retrieved February 9, 2023 from https:\/\/github.com\/davidmoten\/rtree.","journal-title":"https:\/\/github.com\/davidmoten\/rtree."},{"key":"e_1_3_2_78_2","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884871"},{"key":"e_1_3_2_79_2","article-title":"Rxjava-extras","author":"Moten David","year":"2020","unstructured":"David Moten. 2020. Rxjava-extras. Retrieved February 9, 2023 from https:\/\/github.com\/davidmoten\/rxjava-extras.","journal-title":"https:\/\/github.com\/davidmoten\/rxjava-extras."},{"key":"e_1_3_2_80_2","doi-asserted-by":"publisher","DOI":"10.1109\/SANER.2015.7081812"},{"key":"e_1_3_2_81_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2019.106213"},{"key":"e_1_3_2_82_2","doi-asserted-by":"publisher","DOI":"10.1109\/SANER.2015.7081813"},{"key":"e_1_3_2_83_2","unstructured":"SLF4J. 2022. Simple Logging Facade for Java (SLF4J). Retrieved February 9 2023 from https:\/\/www.slf4j.org."},{"key":"e_1_3_2_84_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME46990.2020.00014"},{"key":"e_1_3_2_85_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2021.3057767"},{"key":"e_1_3_2_86_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10515-011-0084-1"},{"key":"e_1_3_2_87_2","doi-asserted-by":"publisher","DOI":"10.1145\/1287624.1287632"},{"key":"e_1_3_2_88_2","unstructured":"WebMagic. 2022. WebMagic. Retrieved February 9 2023 from https:\/\/webmagic.io\/en."},{"key":"e_1_3_2_89_2","doi-asserted-by":"publisher","DOI":"10.1145\/1806799.1806848"},{"key":"e_1_3_2_90_2","unstructured":"XStream Developers. 2020. XStream. Retrieved February 9 2023 from https:\/\/x-stream.github.io."},{"key":"e_1_3_2_91_2","doi-asserted-by":"publisher","DOI":"10.1002\/stv.430"},{"key":"e_1_3_2_92_2","doi-asserted-by":"publisher","DOI":"10.1145\/2001420.2001463"},{"key":"e_1_3_2_93_2","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180260"},{"key":"e_1_3_2_94_2","doi-asserted-by":"publisher","DOI":"10.1109\/SANER48275.2020.9054800"},{"key":"e_1_3_2_95_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_15"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3582569","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3582569","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:47:16Z","timestamp":1750178836000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3582569"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,5,26]]},"references-count":94,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2023,10,31]]}},"alternative-id":["10.1145\/3582569"],"URL":"https:\/\/doi.org\/10.1145\/3582569","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,5,26]]},"assertion":[{"value":"2021-05-30","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-11-26","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-05-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}