Skip to main content
QUICK REVIEW

[论文解读] How do Developers Test Android Applications?

Mario Linares Vasquez, Carlos Bernal-Cárdenas|arXiv (Cornell University)|Jan 19, 2018
Software Testing and Debugging Techniques参考文献 41被引用 9
一句话总结

本研究通过一项针对102名开源Android开发者的调查,探究了其在现实世界中的测试实践,旨在为设计更高效的自动化测试工具提供指导。研究发现,开发者更倾向于使用高层次的、基于用例的测试用例,不信任代码覆盖率作为质量度量标准,并因自动化工具在可重现性和可调试性方面的问题而更偏好手动测试——凸显了研究工具与开发者实际需求之间的关键差距。

ABSTRACT

Enabling fully automated testing of mobile applications has recently become an important topic of study for both researchers and practitioners. A plethora of tools and approaches have been proposed to aid mobile developers both by augmenting manual testing practices and by automating various parts of the testing process. However, current approaches for automated testing fall short in convincing developers about their benefits, leading to a majority of mobile testing being performed manually. With the goal of helping researchers and practitioners - who design approaches supporting mobile testing - to understand developer's needs, we analyzed survey responses from 102 open source contributors to Android projects about their practices when performing testing. The survey focused on questions regarding practices and preferences of developers/testers in-the-wild for (i) designing and generating test cases, (ii) automated testing practices, and (iii) perceptions of quality metrics such as code coverage for determining test quality. Analyzing the information gleaned from this survey, we compile a body of knowledge to help guide researchers and professionals toward tailoring new automated testing approaches to the need of a diverse set of open source developers.

研究动机与目标

  • 理解开源Android开发者的现实世界测试实践与偏好,以指导未来自动化测试工具的开发。
  • 识别尽管研究投入巨大,现有自动化测试工具仍采用率低的原因。
  • 调查开发者对测试质量度量标准(尤其是代码覆盖率)的看法,以及他们偏好的替代指标。
  • 揭示能提高开发者采纳率并融入敏捷工作流的自动化测试工具的关键需求。
  • 为研究人员和实践者提供可操作的见解,使自动化测试方法更契合开发者的实际需求和工作流。

提出的方法

  • 对GitHub上托管的开源Android项目中的102名活跃贡献者进行了调查。
  • 聚焦于三个核心领域:测试用例设计与生成、自动化测试实践,以及对测试质量度量标准的看法。
  • 收集了关于测试用例表示偏好、工具使用模式,以及代码覆盖率和故障检测等评估标准的数据。
  • 通过分析响应,识别开发者工作流、工具偏好以及自动化采纳障碍的趋势。
  • 采用定性与定量分析相结合的方法,提取开发者对自动化测试工具期望的可操作见解。
  • 将研究发现与现有研究进行对比,突出理论工具能力与实际开发者需求之间的差距。

实验结果

研究问题

  • RQ1Android开发者的典型测试用例设计与生成方式在现实世界的开源项目中是怎样的?
  • RQ2开发者在使用Android应用的自动化测试工具时,面临的主要偏好与挑战是什么?
  • RQ3开发者如何看待代码覆盖率作为测试套件质量的衡量标准?他们更倾向于使用哪些替代指标?
  • RQ4自动化测试用例在哪些方面更具可接受性与实用性,尤其是在可重现性和可调试性方面?
  • RQ5自动化测试工具应遵循哪些设计原则,才能更好地契合现实世界的Android开发工作流?

主要发现

  • 超过六成(约64%)的开发者不认为代码覆盖率是测试用例质量的可靠或重要衡量标准,更倾向于使用功能覆盖率或故障检测等指标。
  • 开发者强烈偏好以用例或用户故事为中心的高层次、表达性强的测试用例,表明需要基于模型或使用模型驱动的测试生成方法。
  • 尽管存在自动化工具,手动测试仍占主导地位,原因在于对测试可重现性的担忧、自动化API的脆弱性,以及自动化测试用例中调试支持不足。
  • 广为人知的随机测试工具Android Monkey在受访开发者中的使用率较低,表明尽管其简单,实际采纳率仍有限。
  • 开发者重视与应用同步演进且能无缝集成到敏捷工作流中的测试用例,强调低开销与可维护性。
  • 当前自动化测试研究与实际开发者实践之间存在显著脱节,尤其是在测试用例的表达性、可调试性以及工具集成方面。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。