论文部分内容阅读
随着移动互联网的高速发展,移动客户端日渐普及,同时带来的是移动应用数量的爆炸式增长。在移动应用产品发布之前,往往需要进行大量的重复测试。为了提升测试的效率,自动化测试被广泛使用。在已有的Android应用自动化测试研究中,通过手动查找控件并编写脚本的方式对测试人员的专业性要求过高且效率低下;而在使用录制回放方式的研究中却存在多个问题,通过坐标进行录制回放无法兼容不同分辨率的设备,且无法进行控件属性断言;通过修改源代码获取用户操作的方式无法进行跨应用的测试,使得其通用性较差;在测试脚本中通过控件ID或文本属性操作控件的方式不适用在部分控件ID和属性为空的场景;且已有的研究中只能通过控件文本和图像的比对进行断言验证,形式单一且适用场景较为局限。为了解决上述问题,本文主要工作如下:(1)提出一种基于文字识别和页面布局结构的控件识别方法,用于基于录制回放的黑盒测试中识别操作对应的控件。通过坐标值和控件树中结点的布局范围进行深度优先遍历搜索控件,针对搜索过程中由于页面布局重叠导致识别正确率低的问题,设计了基于文字识别和页面布局的算法。(2)针对通过控件ID或文本属性操作控件的方式不支持其值为空的场景,采用控件路径作为控件标识,可以在不同设备中唯一地定位控件,并支持跨应用测试。在跨设备回放过程中,针对录放设备屏幕分辨率不同导致控件树结构不同的问题,提出一种滑动屏幕重新渲染GUI的方式支持控件自动适应界面。(3)针对基于对比文本及图像的断言验证形式中适用场景受限的问题,设计了多种形式的基于控件树的断言验证方案,在测试过程中自动判断应用程序的运行状态、结果和界面是否正确。包括对控件属性的正则匹配断言、关系运算断言、数据驱动断言,从控件树结构进行的排序断言和对界面图像的断言,多种断言形式结合使用满足多种测试场景。(4)基于本文提出的控件识别和断言验证方法,设计了基于控件路径的An-droid 应用自动化测试方案。为 了验证该方案的正确性和有效性,实现了 Android自动化测试工具CRTT。并使用该工具对多个Android应用进行了自动化测试,通过实验验证了控件识别方法和断言验证方案的正确性。并与现有测试方法进行了对比实验,结果表明本文提出的录制回放测试方法可以更好地支持跨设备。