{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,14]],"date-time":"2026-05-14T07:14:21Z","timestamp":1778742861901,"version":"3.51.4"},"reference-count":46,"publisher":"Springer Science and Business Media LLC","issue":"5","license":[{"start":{"date-parts":[[2024,7,26]],"date-time":"2024-07-26T00:00:00Z","timestamp":1721952000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2024,7,26]],"date-time":"2024-07-26T00:00:00Z","timestamp":1721952000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/100010663","name":"H2020 European Research Council","doi-asserted-by":"publisher","award":["949014"],"award-info":[{"award-number":["949014"]}],"id":[{"id":"10.13039\/100010663","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["62172214"],"award-info":[{"award-number":["62172214"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Natural Science Foundation of Jiangsu Province, China","award":["BK20210279"],"award-info":[{"award-number":["BK20210279"]}]},{"name":"Open Project Program of the State Key Labo- ratory of Mathematical Engineering and Advanced Computing","award":["2020A06"],"award-info":[{"award-number":["2020A06"]}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2024,9]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Software development teams generally welcome any effort to expose bugs in their code base. In this work, we build on the hypothesis that mobile apps from the same category (e.g., two web browser apps) may be affected by similar bugs in their evolution process. It is therefore possible to transfer the experience of one historical app to quickly find bugs in its new counterparts. This has been referred to as collaborative bug finding in the literature. Our novelty is that we guide the bug finding process by considering that existing bugs have been hinted within app reviews. Concretely, we design the <jats:sc>BugRMSys<\/jats:sc> approach to recommend bug reports for a target app by matching historical bug reports from apps in the same category with user app reviews of the target app. We experimentally show that this approach enables us to quickly expose and report dozens of bugs for targeted apps such as Brave (web browser app). <jats:sc>BugRMSys<\/jats:sc> \u2019s implementation relies on DistilBERT to produce natural language text embeddings. Our pipeline considers similarities between bug reports and app reviews to identify relevant bugs. We then focus on the app review as well as potential reproduction steps in the historical bug report (from a same-category app) to reproduce the bugs. Overall, after applying <jats:sc>BugRMSys<\/jats:sc> to six popular apps, we were able to identify, reproduce and report 20 new bugs: among these, 9 reports have been already triaged, 6 were confirmed, and 4 have been fixed by official development teams.<\/jats:p>","DOI":"10.1007\/s10664-024-10489-x","type":"journal-article","created":{"date-parts":[[2024,7,26]],"date-time":"2024-07-26T21:02:01Z","timestamp":1722027721000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":5,"title":["App review driven collaborative bug finding"],"prefix":"10.1007","volume":"29","author":[{"given":"Xunzhu","family":"Tang","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8049-3997","authenticated-orcid":false,"given":"Haoye","family":"Tian","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Pingfan","family":"Kong","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Saad","family":"Ezzini","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kui","family":"Liu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xin","family":"Xia","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jacques","family":"Klein","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tegawend\u00e9 F.","family":"Bissyand\u00e9","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2024,7,26]]},"reference":[{"issue":"1","key":"10489_CR1","doi-asserted-by":"publisher","first-page":"e1654","DOI":"10.1002\/stvr.1654","volume":"28","author":"D Amalfitano","year":"2018","unstructured":"Amalfitano D, Riccio V, Paiva AC, Fasolino AR (2018) Why does the orientation change mess up my android application? from gui failures to code faults. Softw Test Verif Rel 28(1):e1654","journal-title":"Softw Test Verif Rel"},{"key":"10489_CR2","doi-asserted-by":"crossref","unstructured":"Bevan J, Werner L, McDowell C (2002) Guidelines for the use of pair programming in a freshman programming class. In: Proceedings 15th conference on software engineering education and training (CSEE &T 2002). IEEE, pp 100\u2013107","DOI":"10.1109\/CSEE.2002.995202"},{"key":"10489_CR3","doi-asserted-by":"crossref","unstructured":"Calcagno C, Distefano D, Dubreil J, Gabi D, Hooimeijer P, Luca M, O\u2019Hearn P, Papakonstantinou I, Purbrick J, Rodriguez D (2015) Moving fast with software verification. In: NASA Formal methods symposium. Springer, pp 3\u201311","DOI":"10.1007\/978-3-319-17524-9_1"},{"key":"10489_CR4","unstructured":"Cames K, II-Grants AA (2006) Recommendation. City"},{"key":"10489_CR5","unstructured":"Devlin J, Chang MW, Lee K, Toutanova K (2018) Bert: pre-training of deep bidirectional transformers for language understanding. arXiv:1810.04805"},{"key":"10489_CR6","doi-asserted-by":"crossref","unstructured":"Fan L, Su T, Chen S, Meng G, Liu Y, Xu L, Pu G, Su Z (2018) Large-scale analysis of framework-specific exceptions in android apps. In: 2018 IEEE\/ACM 40th international conference on software engineering (ICSE). IEEE, pp 408\u2013419","DOI":"10.1145\/3180155.3180222"},{"key":"10489_CR7","doi-asserted-by":"crossref","unstructured":"Gao C, Zeng J, Xia X, Lo D, Lyu MR, King I (2019) Automating app review response generation. In: 2019 34th IEEE\/ACM international conference on automated software engineering (ASE). IEEE, pp 163\u2013175","DOI":"10.1109\/ASE.2019.00025"},{"key":"10489_CR8","doi-asserted-by":"crossref","unstructured":"Ghosh J, Strehl A (2006) Similarity-based text clustering: a comparative study. In: Grouping multidimensional data. Springer, pp 73\u201397","DOI":"10.1007\/3-540-28349-8_3"},{"key":"10489_CR9","doi-asserted-by":"publisher","first-page":"26","DOI":"10.1016\/j.procs.2013.05.005","volume":"17","author":"E Haddi","year":"2013","unstructured":"Haddi E, Liu X, Shi Y (2013) The role of text pre-processing in sentiment analysis. Procedia Comput Sci 17:26\u201332","journal-title":"Procedia Comput Sci"},{"key":"10489_CR10","doi-asserted-by":"crossref","unstructured":"Haering M, Stanik C, Maalej W (2021) Automatically matching bug reports with related app reviews. In: 2021 IEEE\/ACM 43rd international conference on software engineering (ICSE). IEEE, pp 970\u2013981","DOI":"10.1109\/ICSE43902.2021.00092"},{"key":"10489_CR11","doi-asserted-by":"publisher","first-page":"268","DOI":"10.1016\/j.jss.2019.06.100","volume":"156","author":"X Han","year":"2019","unstructured":"Han X, Carroll D, Yu T (2019) Reproducing performance bug reports in server applications: the researchers\u2019 experiences. J Syst Softw 156:268\u2013282","journal-title":"J Syst Softw"},{"issue":"3","key":"10489_CR12","doi-asserted-by":"publisher","first-page":"1275","DOI":"10.1007\/s10664-017-9538-9","volume":"23","author":"S Hassan","year":"2018","unstructured":"Hassan S, Tantithamthavorn C, Bezemer CP, Hassan AE (2018) Studying the dialogue between users and developers of free apps in the google play store. Empir Softw Eng 23(3):1275\u20131312","journal-title":"Empir Softw Eng"},{"key":"10489_CR13","doi-asserted-by":"crossref","unstructured":"Hu G, Yuan X, Tang Y, Yang J (2014) Efficiently, effectively detecting mobile app bugs with appdoctor. In: Proceedings of the ninth European conference on computer systems, pp 1\u201315","DOI":"10.1145\/2592798.2592813"},{"key":"10489_CR14","doi-asserted-by":"crossref","unstructured":"Jiang H, Yang H, Qin S, Su Z, Zhang J, Yan J (2017) Detecting energy bugs in android apps using static analysis. In: International conference on formal engineering methods. Springer, pp 192\u2013208","DOI":"10.1007\/978-3-319-68690-5_12"},{"key":"10489_CR15","doi-asserted-by":"crossref","unstructured":"Lee S, Dolby J, Ryu S (2016) Hybridroid: static analysis framework for android hybrid applications. In: 2016 31st IEEE\/ACM international conference on automated software engineering (ASE). IEEE, pp 250\u2013261","DOI":"10.1145\/2970276.2970368"},{"key":"10489_CR16","doi-asserted-by":"crossref","unstructured":"Li H, Fang C, Wei Z, Chen Z (2019) Cocotest: collaborative crowdsourced testing for android applications. In: Proceedings of the 28th ACM SIGSOFT international symposium on software testing and analysis, pp 390\u2013393","DOI":"10.1145\/3293882.3339000"},{"key":"10489_CR17","doi-asserted-by":"crossref","unstructured":"Liu Z, Chen C, Wang J, Huang Y, Hu J, Wang Q (2022) Guided bug crush: assist manual gui testing of android apps via hint moves. arXiv:2201.12085","DOI":"10.1145\/3491102.3501903"},{"key":"10489_CR18","doi-asserted-by":"crossref","unstructured":"Li H, Zhang L, Zhang L, Shen J (2010) A user satisfaction analysis approach for software evolution. In: 2010 IEEE international conference on progress in informatics and computing, vol 2. IEEE, pp 1093\u20131097","DOI":"10.1109\/PIC.2010.5687999"},{"key":"10489_CR19","doi-asserted-by":"crossref","unstructured":"Long T, Yoon I, Memon A, Porter A, Sussman A (2014) Enabling collaborative testing across shared software components. In: Proceedings of the 17th international ACM Sigsoft symposium on Component-based software engineering, pp 55\u201364","DOI":"10.1145\/2602458.2602468"},{"key":"10489_CR20","doi-asserted-by":"crossref","unstructured":"Long T, Yoon I, Porter A, Memon A, Sussman A (2016) Coordinated collaborative testing of shared software components. In: 2016 IEEE international conference on software testing, verification and validation (ICST). IEEE, pp 364\u2013374","DOI":"10.1109\/ICST.2016.38"},{"key":"10489_CR21","doi-asserted-by":"crossref","unstructured":"Loper E, Bird S (2002) Nltk: the natural language toolkit. arXiv preprint cs\/0205028","DOI":"10.3115\/1118108.1118117"},{"issue":"3","key":"10489_CR22","doi-asserted-by":"publisher","first-page":"311","DOI":"10.1007\/s00766-016-0251-9","volume":"21","author":"W Maalej","year":"2016","unstructured":"Maalej W, Kurtanovi\u0107 Z, Nabil H, Stanik C (2016) On the automatic classification of app reviews. Requirements Eng 21(3):311\u2013331","journal-title":"Requirements Eng"},{"issue":"4","key":"10489_CR23","doi-asserted-by":"publisher","first-page":"285","DOI":"10.3727\/109830510X12670455864203","volume":"11","author":"T Mahmood","year":"2009","unstructured":"Mahmood T, Ricci F, Venturini A (2009) Improving recommendation effectiveness: adapting a dialogue strategy in online travel planning. Inf Technol Tour 11(4):285\u2013302","journal-title":"Inf Technol Tour"},{"key":"10489_CR24","doi-asserted-by":"crossref","unstructured":"Mao K, Harman M, Jia Y (2017) Crowd intelligence enhances automated mobile testing. In: 2017 32nd IEEE\/ACM international conference on automated software engineering (ASE). IEEE, pp 16\u201326","DOI":"10.1109\/ASE.2017.8115614"},{"key":"10489_CR25","doi-asserted-by":"crossref","unstructured":"Martens D, Maalej W (2019) Extracting and analyzing context information in user-support conversations on twitter. In: 2019 IEEE 27th international requirements engineering conference (RE). IEEE, pp 131\u2013141","DOI":"10.1109\/RE.2019.00024"},{"issue":"3","key":"10489_CR26","doi-asserted-by":"publisher","first-page":"1346","DOI":"10.1007\/s10664-015-9388-2","volume":"21","author":"S McIlroy","year":"2016","unstructured":"McIlroy S, Ali N, Hassan AE (2016) Fresh apps: an empirical study of frequently-updated mobile apps in the google play store. Empir Softw Eng 21(3):1346\u20131370","journal-title":"Empir Softw Eng"},{"key":"10489_CR27","doi-asserted-by":"crossref","unstructured":"Oh J, Kim D, Lee U, Lee JG, Song J (2013) Facilitating developer-user interactions with mobile app review digests. In: CHI\u201913 extended abstracts on human factors in computing systems, pp 1809\u20131814","DOI":"10.1145\/2468356.2468681"},{"key":"10489_CR28","doi-asserted-by":"publisher","unstructured":"Poerner N, Waltinger U, Sch\u00fctze H (2020) E-BERT: efficient-yet-effective entity embeddings for BERT. In: Findings of the association for computational linguistics: EMNLP 2020, pp 803\u2013818. Association for Computational Linguistics, Online. https:\/\/doi.org\/10.18653\/v1\/2020.findings-emnlp.71. https:\/\/aclanthology.org\/2020.findings-emnlp.71","DOI":"10.18653\/v1\/2020.findings-emnlp.71"},{"key":"10489_CR29","unstructured":"Sanh V, Debut L, Chaumond J, Wolf T (2019) Distilbert, a distilled version of bert: smaller, faster, cheaper and lighter. arXiv:1910.01108"},{"key":"10489_CR30","unstructured":"Sefferman A (2015) Survey on user ratings and reviews. https:\/\/www.apptentive.com\/blog\/2020\/02\/04\/mobile-app-ratings-and-reviews\/. Accessed 2015"},{"key":"10489_CR31","doi-asserted-by":"crossref","unstructured":"Shani G, Gunawardana A (2011) Evaluating recommendation systems. In: Recommender systems handbook. Springer, pp 257\u2013297","DOI":"10.1007\/978-0-387-85820-3_8"},{"key":"10489_CR32","doi-asserted-by":"crossref","unstructured":"Sitikhu P, Pahi K, Thapa P, Shakya S (2019) A comparison of semantic similarity methods for maximum human interpretability. In: 2019 artificial intelligence for transforming business and society (AITB), vol 1. IEEE, pp 1\u20134","DOI":"10.1109\/AITB48515.2019.8947433"},{"key":"10489_CR33","doi-asserted-by":"crossref","unstructured":"Stanik C, Haering M, Maalej W (2019) Classifying multilingual user feedback using traditional machine learning and deep learning. In: 2019 IEEE 27th international requirements engineering conference workshops (REW). IEEE, pp 220\u2013226","DOI":"10.1109\/REW.2019.00046"},{"key":"10489_CR34","unstructured":"Su T, Fan L, Chen S, Liu Y, Xu L, Pu G, Su Z (2020) Why my app crashes understanding and benchmarking framework-specific exceptions of android apps. IEEE Trans Softw Eng"},{"key":"10489_CR35","doi-asserted-by":"crossref","unstructured":"Sun C, Lo D, Khoo SC, Jiang J (2011) Towards more accurate retrieval of duplicate bug reports. In: 2011 26th IEEE\/ACM international conference on automated software engineering (ASE 2011). IEEE, pp 253\u2013262","DOI":"10.1109\/ASE.2011.6100061"},{"key":"10489_CR36","doi-asserted-by":"crossref","unstructured":"Sun J, Su T, Li J, Dong Z, Pu G, Xie T, Su Z (2021) Understanding and finding system setting-related defects in android apps. In: Proceedings of the 30th ACM SIGSOFT international symposium on software testing and analysis, pp 204\u2013215","DOI":"10.1145\/3460319.3464806"},{"key":"10489_CR37","doi-asserted-by":"crossref","unstructured":"Talukder MAI, Shahriar H, Qian K, Rahman M, Ahamed S, Wu F, Agu E (2019) Droidpatrol: a static analysis plugin for secure mobile software development. In: 2019 IEEE 43rd annual computer software and applications conference (COMPSAC), vol 1. IEEE, pp 565\u2013569","DOI":"10.1109\/COMPSAC.2019.00087"},{"key":"10489_CR38","doi-asserted-by":"crossref","unstructured":"Tan SH, Li Z (2020) Collaborative bug finding for android apps. In: Proceedings of the ACM\/IEEE 42nd international conference on software engineering, pp 1335\u20131347","DOI":"10.1145\/3377811.3380349"},{"key":"10489_CR39","unstructured":"Van Der Veen V, Bos H, Rossow C (2013) Dynamic analysis of android malware. Internet & Web Technology Master thesis, VU University Amsterdam"},{"key":"10489_CR40","doi-asserted-by":"crossref","unstructured":"Wang X, Zhang L, Xie T, Anvik J, Sun J (2008) An approach to detecting duplicate bug reports using natural language and execution information. In: Proceedings of the 30th international conference on Software engineering, pp 461\u2013470","DOI":"10.1145\/1368088.1368151"},{"issue":"1","key":"10489_CR41","doi-asserted-by":"publisher","first-page":"45","DOI":"10.1177\/016555159201800106","volume":"18","author":"WJ Wilbur","year":"1992","unstructured":"Wilbur WJ, Sirotkin K (1992) The automatic identification of stop words. J Inf Sci 18(1):45\u201355","journal-title":"J Inf Sci"},{"key":"10489_CR42","doi-asserted-by":"crossref","unstructured":"Wooditch A, Johnson NJ, Solymosi R, Ariza JM, Langton S (2021) Getting to know your data. In: A beginner\u2019s guide to statistics for criminology and criminal justice using R. Springer, pp 21\u201338","DOI":"10.1007\/978-3-030-50625-4_2"},{"key":"10489_CR43","doi-asserted-by":"crossref","unstructured":"Yang X, Lo D, Xia X, Bao L, Sun J (2016) Combining word embedding with information retrieval to recommend similar bug reports. In: 2016 IEEE 27Th international symposium on software reliability engineering (ISSRE). IEEE, pp 127\u2013137","DOI":"10.1109\/ISSRE.2016.33"},{"key":"10489_CR44","doi-asserted-by":"crossref","unstructured":"Ye X, Bunescu R, Liu C (2014) Learning to rank relevant files for bug reports using domain knowledge. In: Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering, pp 689\u2013699","DOI":"10.1145\/2635868.2635874"},{"key":"10489_CR45","doi-asserted-by":"crossref","unstructured":"Zhou J, Zhang H, Lo D (2012) Where should the bugs be fixed? more accurate information retrieval-based bug localization based on bug reports. In: 2012 34th International conference on software engineering (ICSE). IEEE, pp 14\u201324","DOI":"10.1109\/ICSE.2012.6227210"},{"issue":"5","key":"10489_CR46","doi-asserted-by":"publisher","first-page":"618","DOI":"10.1109\/TSE.2010.63","volume":"36","author":"T Zimmermann","year":"2010","unstructured":"Zimmermann T, Premraj R, Bettenburg N, Just S, Schroter A, Weiss C (2010) What makes a good bug report? IEEE Trans Software Eng 36(5):618\u2013643","journal-title":"IEEE Trans Software Eng"}],"updated-by":[{"DOI":"10.1007\/s10664-024-10586-x","type":"correction","label":"Correction","source":"publisher","updated":{"date-parts":[[2024,12,10]],"date-time":"2024-12-10T00:00:00Z","timestamp":1733788800000}}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-024-10489-x.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-024-10489-x\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-024-10489-x.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,12,10]],"date-time":"2024-12-10T07:26:53Z","timestamp":1733815613000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-024-10489-x"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,7,26]]},"references-count":46,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2024,9]]}},"alternative-id":["10489"],"URL":"https:\/\/doi.org\/10.1007\/s10664-024-10489-x","relation":{"correction":[{"id-type":"doi","id":"10.1007\/s10664-024-10586-x","asserted-by":"object"}]},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,7,26]]},"assertion":[{"value":"28 March 2024","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"26 July 2024","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"10 December 2024","order":3,"name":"change_date","label":"Change Date","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"Correction","order":4,"name":"change_type","label":"Change Type","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"A Correction to this paper has been published:","order":5,"name":"change_details","label":"Change Details","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"https:\/\/doi.org\/10.1007\/s10664-024-10586-x","URL":"https:\/\/doi.org\/10.1007\/s10664-024-10586-x","order":6,"name":"change_details","label":"Change Details","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare that they have no conflict of interest.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of Interest"}}],"article-number":"124"}}