Page 123 - 《软件学报》2025年第5期
P. 123
郝蕊 等: 基于事件标记的多粒度结合安卓测试序列约减 2023
于其环路很深, 嵌套了 5 层环路, 环路内进行了 7 次搜索才完成约减过程.
上述结果表明 TREC 算法的环路间约减重点作用于扁平结构环路, 去除大部分冗余事件, 而环路内约减则进
一步降低环路深度, 缩短最终序列, 二者相互配合, 对测试序列的有效约减均起到必要作用.
5 总 结
测试序列约减工作对于辅助自动化测试回放以及缺陷理解、修复具有重要意义, 但目前安卓测试序列约减工
作仅仅关注应用界面状态变化, 并且在单一粒度上对程序执行状态进行抽象, 造成其约减结果序列过长或约减效
率低下. 本文提出了基于事件标记的多粒度结合的安卓测试序列约减方法, 对测试序列中触发程序崩溃的关键事
件进行标记, 缩小搜索空间, 并实现了低粒度粗筛选、高粒度细约减的约减策略. 本文工作仅支持确定性崩溃缺
陷, 并且仅支持原测试序列约减, 不支持自主生成更短测试路径以满足不确定性崩溃缺陷复现要求, 此外, 本文工
作虽然涉及不同应用切换、应用内输入等复杂操作与场景, 但支持范围有限, 仍缺乏与系统设置、网络环境改变
有关的崩溃错误的支持, 我们将在未来工作中对其进行探索.
References:
[1] Ceci L. Google Play: Number of available APPs as of Q3 2022. 2023. https://www.statista.com/statistics/289418/number-of-available-
apps-in-the-google-play-store-quarter/
[2] Ceci L. Number of iOS and Google Play APP downloads as of Q1 2023. 2023. https://www.statista.com/statistics/695094/quarterly-
number-of-mobile-app-downloads-store/
[3] Khalid H, Shihab E, Nagappan M, Hassan AE. What do mobile APP users complain about? IEEE Software, 2015, 32(3): 70–77. [doi:
10.1109/MS.2014.50]
[4] Su T, Fan LL, Chen S, Liu Y, Xu LH, Pu GG, Su ZD. Why my APP crashes? Understanding and benchmarking framework-specific
exceptions of Android APPs. IEEE Trans. on Software Engineering, 2022, 48(4): 1115–1137. [doi: 10.1109/TSE.2020.3013438]
[5] Wei LL, Liu YP, Cheung SC. Taming Android fragmentation: Characterizing and detecting compatibility issues for Android APPs. In:
Proc. of the 31st IEEE/ACM Int’l Conf. on Automated Software Engineering. Singapore: ACM, 2016. 226–237. [doi: 10.1145/2970276.
2970312]
[6] Android Developers. UI/application exerciser monkey. 2023. https://developer.android.com/studio/test/monkey
[7] Amalfitano D, Fasolino AR, Tramontana P, De Carmine S, Memon AM. Using GUI ripping for automated testing of Android
applications. In: Proc. of the 27th IEEE/ACM Int'l Conf. on Automated Software Engineering. Essen: ACM, 2012. 258–261. [doi: 10.
1145/2351676.2351717]
[8] Machiry A, Tahiliani R, Naik M. DynoDroid: An input generation system for Android APPs. In: Proc. of the 9th ACM Joint Meeting on
Foundations of Software Engineering. Saint Petersburg: ACM, 2013. 224–234. [doi: 10.1145/2491411.2491450]
[9] Choi W, Necula G, Sen K. Guided GUI testing of Android APPs with minimal restart and approximate learning. ACM SIGPLAN
Notices, 2013, 48(10): 623–640. [doi: 10.1145/2544173.2509552]
[10] Mao K, Harman M, Jia Y. Sapienz: Multi-objective automated testing for Android applications. In: Proc. of the 25th Int’l Symp. on
Software Testing and Analysis. Saarbrücken: ACM, 2016. 94–105. [doi: 10.1145/2931037.2931054]
[11] Su T, Meng GZ, Chen YT, Wu K, Yang WM, Yao Y, Pu GG, Liu Y, Su ZD. Guided, stochastic model-based GUI testing of Android
APPs. In: Proc. of the 11th ACM Joint Meeting on Foundations of Software Engineering. Paderborn: ACM, 2017. 245–256. [doi: 10.1145/
3106237.3106298]
[12] Choudhary SR, Gorla A, Orso A. Automated test input generation for Android: Are we there yet? In: Proc. of the 30th IEEE/ACM Int’l
Conf. on Automated Software Engineering. Lincoln: IEEE, 2015. 429–440. [doi: 10.1109/ASE.2015.89]
[13] Li C, Jiang YY, Xu C. GUI event-based record and replay technologies for Android APPs: A survey. Ruan Jian Xue Bao/Journal of
Software, 2022, 33(5): 1612–1634 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/6551.htm [doi: 10.13328/j.cnki.
jos.006551]
[14] Zhong Y, Shi MY, Fang CR, Zhao ZH, Chen ZY. Towards comprehensive evaluation for Android automated testing tools. Ruan Jian Xue
Bao/Journal of Software, 2023, 34(4): 1630–1649 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/6701.htm [doi: 10.
13328/j.cnki.jos.006701]
[15] Zeller A, Hildebrandt R. Simplifying and isolating failure-inducing input. IEEE Trans. on Software Engineering, 2002, 28(2): 183–200.