{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,27]],"date-time":"2026-03-27T16:12:53Z","timestamp":1774627973025,"version":"3.50.1"},"reference-count":78,"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"}],"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            Android is a highly fragmented platform with a diverse set of devices and users. To support the deployment of apps in such a heterogeneous setting, Android has introduced\n            <jats:italic>dynamic delivery<\/jats:italic>\n            \u2014a new model of software deployment in which optional, device- or user-specific functionalities of an app, called\n            <jats:italic>Dynamic Feature Modules (DFMs)<\/jats:italic>\n            , can be installed, as needed, after the app\u2019s initial installation. This model of app deployment, however, has exacerbated the challenges of properly testing Android apps. In this article, we first describe the results of an extensive study in which we formalized a defect model representing the various conditions under which DFM installations may fail. We then present\n            <jats:sc>DeltaDroid<\/jats:sc>\n            \u2014a tool aimed at assisting the developers with validating dynamic delivery behavior in their apps by augmenting their existing test suite. Our experimental evaluation using real-world apps corroborates\n            <jats:sc>DeltaDroid<\/jats:sc>\n            \u2019s ability to detect many crashes and unexpected behaviors that the existing automated testing tools cannot reveal.\n          <\/jats:p>","DOI":"10.1145\/3563213","type":"journal-article","created":{"date-parts":[[2022,9,15]],"date-time":"2022-09-15T09:53:45Z","timestamp":1663235625000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["<scp>DeltaDroid<\/scp>\n            : Dynamic Delivery Testing in Android"],"prefix":"10.1145","volume":"32","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0528-6138","authenticated-orcid":false,"given":"Negar","family":"Ghorbani","sequence":"first","affiliation":[{"name":"University of California, Irvine"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0668-8526","authenticated-orcid":false,"given":"Reyhaneh","family":"Jabbarvand","sequence":"additional","affiliation":[{"name":"University of Illinois Urbana-Champaign"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7009-2420","authenticated-orcid":false,"given":"Navid","family":"Salehnamadi","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1696-8783","authenticated-orcid":false,"given":"Joshua","family":"Garcia","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6152-7402","authenticated-orcid":false,"given":"Sam","family":"Malek","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]}],"member":"320","published-online":{"date-parts":[[2023,5,26]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"2017. Project Jigsaw. Retrieved 8 Dec. 2021 from http:\/\/openjdk.java.net\/projects\/jigsaw\/."},{"key":"e_1_3_2_3_2","unstructured":"2018. GitHub googlearchive Issues 1. Retrieved 8 Dec. 2021 from https:\/\/github.com\/googlearchive\/android-dynamic-features\/issues\/1."},{"key":"e_1_3_2_4_2","unstructured":"2018. GitHub googlearchive Issues 2. Retrieved 8 Dec. 2021 from https:\/\/github.com\/googlearchive\/android-dynamic-features\/issues\/2."},{"key":"e_1_3_2_5_2","unstructured":"2019. GitHub googlearchive Issues 36. Retrieved 8 Dec. 2021 from https:\/\/github.com\/googlearchive\/android-dynamic-features\/issues\/36."},{"key":"e_1_3_2_6_2","unstructured":"2019. GitHub googlearchive Issues 41. Retrieved 8 Dec. 2021 from https:\/\/github.com\/googlearchive\/android-dynamic-features\/issues\/41."},{"key":"e_1_3_2_7_2","unstructured":"2019. Network Exceptions in Android. Retrieved 8 Dec. 2021 from https:\/\/developer.android.com\/guide\/topics\/connectivity\/cronet\/reference\/org\/chromium\/net\/NetworkException."},{"key":"e_1_3_2_8_2","unstructured":"2019. Stackoverflow question 56255600. Retrieved 8 Dec. 2021 from https:\/\/stackoverflow.com\/questions\/56255600."},{"key":"e_1_3_2_9_2","unstructured":"2019. Stackoverflow question 56454470. Retrieved 8 Dec. 2021 from https:\/\/stackoverflow.com\/questions\/56454470."},{"key":"e_1_3_2_10_2","unstructured":"2019. Stackoverflow question 58611149. Retrieved 8 Dec. 2021 from https:\/\/stackoverflow.com\/questions\/58611149."},{"key":"e_1_3_2_11_2","unstructured":"2020. About Android App Bundles. Retrieved 8 Dec. 2021 from https:\/\/developer.android.com\/guide\/app-bundle."},{"key":"e_1_3_2_12_2","unstructured":"2020. Android Developers Blog: Recent Android App Bundle improvements and timeline for new apps on Google Play. Retrieved 8 Dec. 2021 from https:\/\/android-developers.googleblog.com\/2020\/08\/recent-android-app-bundle-improvements.html."},{"key":"e_1_3_2_13_2","unstructured":"2020. k-9 Mail App. Retrieved 8 Dec. 2021 from https:\/\/github.com\/EverlastingHopeX\/K-9-Modularization."},{"key":"e_1_3_2_14_2","unstructured":"2020. Stackoverflow question 60181875. Retrieved 8 Dec. 2021 from https:\/\/stackoverflow.com\/questions\/60181875\/."},{"key":"e_1_3_2_15_2","unstructured":"2020. Stackoverflow question 60328502. Retrieved 8 Dec. 2021 from https:\/\/stackoverflow.com\/questions\/60328502."},{"key":"e_1_3_2_16_2","unstructured":"2020. Stackoverflow question 61384372. Retrieved from https:\/\/stackoverflow.com\/questions\/61384372."},{"key":"e_1_3_2_17_2","unstructured":"2020. Stackoverflow question 63100883. Retrieved 8 Dec. 2021 from https:\/\/stackoverflow.com\/questions\/63100883."},{"key":"e_1_3_2_18_2","unstructured":"2020. Storage Exceptions in Android. Retrieved 8 Dec. 2021 from https:\/\/developers.google.com\/android\/reference\/com\/google\/firebase\/storage\/StorageException."},{"key":"e_1_3_2_19_2","unstructured":"2020. UI\/Application Exerciser Monkey. Retrieved 8 Dec. 2021 from https:\/\/developer.android.com\/studio\/test\/monkey."},{"key":"e_1_3_2_20_2","unstructured":"2021. Appium Mobile App Testing Tool. Retrieved 8 Dec. 2021 from http:\/\/appium.io\/."},{"key":"e_1_3_2_21_2","unstructured":"2021. DeltaDroid . Retrieved 8 Dec. 2021 from https:\/\/sites.google.com\/view\/deltadroid\/home."},{"key":"e_1_3_2_22_2","unstructured":"2021. GitHub. Retrieved from https:\/\/github.com."},{"key":"e_1_3_2_23_2","unstructured":"2021. Gradle Build Tool. Retrieved from https:\/\/gradle.org\/."},{"key":"e_1_3_2_24_2","unstructured":"2021. Play Core Library. Retrieved from https:\/\/developer.android.com\/guide\/playcore."},{"key":"e_1_3_2_25_2","unstructured":"2021. Play Feature Delivery. Retrieved from https:\/\/developer.android.com\/guide\/playcore\/dynamic-delivery."},{"key":"e_1_3_2_26_2","unstructured":"2021. Play Feature Delivery - Handle request errors. Retrieved from https:\/\/developer.android.com\/guide\/playcore\/feature-delivery\/on-demand#handle_request_errors."},{"key":"e_1_3_2_27_2","unstructured":"2021. StackOverFlow. Retrieved from https:\/\/stackoverflow.com."},{"key":"e_1_3_2_28_2","unstructured":"2021. UX best practices for on demand delivery. Retrieved from https:\/\/developer.android.com\/guide\/playcore\/feature-delivery\/ux-guidelines#communicate."},{"key":"e_1_3_2_29_2","unstructured":"2022. App Crawler. Retrieved from https:\/\/developer.android.com\/studio\/test\/other-testing-tools\/app-crawler."},{"key":"e_1_3_2_30_2","unstructured":"2022. Thor Issue Repository. Retrieved from https:\/\/github.com\/cs-au-dk\/thor\/issues\/2."},{"key":"e_1_3_2_31_2","unstructured":"2022. TimeMachine Issue Repository. Retrieved from https:\/\/github.com\/DroidTest\/TimeMachine\/issues\/7."},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/2771783.2771786"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSTW.2013.22"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/2393596.2393666"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1109\/TAIC-PART.2006.18"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/3275219.3275238"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.89"},{"key":"e_1_3_2_38_2","first-page":"905","volume-title":"Proceedings of the 2021 36th IEEE\/ACM International Conference on Automated Software Engineering","author":"Daragh Faraz Yazdani Banafshe","year":"2021","unstructured":"Faraz Yazdani Banafshe Daragh and Sam Malek. 2021. Deep GUI: Black-box GUI input generation with deep learning. In Proceedings of the 2021 36th IEEE\/ACM International Conference on Automated Software Engineering. IEEE, 905\u2013916."},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.18293\/SEKE2019-076"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/3053430"},{"key":"e_1_3_2_41_2","volume-title":"Towards the Use of the Readily Available Tests from the Release Pipeline as Performance Tests. Are We There Yet?","author":"Ding Zishuo","year":"2019","unstructured":"Zishuo Ding. 2019. Towards the Use of the Readily Available Tests from the Release Pipeline as Performance Tests. Are We There Yet?Ph. D. Dissertation. Concordia University."},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380402"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2009.5070540"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2017.72"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00042"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2008.56"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/2771783.2771800"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3236055"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00115"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/2483760.2483777"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2014.39"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89363-1_15"},{"key":"e_1_3_2_53_2","first-page":"35","volume-title":"Proceedings of the Cetus Users and Compiler Infastructure Workshop","author":"Lam Patrick","year":"2011","unstructured":"Patrick Lam, Eric Bodden, Ondrej Lhot\u00e1k, and Laurie Hendren. 2011. The soot framework for Java program analysis: A retrospective. In Proceedings of the Cetus Users and Compiler Infastructure Workshop. 35."},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2015.18"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1145\/2491411.2491450"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635896"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1145\/2931037.2931054"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2017.8115614"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1145\/1416563.1416564"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1145\/2642937.2642991"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","DOI":"10.1007\/s11219-020-09503-4"},{"key":"e_1_3_2_62_2","doi-asserted-by":"publisher","DOI":"10.1145\/2393596.2393634"},{"key":"e_1_3_2_63_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2019.03.007"},{"key":"e_1_3_2_64_2","volume-title":"Automatically Generating Complex Test Cases From Simple Ones","author":"Rubinov Konstantin","year":"2013","unstructured":"Konstantin Rubinov. 2013. Automatically Generating Complex Test Cases From Simple Ones. Ph. D. Dissertation. Universit\u00e0 della Svizzera italiana."},{"key":"e_1_3_2_65_2","doi-asserted-by":"publisher","DOI":"10.1145\/3411764.3445455"},{"key":"e_1_3_2_66_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2008.32"},{"key":"e_1_3_2_67_2","doi-asserted-by":"publisher","DOI":"10.1145\/3106237.3106298"},{"key":"e_1_3_2_68_2","doi-asserted-by":"publisher","DOI":"10.1145\/2593735.2593736"},{"key":"e_1_3_2_69_2","doi-asserted-by":"publisher","DOI":"10.1145\/2491627.2491650"},{"key":"e_1_3_2_70_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISSRE.2011.21"},{"key":"e_1_3_2_71_2","doi-asserted-by":"publisher","DOI":"10.1145\/1882291.1882330"},{"key":"e_1_3_2_72_2","doi-asserted-by":"publisher","DOI":"10.1109\/APSEC.2009.29"},{"key":"e_1_3_2_73_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2016.04.016"},{"key":"e_1_3_2_74_2","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2803206"},{"key":"e_1_3_2_75_2","doi-asserted-by":"publisher","DOI":"10.1002\/stv.430"},{"key":"e_1_3_2_76_2","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2803201"},{"key":"e_1_3_2_77_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2018.2861392"},{"key":"e_1_3_2_78_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2013.07.004"},{"key":"e_1_3_2_79_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2017.8115613"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563213","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3563213","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:38:10Z","timestamp":1750178290000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563213"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,5,26]]},"references-count":78,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2023,10,31]]}},"alternative-id":["10.1145\/3563213"],"URL":"https:\/\/doi.org\/10.1145\/3563213","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-12-08","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-07-29","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"}}]}}