移动应用综合分析套件AppInsight
1. 成果简介
本技术集高精度分析、缺陷检测、自动化测试与错误定位于一体,构建了一款面向移动应用的综合分析套件AppInsight。该套件结合代码抽象与建模技术、静态缺陷扫描技术以及分析辅助测试技术(见图1),能够高效检测大规模真实应用中的潜在缺陷,自动生成测试用例以触发代码缺陷,并精准定位错误代码位置,从而帮助开发人员提升移动应用的开发质量。
(1)对于大规模安卓应用程序(APK),AppInsight可以通过字节码静态分析技术精准构建应用的虚拟主函数、函数调用图、组件迁移图等底层数据结构,结合对移动应用框架特性(如回退栈机制)的语义分析,实现安卓应用代码的抽象与建模。基于代码信息提取技术,该套件进一步实现了高精度、高效率的静态缺陷扫描和静态分析辅助的自动化测试。
(2)在静态缺陷扫描方面,AppInsight通过基于摘要构建的流敏感分析和基于轻量级符号执行的路径敏感分析技术,实现了包括资源泄漏、组件误暴露、异步组件误用在内的多种类型的缺陷检测。
(3)在分析辅助的自动化测试方面,AppInsight通过静态分析指导测试调度和测试用例生成等技术,实现了组件参数处理错误、多设备流转冲突等多种类型的缺陷自动测试。
在真实安卓应用中,AppInsight已成功发现大量实际缺陷,并获得开源社区及商业应用开发者的广泛认可。目前,该套件正处于迁移扩展阶段,未来将应用于新一代鸿蒙系统,助力移动应用质量保障。

图1 AppInsight的技术架构图
2. 技术创新点
该成果技术创新主要体现在以下方面。
(1)高效的组件迁移图(CTG)构建技术。面向复杂的真实安卓应用程序,设计了基于上下文敏感的数据流分析和内部组件建模的迁移关系分析方法,提高了复杂场景下组件迁移图构建的准确性,相比于学术界主流分析工具极大地降低了漏报率。构建的组件迁移图有效支撑了高精度的安卓应用组件间缺陷检测和GUI动态测试。
(2)基于程序摘要抽象的流敏感静态缺陷检测技术。设计了基于代码值流图的函数摘要生成策略,并提出基于摘要自底向上传递的缺陷检测方法,在真实应用中找到了多处程序缺陷。
(3)基于轻量级符号执行的路径敏感缺陷检测技术。设计了面向安卓应用的路径敏感分析引擎,并通过轻量级符号执行去除不可达路径,减少了分析中的误报。该引擎支持路径敏感精度的多类型缺陷检测。
(4)静态建模指导的精简测试用例集构建技术。基于组件的外部可访问性和参数规约建模,自适应地调整测试用例生成权重,通过变强度组合测试构建了高效、精简的测试用例集,在开源和真实应用中检出大量程序崩溃。
(5)基于框架与应用代码协同分析的错误定位技术。设计了面向编程框架代码异常抛出行为的摘要,并提出基于摘要中关键参数传递追踪的方法级错误定位方法。相比现有技术,该方法检出的候选错误点数量更少且精度更高。
3. 技术成熟度
该成果当前处于小试阶段(实验室验证)。
4. 可应用领域
该成果可迁移到鸿蒙平台,用于鸿蒙应用等新型移动软件缺陷检测。
5. 联系人
燕季薇,13261537532,yanjiwei@otcaix.iscas.ac.cn
