基于 RPA的自动化测试研究

(整期优先)网络出版时间:2020-10-12
/ 2

基于 RPA的自动化测试研究

刘娜 姜丹丹

中国电子科技集团公司第二十八研究所 江苏省南京市 210000

摘要:机器人流程自动化(Robotic Process Automation,RPA)是一种智能化软件, 通过模拟并增强人类与计算机的交互过程, 实现工作流程中的自动化。本文介绍了RPA相关技术、RPA与传统自动化测试的差异、基于RPA的自动化测试优势,以及RPA应用的局限性。

关键词:RPA;机器人流程自动化;自动化测试

1引言

随着移动互联网的蓬勃发展,更多的软件企业在追求高速发展,同时还面临着人力成本不断上涨的压力,企业在软件测试过程遵循着按部就班的测试流程,同时又要求不断缩短测试的迭代周期,这两者本身就是个矛盾体。同时越来越贵的人工成本,迫使软件企业寻找更为完美的解决方案。而机器人流程自动化(RPA)的出现给软件自动化测试提供了一种全新的解决方案。RPA可实现快速部署,满足7 X 24小时不间断的自动执行测试用例,会节约了软件企业大量人力成本,极大地提升软件测试效率,缩短整个测试周期,提高软件产品质量。

2 RPA相关介绍

2.1 RPA的定义

RPA全称为:Robotic Process Automation,即机器人流程自动化。RPA是以机器人作为虚拟员工,依据预先设定的程序与现有用户系统进行交互并完成预定的任务。它是一种智能化软件, 通过模拟并增强人类与计算机的交互过程, 实现工作流程中的自动化。通过执行大量结构化的、重复的、基于明确规则的任务,进而重复的自动化执行业务流程。简单来说,RPA就是用软件机器人来代替人工完成特定的工作[1]

2.2 RPA相关术语

Robot:是模仿人类行为动作的实体,被称为RPA机器人,例如模仿人类点击、复制粘贴、填写表单、Excel表格处理、登录网站、打开应用程序、登录业务系统等操作。

Process:是一系列的操作步骤,这些操作步骤最终可以导致某项有意义的活动,例如,登录财务系统并下载财务报表并自动发送指定邮箱,从办公OA系统下载Excel考勤记录表格来计算员工工资。

Automation:是由机器人在没有人为干预的情况下完成的业务流程。

2.3 RPA的技术特点

RPA代替人工以相同的方式与现有系统进行交互,能实现非侵入式快速部署,准确而快速的执行重复性的工作。判断一个企业客户的需求能否通过部署RPA应用来实现,主要从下面三个方面考量[2]

(1)基于明确规则。RPA通过模拟人工操作来执行大量特定规则的任务,因此,RPA适用的前提就是业务流程规则必须是明确的,可转化为数字化的指令或输入来触发。

(2)机器自动化处理。RPA代替人工来处理任务,根据预先设定好的业务流程自动化执行。因此,RPA可以7 X 24对繁琐重复工作不间断的地执行,提高工作效率。

(3)模拟用户操作与系统交互。RPA通过模拟用户操作来实现流程的自动化处理。比如网站的自动打开和搜索,系统的自动登录,EXCEL内容的提取和自动填写表单,OCR识别等。

3 RPA与传统自动化测试工具

3.1传统自动化测试工具

目前国内外主流的自动化测试工具主要有:QTP、Win Runner、RFT、Selenium等,虽然可以提高测试执行效率,提升测试团队的整体水平,但是也存在一些不足:

(1)自动化测试工具操作复杂。目前主流的自动化测试工具,都需要测试人员根据测试案例编写自动化测试脚本,因此测试人员需要熟悉软件系统功能,并且具备一定的代码编写能力。这就对测试人员提出了更高的要求,无形中提高了软件自动化测试工具的使用门槛。

(2)业务流程不清晰明了。自动化测试工具是通过执行一条条的测试用例来检验软件系统的功能特性,但是测试用例是非流程化,可读性不够友好,很难直接清晰明了的展示用例所涉及的业务流程。不同的人执行同一个用例,就需要反复熟悉用例,很难保证测试效率。

(3)自动化测试用例编写成本高。前面提到自动化测试用例的编写需要测试人员具备一定的编码能力,这就造成编写测试用例耗时耗力,软件产品每迭代一次,自动化测试脚本就要随之迭代,因此,自动化测试脚本的可维护性比较差,客观上造成了自动化测试工具的使用效率不高。

3.2 RPA与传统自动化测试之间差异

RPA和传统自动化测试工具是软件自动化测试的两种途径。它们之间既有相似之处,又存在着差异。例如:它们具有类似的技术,都通过驱动鼠标、键盘等来完成操作。现将它们之间的差异总结如表1所示:

表1 自动化测试与RPA差异

参数

自动化测试

RPA

目标

通过自动化测试缩短测试时间

通过流程自动化减少人工操作

任务

自动化执行测试用例

自动化执行业务流程任务

编码

测试人员需要具体一定编码能力

无编码要求,可以通过流程向导或编码实现

平台环境

支持特定的软件环境

无要求,支持各种软件环境

用例

测试用例是自动化的

数据输入、处理、输出是自动化的

应用

测试自动化一般应用在测试、验证环境

RPA一般运行在生产环境

实现

它可以自动化产品

它可以自动化产品和服务

用户

主要是技术人员

利益相关者都可以使用

角色

充当虚拟助手

充当虚拟员工

AI

只能执行脚本所涉及的内容

许多RPA工具都与AI引擎相结合,更加智能化

(1)软件自动化测试主要执行一条条的测试用例。RPA工具通常采用非侵入的方式在多个系统之间完成数据的交互,以此来执行一套完整的业务流程。软件应用或产品更新后,自动化测试脚本也要修改。也就是说随之软件应用或产品的不断迭代,测试脚本也要频繁修改,而RPA由于采用非侵入式的方式,不会改变现有系统架构,也无需与现有系统进行接口对接,一旦部署完成,一般很少修改。

(2)软件自动化测试的脚本一般通过出错截屏的方式来记录错误信息,而RPA工具本身就有异常处理机制,确保流程按照预定规则执行,并且会详细记录流程执行的过程日志和影像数据,方便用户查看。

(3)软件自动化测试主要是通过功能分解和对象识别来完成的,基于对象来操作元素。而RPA由于要跨多个系统或平台进行操作,显然应用对象识别就不现实了,而是采用OCR识别技术来识别屏幕文字和图片文字来实现业务流程。

3.3 RPA在软件自动化测试中的优势

RPA为软件自动化测试提供了一种全新的途径,相比传统自动化测试,RPA在软件自动化测试中的主要优势有:

  1. 图形化的业务流程。由于测试用例即业务流程是以流程图的形式展示出来,因此整个业务流程和各种分支清晰明了,即使非IT技术人员也无阅读障碍,大大降低测试遗漏的风险。

(2)基本无需任何编码。即使是非IT技术人员,通过简单的培训,也可以轻松上手使用RPA来设计测试用例(业务流程)。

(3)测试用例编写效率高。通过图形化的操作和鼠标点击,就可以设计出测试用例,大大缩短了测试用例的设计时间。

(4)软件机器人自动化执行。由软件机器人7 X 24 小时不间断的执行测试用例,节省人力成本,大大提高了测试效率。

4 RPA应用的局限性

通过以上介绍,我们知道了RPA应用有很多优势,但是RPA流程也有一些局限性。

  1. RPA机器人的执行效率受限于应用程序的速度,在自动化应用程序中即使进行的微小改动也需要重新配置RPA机器人。

  2. RPA本身虽然有异常处理机制,但是还不够完善。目前RPA厂商提供的软件在应用执行过程中的异常处理机制不太完善,例如出现系统宕机、业务中断、交易回滚等问题没有一个较好的解决方法,如果某些业务流程有特殊要求,异常处理机制的不完善会带来不好的用户体验。

  3. RPA实施的前提是明确的业务规则。RPA应用能实现快速高效部署,但是这种高效是建立在明确的业务规则基础上的。如果业务规则不明确,那么RPA机器人执行过程中就可能会发生异常。一旦业务流程复杂且规则模糊,RPA机器人是无法完全代替人工完成逻辑判断,就需要人工去干预,这种场景就不适合用RPA技术的。

参考文献:

  1. 机器人流程自动化(RPA)概念、原理与实践[EB/OL].

https://blog.csdn.net/iamdll/article/details/93591656, 2019-06-25.

[2] 田高良.基于RPA技术的财务机器人应用研究[EB/OL].

http://www.sohu.com/a/340088501_120055832, 2019-09-10.

[3]Lim Mei Ying. Robotic Process Automation with Blue Prism Quick Start Guide[M]. Packt Publishing, 2018-11-30.

[4] 程平. RPA财务机器人开发教程—基于UiPath[M]. 电子工业出版社, 2019-11-01.