论文部分内容阅读
随着移动设备技术的发展,移动应用,尤其是Android平台的移动应用数量与使用人数随之大幅增加,应用的正确性与可靠性也变得日益关键。作为保障软件正确性与可靠性的主要手段,软件测试在移动应用开发的过程中发挥不可或缺的作用。软件测试根据待测软件执行测试操作时测试人员的介入程度,可以分为手工测试与自动化测试两种。手工测试作为一种以测试员手工执行待测软进行评估的传统测试方法,具有准备时间短、对测试步骤的归纳度高、有较好的适应性、针对性及异常处理能力等优点,但在面对代码行数逐渐增加、版本迭代迅速的软件时,存在测试耗时长、测试效率低、部分可靠性指标无法量化等不足;而作为近年来发展较为迅速的自动化测试,在凭借可并行化执行测试、测试效率高、易于执行回归测试与获取量化指标等优势逐渐主导测试领域的同时,同样存在测试准备周期长、测试路径容易产生冗余、对测试人员有较高的专业性需求、较难对待测软件的某一部分执行针对性的测试等亟需解决的问题。当前,大体量、高使用量、多平台多版本部署的应用正成为主流,但人员匮乏、工期紧张等约束也高频率出现在开发过程中。面对这一情况时,开发人员常会陷入手工测试效果不理想及自动化测试不易使用的困境,难以找到对应用进行快速高效测试的方法,从而导致当前大量应用的正确性与可靠性得不到有效的保障。基于前文所述的情况与需求,本文设计并实现了一种Android平台交互式测试系统,以解决复杂条件下开发人员难以对应用进行快速高效测试的困境。本文的主要工作有:·针对当前大部分自动化测试工具对测试人员专业水平有较高需求的问题,本文引用了手绘等图形方面的交互方法,作为用户表达测试意图的主要方式。本文所述系统在前端构建图形化界面,通过向测试人员展示待测软件截图的方式,引导测试人员通过手绘符号描述其理想的测试路径;在后端根据Robotium测试框架标准,将前端获取的输入转化为可执行的自动化测试脚本。本文将图形交互式的方法引入自动化测试工具中,将极大改善当前主流测试工具易用性差、准备周期长、对用户的专业水平与编码水平有较高要求的缺陷。·针对在表达测试意图时公共测试路径需要反复定义、相似操作需要重复说明等问题,本文所述系统通过引入包含多种逻辑符号的逻辑交互式方法,以增强路径定义语法的表述能力。通过引入的布尔连接符与量词符号,前端可在用户表达测试意图的过程中快速声明类型相同、操作相似以及基于较为复杂的前提及判断条件的测试路径,以放宽对于用户逻辑编程能力的需求,降低表达相似或重复测试路径所花费的时间,在减少测试脚本中冗余代码的同时提高系统的易用性。·另外,针对用户需对组成测试动作的大量参数进行反复定义与输入的不便之处,本文所述系统采用正则式的输入方法,作为文本类型的交互手段。在面对多个参数类型相同、参数格式类似的测试动作,或需要声明包含多个随机参数的单个测试动作时,用户可以通过正则表达式,对参数的样式进行快速的声明与定义,并由本文所述系统对各项具体参数进行生成操作。基于文本交互式的方法,系统可优化用户声明测试意图时输入参数的操作,减少测试的准备时间,从而使易用性与测试效率得到相应的提高。此外,本文所述系统利用手工测试的优势对自动化测试工具进行一定的改进,将指定测试路径的方法与随机生成路径的测试方法相结合,使系统可以在执行用户所指定的测试路径之后,采用随机生成路径方法进行测试操作。这一改进既能使指定测试路径所覆盖的测试范围得到一定的拓宽,同时也能使随机生成路径的测试方法具有一定的灵活性与针对性,从而减少其冗余测试个数、提高其执行效率。通过对上述功能需求的分析与归纳,本文完成了对一个Android平台交互式测试系统的设计与实现,为移动应用开发者、测试人员以及质量保障人员提供一个低门槛、低准备时间、高效率、易操作的交互式测试系统,以帮助其提高移动应用的正确性与可靠性,具有较高的商业应用价值。