中文

挖掘Android API使用以生成单元测试用例以定位兼容性问题

软件工程 2022-08-30 v1

摘要

尽管作为最大且最流行的项目之一,官方Android框架仅为其不到30%的API提供了测试用例。如此低的测试用例覆盖率导致了许多兼容性问题,可使应用在特定Android设备上运行时崩溃,对应用及Android生态造成糟糕的用户体验。为缓解此影响,已提出多种方法自动检测此类兼容性问题。遗憾的是,这些方法仅聚焦于检测由签名引发的兼容性问题(即某API在特定Android版本中不存在),而遗留了其他同等重要的兼容性问题类型未解决。本工作中,我们提出一种新型原型工具JUnitTestGen,通过挖掘现有Android API使用来生成单元测试用例以填补此空白。在给定真实世界Android应用中定位Android API使用后,JUnitTestGen执行过程间后向数据流分析以生成最小可执行代码片段(即测试用例)。在数千个真实世界Android应用上的实验结果表明,JUnitTestGen能有效为Android API生成有效单元测试用例。我们表明这些生成的测试用例确实有助于定位兼容性问题,包括涉及语义代码变更的问题。

关键词

引用

@article{arxiv.2208.13417,
  title  = {Mining Android API Usage to Generate Unit Test Cases for Pinpointing Compatibility Issues},
  author = {Xiaoyu Sun and Xiao Chen and Yanjie Zhao and Pei Liu and John Grundy and Li Li},
  journal= {arXiv preprint arXiv:2208.13417},
  year   = {2022}
}

备注

Accepted by The 37th IEEE/ACM International Conference on Automated Software Engineering (ASE'22)