摘要:针对安卓自动化测试工具生成的崩溃测试序列包含过多冗余事件, 造成测试回放、缺陷理解与修复困难的现状, 很多测试序列约减工作被提出. 但目前工作仅仅关注应用界面状态变化而忽略了程序执行过程中内部状态变化, 此外, 目前工作仅仅在单一抽象粒度上对应用状态进行建模, 例如控件粒度或活动粒度, 导致约减后测试序列过长或约减效率低下. 针对以上问题, 本文提出了基于事件标记的多粒度结合的安卓测试序列约减方法, 结合安卓生命周期管理机制、程序静态数据流分析等对触发程序崩溃的关键事件进行标记, 缩小序列约减空间, 并设计了低粒度粗筛选、高粒度细约减的策略. 最后, 我们收集了包含程序间交互、用户输入等复杂场景的崩溃测试序列集, 在此数据集上与其它测试序列约减工作的对比评估结果也验证了我们方法的有效性.