论文部分内容阅读
具有复杂交互界面的移动应用正在变得越来越流行,其所涉及的应用领域也越来越广,移动应用运行的安全性和可靠性也变得越来越重要。软件测试在提高移动应用运行的安全性和可靠性方面扮演着重要角色。在目前已提出的测试解决方案中,生成测试脚本往往是一项费力低效且专业性强的工作。以人工设计测试脚本和录制回放这两种比较常用的手动测试方案为例,前一种方案要求测试者必须具备科学设计测试脚本并按特定测试语言编写测试脚本的能力,专业性要求很强;而后一种方案虽采用更为直观的测试脚本录制回放技术,降低了对测试者的专业性要求,但由于测试者每次只能录制记录一条测试路径,因而对于较庞杂的待测应用而言,测试路径太多将直接导致测试者需要花费大量的时间和精力去做重复的脚本录制工作,整个测试工作也因而变得费力低效。针对这些缺陷,近十多年来学术界提出了多种典型的自动化测试方案。这些方案聚焦于将整个测试过程自动化,不断探索移动应用图形化界面之间的所有测试事件组合,从而自动完成整个测试任务。这些方案虽无需人力介入,但对于一个交互界面多且复杂的现实应用而言,由于其上可触发的测试事件组合数量(测试空间)过大,因此整个自动化测试效率较低,测试也将变得异常耗时。针对这些现有方案的不足,本文为测试者提供了一种既能降低测试成本又能有效提高测试效率的新型测试解决方案。本文设计了一种基于手绘制导的移动应用图形化界面测试生成解决方案。该方案能够通过一种简单直观且具有较强表达能力的手绘语言来帮助测试者轻松表达其测试意图,进而帮助测试者高效完成测试任务。测试者仅需要在待测应用图形化界面上作简单绘制,本文方案就能对其自动识别,并转换成对应的测试模型,以该模型为基础生成相应测试用例,进而完成对应用的自动化测试。为了评估该方案的真实测试效果,本文实现了相应的手绘制导图形化界面测试系统(SGGT),并与业界多种典型的移动应用测试方案作对比,在10个已经被用于移动应用基准用例集的开源的移动应用上进行实验评估,构建了三组对比实验。实验结果显示:我们的测试方案仅需要测试者提供10分钟以下的简单手绘,即可使测试效果得到明显提升,获得更高的测试覆盖率,并有效节省测试运行时间。