{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,23]],"date-time":"2026-08-23T16:45:14Z","timestamp":1787503514731,"version":"build-2736575974"},"reference-count":77,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2024,6,4]],"date-time":"2024-06-04T00:00:00Z","timestamp":1717459200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"NSF","award":["CCF-2342355, CCF-1652149, CCF-2403617, CCF-2402103, and CCF-2246186"],"award-info":[{"award-number":["CCF-2342355, CCF-1652149, CCF-2403617, CCF-2402103, and CCF-2246186"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2024,6,30]]},"abstract":"<jats:p>The large demand of mobile devices creates significant concerns about the quality of mobile applications (apps). Developers need to guarantee the quality of mobile apps before it is released to the market. There have been many approaches using different strategies to test the GUI of mobile apps. However, they still need improvement due to their limited effectiveness. In this article, we propose DinoDroid, an approach based on deep Q-networks to automate testing of Android apps. DinoDroid learns a behavior model from a set of existing apps and the learned model can be used to explore and generate tests for new apps. DinoDroid is able to capture the fine-grained details of GUI events (e.g., the content of GUI widgets) and use them as features that are fed into deep neural network, which acts as the agent to guide app exploration. DinoDroid automatically adapts the learned model during the exploration without the need of any modeling strategies or pre-defined rules. We conduct experiments on 64 open-source Android apps. The results showed that DinoDroid outperforms existing Android testing tools in terms of code coverage and bug detection.<\/jats:p>\n                  <jats:p\/>","DOI":"10.1145\/3652150","type":"journal-article","created":{"date-parts":[[2024,3,14]],"date-time":"2024-03-14T08:24:16Z","timestamp":1710404656000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["DinoDroid: Testing Android Apps Using Deep Q-Networks"],"prefix":"10.1145","volume":"33","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9581-2866","authenticated-orcid":false,"given":"Yu","family":"Zhao","sequence":"first","affiliation":[{"name":"University of Cincinnati, Cincinnati, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1301-5928","authenticated-orcid":false,"given":"Brent","family":"Harrison","sequence":"additional","affiliation":[{"name":"University of Kentucky, Lexington, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9461-4251","authenticated-orcid":false,"given":"Tingting","family":"Yu","sequence":"additional","affiliation":[{"name":"University of Connecticut, Storrs, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2024,6,4]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"2013. lockpatterngenerator. Retrieved from https:\/\/github.com\/dharmik\/lockpatterngenerator. Access date 2024."},{"key":"e_1_3_2_3_2","unstructured":"2015. nectroid. Retrieved from https:\/\/github.com\/cknave\/nectroid. Access date: 2024."},{"key":"e_1_3_2_4_2","unstructured":"2021. word2vec. Retrieved from https:\/\/github.com\/dav\/word2vec. Access date: 2024."},{"key":"e_1_3_2_5_2","unstructured":"2022. adam. Retrieved from https:\/\/keras.io\/api\/optimizers\/adam\/. Access date: 2024."},{"key":"e_1_3_2_6_2","unstructured":"2022. Androguard. Retrieved from https:\/\/github.com\/androguard\/androguard. Access date: 2024."},{"key":"e_1_3_2_7_2","unstructured":"2022. Android Activity. Retrieved from https:\/\/developer.android.com\/reference\/android\/app\/Activity. Access date: 2024."},{"key":"e_1_3_2_8_2","unstructured":"2022. Conv1D layer. Retrieved from https:\/\/keras.io\/api\/layers\/convolution_layers\/convolution1d\/. Access date: 2024."},{"key":"e_1_3_2_9_2","unstructured":"2022. Dense layer. Retrieved from https:\/\/keras.io\/api\/layers\/core_layers\/dense\/. Access date: 2024."},{"key":"e_1_3_2_10_2","unstructured":"2022. DinoDroid. Retrieved from https:\/\/github.com\/softwareTesting123\/DinoDroid. Access date: 2024."},{"key":"e_1_3_2_11_2","unstructured":"2022. EMMA. Retrieved from http:\/\/emma.sourceforge.net\/. Access date: 2024."},{"key":"e_1_3_2_12_2","unstructured":"2022. Google Play Data. Retrieved from https:\/\/en.wikipedia.org\/wiki\/Google_Play. Access date: 2024."},{"key":"e_1_3_2_13_2","unstructured":"2022. Keras. Retrieved from https:\/\/keras.io\/. Access date: 2024."},{"key":"e_1_3_2_14_2","unstructured":"2022. UI Automator. Retrieved from https:\/\/developer.android.com\/training\/testing\/other-components\/ui-automator. Access date: 2024."},{"key":"e_1_3_2_15_2","unstructured":"2022. UI\/Application Exerciser Monkey. Retrieved from https:\/\/developer.android.com\/studio\/test\/monkey.html. Access date: 2024."},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/3278186.3278187"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.4018\/IJACI.2019070106"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/2351676.2351717"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2014.55"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/MSP.2017.2743240"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/2509136.2509549"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/2970276.2970313"},{"key":"e_1_3_2_23_2","first-page":"39","article-title":"Principles and practice of explainable machine learning","author":"Belle Vaishak","year":"2021","unstructured":"Vaishak Belle and Ioannis Papantonis. 2021. Principles and practice of explainable machine learning. Frontiers in Big Data (2021), 39.","journal-title":"Frontiers in Big Data"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1073\/pnas.38.8.716"},{"key":"e_1_3_2_25_2","doi-asserted-by":"crossref","first-page":"133","DOI":"10.1145\/3197231.3197243","volume-title":"Proceedings of the International Conference on Mobile Software Engineering and Systems.","author":"Borges Nataniel P.","year":"2018","unstructured":"Nataniel P. Borges, Maria G\u00f3mez, and Andreas Zeller. 2018. Guiding app testing with mined interaction models. In Proceedings of the International Conference on Mobile Software Engineering and Systems.IEEE, 133\u2013143."},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1080\/00031305.1995.10476177"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/2509136.2509552"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.89"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1162\/neco.1993.5.4.613"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/3293882.3330569"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380402"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/ACSOS49614.2020.00038"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.3390\/rs10020299"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/3238147.3238225"},{"key":"e_1_3_2_35_2","first-page":"1462","volume-title":"Proceedings of the International Conference on Machine Learning","author":"Gregor Karol","year":"2015","unstructured":"Karol Gregor, Ivo Danihelka, Alex Graves, Danilo Rezende, and Daan Wierstra. 2015. Draw: A recurrent neural network for image generation. In Proceedings of the International Conference on Machine Learning. 1462\u20131471."},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2017.72"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00042"},{"key":"e_1_3_2_38_2","unstructured":"Luke Harries Rebekah Storan Clarke Timothy Chapman Swamy VPLN Nallamalli Levent Ozgur Shuktika Jain Alex Leung Steve Lim Aaron Dietrich Jos\u00e9 Miguel Hern\u00e1ndez-Lobato and others. 2020. Drift: Deep reinforcement learning for functional software testing. arXiv preprint arXiv:2007.08220 (2020)."},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10732-006-9006-y"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3236055"},{"key":"e_1_3_2_41_2","first-page":"2279","volume-title":"Proceedings of the ICML","author":"Jia Zhihao","year":"2018","unstructured":"Zhihao Jia, Sina Lin, Charles R Qi, and Alex Aiken. 2018. Exploring hidden dimensions in parallelizing convolutional neural networks. In Proceedings of the ICML. 2279\u20132288."},{"key":"e_1_3_2_42_2","unstructured":"Chi Jin Zeyuan Allen-Zhu Sebastien Bubeck and Michael I. Jordan. 2018. Is Q-learning provably efficient? Advances in Neural Information Processing Systems 31 (2018)."},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1109\/BigData.2018.8622396"},{"key":"e_1_3_2_44_2","unstructured":"Y. Chen. 2015. Convolutional neural network for sentence classification. University of Waterloo."},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1002\/stvr.1752"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2018.00020"},{"issue":"1","key":"e_1_3_2_47_2","article-title":"Exploring strategies for training deep neural networks.","volume":"10","author":"Larochelle Hugo","year":"2009","unstructured":"Hugo Larochelle, Yoshua Bengio, J\u00e9r\u00f4me Louradour, and Pascal Lamblin. 2009. Exploring strategies for training deep neural networks. Journal of Machine Learning Research 10, 1 (2009), 1\u201340.","journal-title":"Journal of Machine Learning Research"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1162\/tacl_a_00134"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2019.00104"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2019.00015"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/2491411.2491450"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635896"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1145\/2931037.2931054"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2012.88"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1109\/WCRE.2003.1287256"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","DOI":"10.1038\/nature14236"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2016.34"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.1145\/3395363.3397354"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.3115\/v1\/D14-1162"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1145\/2714064.2660233"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","DOI":"10.1145\/3502868"},{"key":"e_1_3_2_62_2","doi-asserted-by":"publisher","DOI":"10.1145\/3106237.3106298"},{"key":"e_1_3_2_63_2","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468620"},{"key":"e_1_3_2_64_2","doi-asserted-by":"publisher","DOI":"10.1109\/SSCI.2016.7849366"},{"key":"e_1_3_2_65_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24455-1_33"},{"key":"e_1_3_2_66_2","doi-asserted-by":"publisher","DOI":"10.1145\/3278186.3278191"},{"key":"e_1_3_2_67_2","doi-asserted-by":"publisher","DOI":"10.18293\/SEKE2019-080"},{"key":"e_1_3_2_68_2","first-page":"1058","volume-title":"Proceedings of the International Conference on Machine Learning","author":"Wan Li","year":"2013","unstructured":"Li Wan, Matthew Zeiler, Sixin Zhang, Yann Le Cun, and Rob Fergus. 2013. Regularization of neural networks using dropconnect. In Proceedings of the International Conference on Machine Learning. PMLR, 1058\u20131066."},{"key":"e_1_3_2_69_2","doi-asserted-by":"publisher","DOI":"10.1109\/CVPR.2016.251"},{"key":"e_1_3_2_70_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00992698"},{"key":"e_1_3_2_71_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2021.106530"},{"key":"e_1_3_2_72_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPAMI.2023.3275156"},{"key":"e_1_3_2_73_2","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3229500"},{"key":"e_1_3_2_74_2","doi-asserted-by":"publisher","DOI":"10.1109\/QRS.2017.14"},{"key":"e_1_3_2_75_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37057-1_19"},{"key":"e_1_3_2_76_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678778"},{"key":"e_1_3_2_77_2","doi-asserted-by":"publisher","DOI":"10.1145\/3533767.3543292"},{"key":"e_1_3_2_78_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2019.00077"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3652150","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3652150","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T20:03:14Z","timestamp":1750276994000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3652150"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,6,4]]},"references-count":77,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2024,6,30]]}},"alternative-id":["10.1145\/3652150"],"URL":"https:\/\/doi.org\/10.1145\/3652150","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,6,4]]},"assertion":[{"value":"2022-10-19","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-02-20","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-06-04","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}