机器人流程开发与测试
(一)RPA开发
RPA的开发过程依据SDD的设计成果,在整体架构设计的要求下,一步步将业务流程转化为自动化脚本、自动化程序、表达式等。对于SDD中不能清晰表达的业务操作过程,开发人员需要参照PDD或是邀请业务分析师沟通具体细节,以明确告知开发人员每个步骤的业务目的和处理方式。
开发过程中,开发人员经常遇到流程分析过程中所没有考虑到的情况,例如UI界面的元素抓取不到或自动化操作不成功,这需要RPA开发人员转换思路,换其他技术手段来实现自动化处理。这些技术手段通常与RPA程序运行的稳定性有关,我们需要使用那些稳定性更高的技术。按照自动化程序运行稳定性排序,由强到弱依次为捕捉界面控件、快捷键操作、界面图像比对、界面坐标定位。如果各种自动化技术手段都无法解决技术障碍,那么就需要与该项目的负责人沟通,寻求业务层面的解决方案。
基于最佳实践,开发人员可以采取循序渐进、多次迭代的方式来实现RPA的开发,这也符合敏捷开发的指导思想。
第一步,搭建整个RPA程序框架。编写代码前,先开发主辅程序的调用方式、配置文件的读取方式、预处理、中间处理、后续处理等环节,并预留异常处理和程序补偿机制的处理环节。
第二步,以流程中某个业务实例的正常处理过程为基础来开发RPA程序。将业务数据以常量方式表达,这样可以快速发现流程中需要的自动化技术和存在的技术障碍,便于寻找解决方案。
第三步,当该业务实例的处理流程实现自动化运行之后,按照业务处理要求,再在RPA中加入必要的循环处理、分支处理,并将原来的程序中的业务数据常量转换为参数变量。这样,多个业务流程就可以实现自动化处理了。
第四步,在满足了正常情况的自动化处理之后,开发人员需要在RPA程序中增加必要的日志记录和异常处理环节。异常处理需要覆盖可能出现的业务异常情况和系统异常情况,并设计相应的RPA容错补偿机制。这样,当机器人重启后,不会影响之前的操作成果。虽然这些异常在实际运行中很少出现,但在RPA开发中却要花费大量的时间去设计以保障整体流程的稳定性。
第五步,当RPA程序开发完成之后,开发人员就需要为未来可能存在的横向扩展、环境变量等定义配置文件,将程序中的部分参数改为读取配置文件的方式,为下一步最终用户的UAT测试做准备。
RPA的开发过程和单元测试过程几乎融合在一起,一边开发一边测试,开发完成,基本单元测试也就完成了。RPA开发人员需要准备一定规模的样本数据对自己编写的RPA流程进行测试。所准备的样本数据应尽可能贴近真实的业务数据,而且具备可逆性或可重复性,避免数据提交后无法重现之前的业务操作,导致无法利用RPA技术,并反复地进行测试。最后开发人员完成一定规模的样本测试之后,就可以执行最终用户的UAT测试了。
(二)UAT
RPA项目的UAT(User Acceptance Test)阶段是指业务人员对RPA运行程序的功能进行测试验证,只有在业务部门确认其流程运行结果符合业务要求且运行稳定后,RPA才能上线,这点在RPA项目中尤为重要。如果RPA上线后,其运行结果与人工处理的结果无法保持一致,必然会带来灾难性的后果。
本质上用户测试与开发人员的单元测试过程是相似的,即给出一些真实的业务数据样例,让RPA来操作运行,由业务人员校验运行结果是否满足业务要求。虽然是一种黑盒测试方式,但在测试数据中必须要同时考虑正例和反例的存在,以保障机器人运行的可靠性。(https://www.daowen.com)
对于测试人员来说,需要学习新的RPA知识,并转换原来的思维方式。因为测试人员不能按照传统的业务流程要求和处理过程来测试这个新的自动化流程,新的自动化流程替代了全部或部分原来的手工操作过程,必然给业务人员的传统认知带来挑战。所以,测试人员必须与RPA设计和开发人员一起提前了解整个新的自动化流程,如机器人是如何触发启动、中间是否需要人工干预等环节;当发生异常时,业务人员如何再次接管工作,或者再次启动机器人等,不能只检查机器人处理后的最终数据结果是否正确。
RPA的UAT阶段通常分如下几个步骤:
1.测试准入审核
判断前期的设计和开发工作是否完成,文档和代码是否齐全。
2.准备测试数据
测试数据作为提供给机器人的输入数据,用于测试自动化处理过程。测试数据包括一些正常的数据、异常的数据,以及可能出现分支处理情况的业务数据。
3.编写测试案例
定义该案例的测试目的、输入数据和预期的处理结果。
4.执行测试
依据测试案例,执行测试,检查测试结果是否符合预期的要求。
5.测试验收
认同通过RPA自动化处理过程和结果,将该流程部署到生产环境。
UAT测试可以让一线的业务人员真正感受到机器人的处理方式,对未来RPA上线后的运行效率的提升和人机协作方式的改进都会有帮助。