论文部分内容阅读
Android系统已被广泛地应用于移动终端平台,通过与应用商城的模式相结合,Android平台上出现了大量的应用程序。应用商城的模式改变了以往程序分发、赢利的模式,极大的丰富了平台应用的多样性。但与此同时,由于目前应用商城缺少严格的程序审查规范,导致应用程序的质量无法保证,现阶段商城中有很多应用程序存在功能缺失、运行崩溃等问题。这些低质量的应用程序不利于Android整个生态链的发展。目前应用商城采用纯手工的方式对开发者提交的应用程序进行功能性测试,验证程序是否实现了所声明的功能。而随着应用程序数量的持续快速增长,这种纯手工的测试方法已经不能满足商城的需求,因此应用商城需要一种自动化的测试方法来检测商城中存在的不合格应用程序。然而由于传统的自动化测试方法无法提取出未知应用程序的功能,因此如何设计和实现一种适合应用商城使用的自动化测试变得尤为重要。本文针对这一技术空缺,提出了一种新型的基于UI的自动化功能测试方法。该方法将应用中的功能转化为具有相似特征的功能界面,采用图像对比的方法来识别功能界面,并通过对应用程序的界面遍历,自动找出应用中所有的功能界面。商城的工作人员只需通过比对提取到的功能界面集合和程序的功能声明,即可判断该应用是否合格。本论文采用自动化测试和多台并行执行的方式,在保证正确性和功能点覆盖率的前提上,极大的提高了商城对应用的审查效率,降低了测试成本。实验数据显示,本文提出的测试方法,对应用程序功能点的覆盖率高达93.8%,对所有应用测试结果的正确性为100%。本文的主要创新和贡献如下:1.本论文提出了一种基于功能界面的自动化UI测试方法,极大地方便了应用商城对其内部应用的测试;2.本论文提出一种采用图像对比来识别程序的功能界面的方法,可以方便地提供给商城工作人员进行功能性审查;3.本论文提出了一种界面图的遍历方法,可以基本实现对应用程序中所有功能点的完全遍历;4.本论文提出了多种优化算法,进一步提高测试的效率和识别精度。数据表明测试效率较现有的纯手工测试提高了3.97倍,识别精度提高了12.5%。通过采用并行执行的方式,测试效率还能进一步提高。