全国客服热线:4006-880844

APP定制开发移动APP自动化测试技术应用

- 编辑:admin -

近年来, 随着移动互联网技术的飞速发展, 移动APP在人们生活中的应用越来越广泛, 已经成为了企业和人们沟通的重要渠道。企业业务的拓展往往取决于移动APP上业务流程的研发与实现。一般来说, 在整个软件开发中, 测试工作量占30%~40%, 甚至≥50%, 如何高效地进行移动APP软件测试以缩短其研发周期, 如何在保证移动APP的质量和用户体验的前提下, 将其快速地发布给客户已成为企业面临的重要问题。在移动APP测试过程中, 运用自动化测试技术以提高效率、节省时间势在必行。下文


近年来, 随着移动互联网技术的飞速发展, 移动APP在人们生活中的应用越来越广泛, 已经成为了企业和人们沟通的重要渠道。企业业务的拓展往往取决于移动APP上业务流程的研发与实现。一般来说, 在整个软件开发中, 测试工作量占30%~40%, 甚至≥50%, 如何高效地进行移动APP软件测试以缩短其研发周期, 如何在保证移动APP的质量和用户体验的前提下, 将其快速地发布给客户已成为企业面临的重要问题。在移动APP测试过程中, 运用自动化测试技术以提高效率、节省时间势在必行。下文讨论了两种主流的移动APP的自动化测试技术, 并对它们加以比较。
基于被测软件来识别对象的移动APP自动化测试技术
基于被测软件识别对象的移动APP自动化测试技术是指通过在被测软件中查询被测页面元素的属性来识别并验证被测对象的自动化测试技术。测试人员运用编程语言编写自动化测试脚本, 通过程序的执行来判定被测软件中是否存在含有目标属性的页面元素以达到自动化测试的目标。
基于图像识别的移动APP自动化测试技术
基于图像识别的移动APP测试技术是预先获得并保存正确的移动APP屏幕的基准图像, 然后在动态的测试执行过程中, 通过采用先进的图像识别技术, 将被测APP页面图像与基准图像对比并输出测试结果的自动化测试技术。图像识别的过程主要包括数据采集、图像预处理、特征提取、模式识别四个主要过程。数据采集阶段的主要任务是获取被识别图像。由于图像中含有大量的背景噪声, 如光线及电阻、电磁和元器件干扰等内部条件的影响, 需要在图像预处理阶段对输入图像进行处理以消除无关信息, 提取有用信息。在特征提取阶段, 从图像中提取出有利于识别目标图像的属性特征, 如颜色、形状、空间等特征, 为下一步识别打下基础。在模式识别阶段, 对图像的特征信息进行处理和分析, 以对图像进行描述、辨认、分类和解释。在这个阶段, 需要选择合适的模式识别算法, 将待测图像与预先保存的基准图像进行对比, 最后输出识别结果。
基于图像识别的移动APP自动化测试工具如Mobot等, 以机械臂模拟人手, 以高清摄像头拍摄模拟人眼识别, 对被测终端进行操作。测试执行前, 测试人员需要保存大量基准图片, 并且根据手工测试用例绘制自动化测试图形化工作流, 当测试执行时, 工具会根据工作流中的步骤, 用摄像头拍摄捕捉实际的屏幕图像, 然后与预先存储的基准图片对比验证是否匹配;在测试过程中, 通过图像识别技术验证页面元素, 然后机器臂对目标元素进行点击或滑屏等操作来推动测试的进行。
两种自动化测试技术的比较
在实际移动APP项目中应该运用哪种自动化测试技术是企业研发团队经常遇到的问题, 现对两种技术对比如下。
两种自动化测试技术在实际应用中的异同点
在页面文本内容的验证方面, 基于被测软件来识别对象的自动化测试技术是通过被测软件获取到准确的待测页面的文本内容, 然后和测试程序脚本中的预期文本内容作比较, 从而输出验证结果;基于图像识别的移动APP自动化测试技术是通过图像识别来判定待测页面的文本内容是否和基准页面的文本内容一致。由于图像识别算法有一定的误差, 基于被测软件来识别对象的自动化测试技术能够方便准确地获得页面元素的文本信息。所以, 对于文本内容的验证的效果, 基于被测软件来识别对象的自动化测试技术优于基于图像识别的自动化测试技术。
在移动APP页面元素的外观图像以及元素之间的相对位置的验证方面, 基于被测软件来识别对象的自动化测试技术是通过从待测软件中检测是否存在待测元素的id、XPath等属性值来判定待测页面中是否包含目标元素, 因此基于被测软件来识别对象的自动化测试技术只能验证页面元素的存在性, 而不能验证页面元素的图像外观以及元素之间的相对位置的正确性;基于图像识别的移动APP自动化测试技术是通过图像识别技术来判定待测页面的元素是否和基准页面的元素一致, 可以验证页面元素的外观与元素之间的相对位置。因此页面元素外观以及元素之间的相对位置的验证应该选用基于图像识别的自动化测试技术, 而基于被测软件来识别对象的自动化测试技术不能够覆盖此类验证。
在对被测移动终端操作系统的支持方面, 在使用基于被测软件来识别对象自动化测试技术时, 要充分考虑到自动化测试工具是否能够很好地支持待测终端的操作系统, 能否和待测终端的操作系统很好地协同, 以及在不同的操作系统上的配置等。而基于图像识别的自动化测试技术完全模拟人的操作, 不需要考虑移动终端所使用的操作系统, 能够直接支持各种操作系统的移动APP测试。
在长时间的连续测试方面, 由于基于被测软件的自动化测试工具的Server端需要和移动终端之间进行消息的传递, 不间断的测试可能会使得移动终端温度过高而最终导致终端状态失常, 从而影响测试结果准确性和有效性。而基于图像识别的自动化测试完全模拟人的行为, 不和移动终端进行内部的消息交互。所以, 在长时间的连续测试方面, 基于图像识别的自动化测试更可靠。
在对测试人员的要求方面, 从事基于被测软件识别对象的自动化测试人员需要有较强的编程能力, 能够运用编程语言熟练地编写和调试程序以自动化各种测试场景, 解决自动化测试中遇到的各种问题。基于图像识别的自动化测试对测试人员的编程能力没有特别要求, 只要能够根据手工测试用例场景绘制工作流程图即可。
两种自动化测试技术在实际应用中的共同点
当然, 两种自动化测试技术也有很多共同之处。无论使用哪种自动化测试技术, 被自动化的测试都可以反复执行, 执行过程中, 测试人员一般不需要干预, 可以节省时间, 提高工作效率。测试执行完后, 都需要人工查看和分析测试报告。单纯的两种自动化测试技术还都不能够满足需要人体干预的测试场景的自动化测试需求, 比如和移动终端旋转或需要扫描人体指纹的相关测试等, 对于这些测试的自动化, 可以配合使用机器臂旋转手机以及模拟人体指纹技术来实现。