首页> 中国专利> 用于分析机器人流程自动化(RPA)的测试自动化工作流程的系统和计算机实现的方法

用于分析机器人流程自动化(RPA)的测试自动化工作流程的系统和计算机实现的方法

摘要

本文公开了一种用于分析与机器人流程自动化(RPA)应用相关联的测试自动化的工作流程的系统和计算机实现的方法。计算机实现的方法包括:接收与RPA应用相关联的测试自动化的工作流程,并且经由与工作流程分析器模块相关联的人工智能(AI)模型,基于预定义测试自动化规则集来分析测试自动化的工作流程。该计算机实现的方法还包括:确定与已分析的测试自动化的工作流程相关联的一个或多个指标,并且经由AI模型,基于所确定的一个或多个指标来生成校正活动数据。

著录项

  • 公开/公告号CN114830156A

    专利类型发明专利

  • 公开/公告日2022-07-29

    原文格式PDF

  • 申请/专利权人 尤帕斯公司;

    申请/专利号CN202080088351.6

  • 申请日2020-12-14

  • 分类号G06Q10/06;G06Q10/10;G06F11/36;G06N3/08;G06N20/00;

  • 代理机构北京市金杜律师事务所;

  • 代理人李兴斌

  • 地址 美国纽约州

  • 入库时间 2023-06-19 16:08:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-29

    公开

    国际专利申请公布

说明书

本申请要求2020年10月28日提交的申请号为17/082561的美国非临时申请的权利,该申请是2020年7月17日提交的、名称为“用于分析机器人流程自动化(RPA)工作流程的系统和计算机实现的方法”、申请号为16/931917的美国非临时专利申请的部分继续申请并且要求其优先权,申请号为16/931917的美国非临时专利申请要求2019年12月20日提交的申请号为201911053188的印度专利申请的优先权,这些文献的全部内容通过引用并入本文。

技术领域

本发明总体上涉及机器人流程自动化(RPA),更具体地涉及分析针对RPA的测试自动化工作流程。

背景技术

通常,RPA允许将手动用户输入到计算系统的简单自动化和重复任务的自动化。手动用户输入现在越来越多地由使用RPA工具的软件机器人来执行。RPA促进了软件自动化的普及,因为它可以执行企业内大量存在的相对简单的、可重复的任务。目前,可以使用RPA工具帮助软件开发人员设计、执行、部署和测试企业的简单任务和重复任务。例如,这些任务是使用设计器工具设计的,并且使用部署工具进行部署。存在着若干设计器工具(诸如软件工具)可以为RPA应用中的简单任务和重复任务来设计工作流程。此外,存在着若干软件工具可以通过使用测试自动化来测试此类RPA应用。

然而,这些软件工具缺乏分析用于标识和去除测试自动化中的潜在缺陷的工作流程。例如,开发人员在软件工具中开发测试自动化。已开发的测试自动化被转发给测试团队进行标识。测试团队稍后因这些缺陷退回。这需要对测试自动化进行手动测试,这是一个耗时且昂贵的过程。此外,实时调试测试自动化工作流程中的缺陷以避免运行时的缺陷更具挑战性。

因此,需要允许开发人员设计RPA应用的测试自动化的工作流程并且在设计阶段调试测试自动化的工作流程中的缺陷的软件工具。

发明内容

本发明的某些实施例为本领域中尚未被当前RPA技术完全标识、理解或解决的问题和需求提供了解决方案。例如,本发明的一些实施例属于对RPA应用的测试自动化的工作流程的分析,以用于标识和去除潜在的缺陷或错误。

在实施例中,公开了用于分析与机器人流程自动化(RPA)应用相关联的测试自动化的工作流程的计算机实现的方法。该计算机实现的方法包括接收与RPA应用相关联的测试自动化的工作流程。该计算机实现的方法包括经由与工作流程分析器模块相关联的AI模型,基于预定义测试自动化规则集来分析测试自动化的工作流程。该计算机实现的方法还包括确定与已分析的测试自动化的工作流程相关联的一个或多个指标。该计算机实现的方法还包括经由AI模型,基于所确定的一个或多个指标来生成校正活动数据。

在另一实施例中,公开了用于分析与机器人流程自动化(RPA)应用相关联的测试自动化的工作流程的系统。该系统包括至少一个处理器和存储指令的存储器。指令被配置为使至少一个处理器来接收与RPA应用相关联的测试自动化的工作流程,并且经由与工作流程分析器模块相关联的AI模型,基于预定义测试自动化规则集来分析测试自动化的工作流程。计算机程序指令还被配置为使至少一个处理器确定与已分析的测试自动化的工作流程相关联的一个或多个指标,并且经由AI模型,基于所确定的一个或多个指标来生成校正活动数据。

在又一实施例中,体现在非暂态计算机可读介质上的计算机程序。该程序被配置为使至少一个或多个处理器接收与RPA应用相关联的测试自动化的工作流程,并且经由与工作流程分析器模块相关联的AI模型分析,基于预定义测试自动化规则集来分析测试自动化的工作流程。该程序还被配置为使一个或多个处理器确定与已分析的测试自动化相关联的一个或多个指标,并且经由AI模型,基于所确定的一个或多个指标来生成校正活动数据。

附图说明

为了容易理解本发明的某些实施例的优点,将通过参考附图中所图示的特定实施例来提供对上文简要描述的本发明的更具体描述。虽然应该理解这些附图仅描绘了本发明的典型实施例并且因此不应被认为是对其范围的限制,但是将通过使用附图以附加的特定性和细节来描述和解释本发明,其中:

图1是图示根据本发明实施例的RPA系统的架构图。

图2是图示根据本发明实施例的已部署的RPA系统的架构图。

图3是图示根据本发明实施例的设计器、活动和驱动程序之间的关系的架构图。

图4是图示根据本发明实施例的另一RPA系统的架构图。

图5是图示根据本发明实施例的被配置为分析与RPA应用相关联的测试自动化的工作流程的计算系统的架构图。

图6是图示根据本发明实施例的工作流程分析器模块的架构图。

图7是图示根据本发明实施例的描绘预定义测试自动化规则集的表示的框图。

图8是图示根据本发明实施例的用于分析测试自动化的工作流程的示例性用户界面的图形用户界面(GUI)。

图9是图示根据本发明实施例的用于分析与RPA应用相关联的测试自动化的工作流程的过程的流程图。

图10是图示根据本发明实施例的设计器面板的GUI。

图11是图示根据本发明实施例的用于连续更新包含预训练规则集的数据库的系统的工作流程图。

具体实施方式

一些实施例涉及系统(以下称为“计算系统”),该系统被配置为分析与RPA应用相关联的测试自动化的工作流程,以用于标识和去除RPA的测试自动化工作流程(也称为“测试自动化的工作流程”)中的潜在缺陷。在一些实施例中,计算系统从设计模块接收测试自动化的工作流程,并且分析接收到的工作流程以用于标识和去除缺陷。例如,计算系统使用人工智能(AI)模型来基于预定义测试自动化规则集以分析工作流程。利用标准测试自动化的工作流程、工作流程中所有可能的错误以及标准机器人企业框架文档来对AI模型进行预训练。在一些示例实施例中,标准RPA工作流程或任何RPA工作流程被转换为测试用例或作为测试用例从测试自动化项目中被导入以用于训练AI模型。从已分析的测试自动化的工作流程中,确定一个或多个指标以生成校正活动数据。

在一些实施例中,AI模型基于一个或多个所确定的指标来生成校正活动数据。校正活动数据被用于对已分析的测试自动化的工作流程来执行校正活动。校正活动数据包括建议消息(例如,断言)或指导用户(例如,开发人员或测试人员)如何对已分析的工作流程执行来校正活动的详细信息。与接收到的测试自动化工作流程相比,修改后的测试自动化文件被配置为具有改进的执行时间和存储要求。此外,执行时间和存储要求的改进减少了计算系统上的计算开销。以这种方式,使用本文所公开的计算系统和计算机实现的方法,分析测试自动化的工作流程以在部署之前调试缺陷。

图1是图示根据本发明实施例的RPA系统100的架构图。RPA系统100包括允许开发人员或用户来设计和实现工作流程的设计器110。设计器110提供用于应用集成以及将第三方应用、管理信息技术(IT)任务和业务IT过程进行自动化的解决方案。设计器110促进自动化项目的开发,自动化项目是业务过程的图形表示。简而言之,设计器110促进了工作流程和机器人的开发和部署。

自动化项目通过让开发人员控制执行顺序并且控制在工作流程中开发的自定义步骤集之间的关系(在本文中被定义为“活动”)来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是UiPath Studio

一些类型的工作流程包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列特别适用于线性过程,实现了从一个活动流向另一个活动,而不会弄乱测试自动化的工作流程。流程图特别适用于更复杂的业务逻辑,通过多个分支逻辑算子以更多样化的方式实现了决策的集成和活动的连接。FSM特别适用于大型工作流程。FSM在其执行中使用有限数目的状态,这些状态由条件(即转变)或活动来触发。全局异常处理程序特别适用于在遇到执行错误时确定工作流程行为以及调试过程。

一旦在设计器110中开发了工作流程,业务过程的执行由编排器(conductor)120来组织,编排器120组织一个或多个机器人130,机器人130执行在设计器110中开发的工作流程。编排器120的实施例的一个商业示例是UiPath Orchestrator

编排器120管理一组机器人130,从集中点连接和执行机器人130。被管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但被用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但被用于开发和测试目的)。有人值守机器人132由用户事件触发,并在同一计算系统上与人一起操作。有人值守机器人132与编排器120一起被用于集中式过程部署和日志记录介质。有人值守机器人132帮助人类用户完成各种任务,并且由用户事件触发。在一些实施例中,过程不是从这种类型的机器人上的编排器120开始的和/或它们不是在锁定屏幕下运行的。在某些实施例中,有人值守机器人132从机器人托盘或从命令提示符开始。在一些实施例中,有人值守机器人132在人类监督下运行。

无人值守机器人134在虚拟环境中无人值守地运行并且使许多过程自动化。无人值守机器人134负责远程执行、监控、调度以及为工作队列提供支持。在一些实施例中,针对所有机器人类型的调试在设计器110中运行。有人值守机器人132和无人值守机器人134二者都使各种系统和应用自动化,包括但不限于大型机、网络应用、虚拟机(VM)、企业应用(例如,由

编排器120具有各种能力,包括但不限于供应、部署、配置、排队、监控、日志记录和/或提供互连性。供应包括创建和维护机器人130和编排器120之间的连接(例如,网络应用)。部署包括确保将包版本正确交付到所指派的机器人130以供执行。配置包括机器人环境和过程配置的维护和交付。排队包括对队列和队列项进行管理。监控包括跟踪机器人标识数据并且维护用户权限。日志记录包括将日志存储和索引到数据库(例如SQL数据库)和/或其他存储机制(例如

机器人130包括运行在设计器110中构建的工作流程的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath Robots

在一些实施例中,以用户模式安装机器人130。对于这样的机器人130,这意味着它们具有与安装了给定机器人130的用户相同的权利。该特征也对高密度(HD)机器人可用,这确保充分利用每台机器的最大潜力。在一些实施例中,在HD环境中配置任何类型的机器人130。

在一些实施例中,机器人130被拆分成若干组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监控

在一些实施例中,用户模式机器人服务管理和监控

执行器在

如上文所解释,拆分机器人130的组件帮助开发人员、支持用户和计算系统更容易地运行、标识和跟踪每个组件正在执行什么。以该方式为每组件配置特殊行为,诸如为执行器和服务设置不同的防火墙规则。在一些实施例中,执行器总是知道每监控器的DPI设置。结果,无论在其上创建工作流程的计算系统的配置如何,都可以在任何DPI上执行工作流程。在一些实施例中,来自设计器110的项目也独立于浏览器缩放等级。对于不知道DPI或故意被标记为不知道的应用,在一些实施例中禁用DPI。

图2是图示根据本发明实施例的部署的RPA系统200的架构图。在一些实施例中,RPA系统200是或不是图1的RPA系统100的部分。应当注意,在不偏离本发明的范围的情况下,客户端侧、服务器侧或两者都包括任何期望数目的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216(例如,设计器110)。然而,在一些实施例中,设计器216不在机器人应用210上运行。执行器212正在运行过程。若干业务项目(即执行器212)同时运行,如图2中所示。在该实施例中,代理214(例如,

在一些实施例中,机器人表示机器名称和用户名之间的关联。机器人同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如,

代理214还负责发送机器人的状态(例如,周期性地发送指示机器人仍在运行的“心跳”消息)并且下载要执行的所需版本的包。在一些实施例中,代理214和编排器230之间的通信总是由代理214发起。在通知场景中,代理214打开WebSocket通道,其稍后由编排器230用来向机器人发送命令(例如,启动、停止等)。

在服务器侧,包括呈现层(网络应用232、开放数据协议(OData)表示状态传递(REST)应用编程接口(API)端点234,以及通知和监控API 236)、服务层(API实现/业务逻辑238)和持久层(数据库服务器240和索引器服务器250)。编排器230包括网络应用232、ODataREST API端点234、通知和监控API 236、以及API实现/业务逻辑238。在一些实施例中,用户在编排器220的界面中执行的大多数动作(例如,经由浏览器220)通过调用各种API来执行。在不偏离本发明的范围的情况下,此类动作包括但不限于在机器人上启动作业、在队列中添加/移除数据、调度作业以无人值守地运行等等。网络应用232是服务器平台的可视层。在该实施例中,网络应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,在不偏离本发明的范围的情况下,可以使用任何期望的标记语言、脚本语言或任何其他格式。在该实施例中,用户经由浏览器220来与来自网络应用232的网页进行交互,以便执行各种动作来控制编排器230。例如,用户创建机器人群组、将包指派给机器人、分析每机器人和/或每过程的日志、启动和停止机器人等。

除了网络应用232之外,编排器230还包括暴露OData REST API端点234的服务层。然而,在不偏离本发明的范围的情况下,可以包括其他端点。REST API由网络应用232和代理214两者使用。代理214在该实施例中是客户端计算机上的一个或多个机器人的监督者。

该实施例中的REST API涵盖配置、日志记录、监控和排队功能性。在一些实施例中,配置端点被用来定义和配置应用用户、权限、机器人、资产、发布和环境。记录REST端点被用来日志记录不同的信息,例如,诸如错误、机器人发送的显式消息以及其他环境特定的信息。如果在编排器230中使用启动作业命令,则由机器人使用部署REST端点来查询应当被执行的包版本。排队REST端点负责对队列和队列项进行管理,诸如将数据添加到队列、获得来自队列中的事务、设置事务的状态等。

监控REST端点监控网络应用232和代理214。通知和监控API236与REST端点相关联,这些REST端点被用于注册代理214、向代理214递送配置设置、以及用于发送/接收来自服务器和代理214的通知。在一些实施例中,通知和监控API 236还使用WebSocket通信。

在该实施例中,持久层包括服务器对——数据库服务器240(例如,SQL服务器)和索引器服务器250。在该实施例中,数据库服务器240存储机器人、机器人群组、关联的过程、用户、角色、时间表等等的配置。在一些实施例中,通过网络应用232对该信息进行管理。数据库服务器240对队列和队列项进行管理。在一些实施例中,数据库服务器240存储由机器人进行日志记录的消息(除了索引器服务器250之外或代替索引器服务器250)。

索引器服务器250在一些实施例中是可选的,其存储和索引由机器人进行日志记录的信息。在某些实施例中,通过配置设置来禁用索引器服务器250。在一些实施例中,索引器服务器250使用作为开源项目全文搜索引擎的

图3是图示根据本发明实施例的设计器310、用户定义的活动320、用户界面(UI)自动化活动330和驱动程序340之间的关系300的架构图。根据上文,开发人员使用设计器310来开发由机器人执行的工作流程。根据一些实施例,设计器310是集成开发环境(IDE)的设计模块,其允许用户或开发人员执行与工作流程相关的一个或多个功能性。功能性包括工作流程的编辑、编码、调试、浏览、保存、修改等等。在一些示例实施例中,设计器310促进分析工作流程。此外,在一些实施例中,设计器310被配置为诸如在多窗口用户界面中比较两个或更多工作流程。工作流程包括用户定义的活动320和UI自动化活动330。一些实施例能够标识图像中的非文本视觉组件,这在本文中被称为计算机视觉(CV)。与此类组件有关的一些CV活动包括但不限于单击、键入、获取文本、悬停、元素存在、刷新范围、突出显示等。在一些实施例中,单击例如使用CV、光学字符标识(OCR)、模糊文本匹配和多锚点等等来标识元素,然后点击它。键入使用上述方式来来标识元素并且在元素中进行键入。获取文本标识特定文本的位置并且使用OCR对其进行扫描。悬停标识元素并且悬停在其上方。元素存在使用上述技术来检查屏幕上是否存在元素。在一些实施例中,在设计器310中实现了数百甚至数千个活动。然而,在不偏离本发明的范围的情况下,任何数目和/或类型的活动都是可用的。

UI自动化活动330是特殊的、较低等级的活动的子集,其以较低等级的代码(例如,CV活动)来编写并且促进与屏幕的交互。在一些实施例中,UI自动化活动330包括与调试工作流程中的缺陷或校正工作流程中缺陷相关的活动。UI自动化活动330经由允许机器人与期望软件进行交互的驱动器340来促进这些交互。例如,驱动程序340包括操作系统(OS)驱动程序342、浏览器驱动程序344、VM驱动程序346、企业应用驱动程序348等等。

驱动程序340在低等级与OS驱动程序342交互以寻找钩子、监控密钥等。它们促进与

图4是图示根据本发明实施例的RPA系统400的架构图。在一些实施例中,RPA系统400包括图1和/或图2的RPA系统100和/或200。RPA系统400包括多个客户端计算系统410(例如,运行机器人)。在一些实施例中,多个客户端计算系统410被配置为分析工作流程。此外,所分析的工作流程被部署在多个客户端计算系统410中。计算系统410经由在其上运行的网络应用而与编排器计算系统420通信。编排器计算系统420继而又与数据库服务器430(例如,数据库服务器240)和可选的索引器服务器440(例如,可选的索引器服务器250)通信。

关于图1和图3,应当注意,虽然在这些实施例中使用了网络应用,但是在不偏离本发明的范围的情况下,任何合适的客户端/服务器软件可被使用。例如,编排器运行服务器侧应用,其与客户端计算系统上的非基于网络的客户端软件应用进行通信。

图5是图示根据本发明的实施例被配置为分析与RPA应用相关联的测试自动化的工作流程的计算系统500的架构图。在一些实施例中,计算系统500包括在本文中描绘和/或描述的计算系统中的一个或多个计算系统。计算系统500包括总线510或用于传送信息的其他通信机制,以及耦合到总线510以用于处理信息的(多个)处理器520。(多个)处理器520包括任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任何组合。(多个)处理器520还具有多个处理核心,并且至少一些核心被配置为执行特定功能。在一些实施例中使用多并行处理。在某些实施例中,(多个)处理器520中的至少一个处理器是神经形态电路,其包括模拟生物神经元的处理元件。在一些实施例中,神经形态电路不需要冯诺依曼计算架构的典型组件。

计算系统500还包括存储器530,用于存储要由(多个)处理器520执行的信息和指令。存储器530包括如下任意组合:随机存取存储器(RAM)、只读存储器(ROM)、闪存、高速缓存、诸如磁盘或光盘之类的静态存储、或任何其他类型的非暂态计算机可读介质或它们的组合。非暂态计算机可读介质是由(多个)处理器520可访问的任何可用介质,并且包括易失性介质、非易失性介质或两者。介质还包括可移动的、不可移动的或两者兼有。

此外,计算系统500包括诸如收发器之类的通信设备540,以经由无线和/或有线连接来提供对通信网络的访问。在一些实施例中,在不偏离本发明的范围的情况下,通信设备540被配置为使用频分多址(FDMA)、单载波FDMA(SC-FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动系统(GSM)通信、通用分组无线业务(GPRS)、通用移动电信系统(UMTS)、cdma2000、宽带CDMA(W-CDMA)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、高速分组接入(HSPA)、长期演进(LTE)、高级LTE(LTE-A)、802.11x、Wi-Fi、Zigbee、超宽带(UWB)、802.16x、802.15、家庭节点B(HnB)、蓝牙、射频识别(RFID)、红外数据协会(IrDA)、近场通信(NFC)、第五代(5G)、新无线电(NR)、其任何组合、和/或任何其他当前存在或未来实现的通信标准和/或协议。在一些实施例中,在不偏离本发明的范围的情况下,通信设备540包括一个或多个天线,这些天线是单一的、阵列的、相控的、切换的、波束成形的、波束控制的、它们的组合、和/或任何其他天线配置。

(多个)处理器520还经由总线510耦合到显示器550,诸如等离子显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED))、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性基板显示器、投影显示器、4K显示器、高清显示器、

诸如计算机鼠标、触摸板等等之类的键盘560和光标控制设备570还被耦合到总线510,以使得用户能够与计算系统交互。然而,在某些实施例中,不存在物理键盘和鼠标,并且用户仅通过显示器550和/或触摸板(未示出)来与设备交互。输入设备的任何类型和组合都可以被用作设计选择。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户经由与之通信的另一计算系统来与计算系统500远程交互,或者计算系统500自主地进行操作。

存储器530存储软件模块,该软件模块在由(多个)处理器520执行时提供功能性。该模块包括针对计算系统500的操作系统532。该模块还包括工作流程分析器模块534,其被配置为执行本文所描述的所有或一部分过程或其衍生物。计算系统500还包括一个或多个包括附加功能性的附加功能模块536。在一些实施例中,工作流程分析器模块534被配置为分析为软件应用所创建的测试自动化。工作流程分析器模块534还被配置为验证所有活动的配置、检查丢失的数据、不正确的数据等等。

本领域技术人员将了解,在不偏离本发明范围的情况下,“系统”可以被体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算系统或任何其他合适的计算设备或设备组合。将上述功能呈现为由“系统”执行并且不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文公开的方法、系统和装置以与包括云计算系统在内的计算技术相一致的本地化和分布式形式来实现。

应当注意,本说明书中描述的一些系统特征已经被呈现为模块,以便更特别地强调它们的实现独立性。例如,模块被实现为硬件电路,包括定制的超大规模集成(VLSI)电路或门阵列、现成的半导体,诸如逻辑芯片、晶体管或其他分立元件。模块也在可编程硬件设备中被实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等等。

模块也至少部分地以软件来实现以供各种类型的处理器执行。例如,一个已标识的可执行代码单元包括一个或多个物理或逻辑计算机指令块,这些指令例如被组织为对象、过程或功能。然而,已标识的模块的可执行文件不必在物理上被放置在一起,而是可以包括被存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,就构成了该模块并且实现针对该模块的既定目的。此外,模块被存储在计算机可读介质上,在不偏离本发明的范围的情况下,计算机可读介质例如是硬盘驱动器、闪存设备、RAM、磁带和/或任何其他被用来存储数据的此类非暂态计算机可读介质。

实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至分布在若干不同的代码段上、不同的程序之间以及跨若干存储器设备。类似地,操作数据在本文中在模块内被标识和图示,并且以任何合适的形式来体现并且被组织在任何合适类型的数据结构内。操作数据被收集为单个数据集,或者分布在不同的位置上(包括不同的存储设备),并且至少部分地仅作为系统或网络上的电子信号而存在。

图6是图示根据本发明实施例的工作流程分析器模块600的架构图。在一些实施例中,工作流程分析器模块600与图5中所图示的工作流程分析器模块534相似或相同。此外,在一些实施例中,工作流程分析器模块600体现在设计器110内。工作流程分析器模块600包括数据搜集子模块610、分析器子模块620和指标确定模块630,它们由(多个)处理器520执行以执行它们的特定功能性,从而分析与RPA应用相关联的测试自动化的工作流程。

数据搜集子模块610从设计器110接收测试自动化的工作流程作为数据文件。数据文件包括但不限于解决方案设计文档(SDD)、流程设计指令(PDI)、对象设计指令(ODI)或业务流程(BP)代码。例如,用户或开发人员使用设计器110来开发测试自动化的工作流程的数据文件。在一些实施例中,数据搜集子模块610接收测试自动化的工作流程作为测试用例集的组合。测试用例包括输入、执行条件、测试过程和预期结果的规范,这些定义了为实现特定软件测试目标而要执行的单个测试,诸如执行特定程序路径或验证是否符合特定要求。

在某些实施例中,数据搜集子模块610向用户提供启用选项。例如,当用户启用启用选项时,数据搜集子模块610获得RPA应用的测试自动化工作流程的一个或多个测试活动(即,序列)(例如,来自用户的实时数据)。进一步地,由数据搜集子模块610获得的测试自动化工作流程或测试自动化工作流程的序列也由分析子模块620使用。

在一些实施例中,分析器子模块620包括训练子模块622、人工智能(AI)模型(以下称为“AI模型”)624和测试自动化规则子模块626。分析器子模块620分析测试自动化的工作流程用于输出已分析的测试自动化的工作流程。在一些实施例中,分析器子模块620使用AI模型624来分析接收到的测试自动化的工作流程。

在一些实施例中,AI模型624对应于分析接收到的测试自动化的工作流程的预训练AI模型。在一些实施例中,基于训练数据来对AI模型624进行预训练。在一些示例实施例中,训练数据被存储在训练子模块622中。训练数据包括标准测试自动化工作流程、测试自动化工作流程中的错误和标准框架文档中的至少一个。训练数据还包括测试自动化工作流程内的序列,以及与测试自动化工作流程相关联的所有可能缺陷(以及解决缺陷的解决方案)。在一些示例实施例中,训练数据基于先前对网络和移动应用的功能测试、用户界面的视觉测试以及UI元素位置和自动更正元素选择器。在一些实施例中,缺陷包括人为错误,诸如用于测试自动化的错误数据输入或在测试自动化中丢失的数据输入。在另一个示例中,AI模型624使用训练数据的知识来预测与测试自动化工作流程相关联的缺陷,并且输出已分析的测试自动化的工作流程(也被称为“已分析的测试自动化工作流程”)。已分析的测试自动化工作流程包括测试自动化的工作流程和相应的预测的缺陷信息。

在一些实施例中,AI模型624包括ML模型,诸如循环神经网络模型(例如,长短期记忆(LSTM)模型)等等。此外,在某些实施例中,ML模型是自我训练的。例如,对机器学习模型进行训练,以学习测试自动化工作流程中的一个或多个模式。一个或多个模式对应于先前的测试自动化的工作流程中的循环测试。ML模型向AI模型624提供一个或多个模式,以用于分析与RPA应用相关联的测试自动化的工作流程。在一些示例实施例中,ML模型是存储在存储器530中的预构建的ML模型。在一些备选实施例中,ML模型由用户定制或从开放平台(例如,开源社区)、第三方组织等访问。例如,当测试自动化的工作流程在运行时出现缺陷时,ML模型会学习该缺陷,然后学习解决该缺陷的方法。

在某些实施例中,AI模型624使用测试自动化规则子模块626来分析接收到的工作流程。在一些实施例中,测试自动化规则子模块626包括用于分析工作流程的预定义测试自动化指令集(称为“预定义测试自动化规则集”)。这些预定义测试自动化规则集包括预定义数目的循环、预定义数目的条件、结构化设计、至少一个验证点、一个或多个注释、全局异常处理程序以及一个或多个条件。全局异常处理程序与意外环境问题相关联。预定义测试自动化规则集中的每个都与测试自动化的工作流程的测试用例集中的每个相关联。

在一些实施例中,利用预定义数目的循环和预定义数目的条件来验证测试用例集中的每个测试用例的测试结果可以随着时间被比较。循环的示例包括“while loop”、“dowhile”、“For each loop”等等。此外,条件对应于“if condition”、“switch condition”等等。在一些实施例中,结构设计包括具有“Given”、“When and Then”部分的行为驱动开发(BDD)测试设计结构。在一些实施例中,测试用例集中的每个测试用例包括至少一个验证点。

在一些实施例中,预定义测试自动化规则集的一个或多个条件与在整个测试用例中多次检查相似序列的使用相关联。此类序列被提取到单独的可重用工作流程或库中。为此,分析器子模块620利用该条件将测试用例集中的一个或多个测试用例的一个或多个冗余序列提取到用于分析测试自动化的工作流程的单独的可重用库中。例如,在测试自动化的工作流程中用于检查模块的功能性的被冗余使用的测试用例的两个序列被提取为用于分析测试自动化的工作流程的可重用库。可重用性增加了用于分析测试自动化的工作流程的测试用例的可维护性。因此,以有效且可行的方式来分析针对RPA应用(诸如桌面应用)的测试自动化的工作流程。

应当理解,测试自动化规则子模块626针对测试自动化的工作流程执行预定义测试自动化规则集中的每个规则,以输出已分析的测试自动化的工作流程。在不偏离实施例的范围的情况下,上述规则还分别包括一个或多个附加规则和一个或多个附加类别。已分析的工作流程包括测试自动化的工作流程和包括上述规则有效性的报告。在一些实施例中,测试自动化规则子模块626向用户提供选择选项以从预定义测试自动化规则集中选择一个或多个规则。另外,测试自动化规则子模块626针对测试自动化的工作流程执行所选择的一个或多个规则,以输出已分析的测试自动化的工作流程。

根据一些实施例,已分析的测试自动化的工作流程被提供给工作流程分析器模块600的指标确定性子模块630。指标确定性子模块630确定与用于生成校正活动数据的已分析的测试自动化的工作流程相关联的一个或多个指标。在一些示例实施例中,校正活动数据被存储在校正模块(图6中未示出)中。校正活动数据被用于执行已分析的测试自动化的工作流程的校正活动。

根据一些实施例,工作流程分析器模块600还包括一个或多个附加模块,例如校正模块(未示出)。校正模块使用由指标确定模块630确定的一个或多个指标来执行一个或多个校正活动。在一些示例实施例中,校正活动包括:向用户提供关于测试自动化的工作流程或活动的更好可能性的反馈,生成关于与测试自动化的工作流程相关联的一个或多个指标的报告,生成在发布时或编译时与测试自动化的工作流程相关联的警告消息或错误消息,或输出与测试自动化的工作流程中的错误活动相对应的活动编号和活动名称。此外,反馈还允许用户处理异常、验证数据和路由AI模型(例如,AI模型624)以进行再训练,这提供了对AI模型624的持续改进。

在一些实施例中,校正模块向用户提供关于测试自动化的工作流程的更好可能性的反馈。根据一些示例实施例,反馈包括修改后的测试自动化的工作流程或用于修改已分析的测试自动化的工作流程的建议消息。建议消息包括用于修改测试自动化的工作流程的断言或任何其他信息。

根据一些实施例,反馈由AI模型624提供。例如,使用最佳实践文档和框架(例如,机器人企业框架)对AI模型进行训练以构建针对RPA应用的高质量测试自动化工作流程。在一些实施例中,校正模块生成关于与已分析的测试自动化的工作流程相关联的指标的报告。在一些实施例中,所生成的关于指标的报告以百分比来指示。在某些实施例中,校正模块生成与已分析的测试自动化的工作流程相关联的警告消息或错误消息。警告消息或错误消息包括摘要,该摘要包括与已分析的测试自动化的工作流程的缺陷相关的细节或信息。

在一些实施例中,AI模型624基于所确定的一个或多个指标来预测测试自动化的工作流程中的一个或多个缺陷(例如,错误的输入数据)。一个或多个指标包括以下中的一个或多个:与已分析的工作流程相关联的可扩展性值、与已分析的工作流程相关联的可维护性值、与已分析的工作流程相关联的可读性值、与已分析的工作流程相关联的清晰性值、与已分析的工作流程相关联的效率值、与已分析的工作流程相关联的循环复杂性值(cyclomatic-complexity)、与工作流程相关联的可重用性值、与已分析的工作流程相关联的可靠性值、或与已分析的工作流程相关联的准确度值。在一些实施例中,以百分比格式来显示一个或多个指标(经由显示器550)。此外,AI模型624修改测试自动化的工作流程以去除一个或多个缺陷。

以这种方式,工作流程分析器模块600在由(多个)处理器520执行时执行上述操作,以在部署针对RPA应用的已分析的测试自动化的工作流程之前调试测试自动化的工作流程。在一些实施例中,在去除缺陷之后执行部署。在去除缺陷之后部署RPA应用。这导致在设计阶段设计或开发针对RPA应用的准确的测试自动化工作流程。准确的测试自动化的工作流程包括用于执行用户定义过程的最少可能指令(即,具有较少存储要求和较少执行时间的工作流程)。例如,工作流程分析器模块600标识与工作流程相关联的缺陷(也包括未能通过规则验证集的活动)并且修改工作流程以去除用于设计RPA应用的准确的测试自动化的工作流程的缺陷。

在一些实施例中,工作流程分析器模块600通过使用交织技术(例如,交织代码开发)来去除缺陷。此外,与具有缺陷的工作流程相比,准确的工作流程提供改进的指标(例如,可靠性值、可重用性值、准确度值等等的改进)。在一些另外的实施例中,工作流程分析器600与各种CI/CD(持续集成和持续交付)工具以及用于提供时序分析的其他应用和服务相集成。

总之,工作流程分析器模块600表示用于现有工作流程的静态代码审查的工具。例如,工作流程分析器模块600使用关于测试自动化工作流程应该看起来如何的硬编码的、预定义的规则,并且允许用户基于预定义规则定义他的规则或她的规则。例如,这些预定义规则可以包括公司政策。此外,工作流程分析器模块600的AI模型624(或AI组件)在测试自动化工作流程上进行了预训练,例如该预训练基于大型的客户数据集。

在一个示例中,在工作流程的设计时间期间,工作流程分析器模块600分析工作流程的结构并且发送关于潜在问题、警告和改进的通知。基于已定义规则或策略,如果工作流程不满足已定义规则或策略,则这些通知可以是建议或者可以阻止用户发布工作流程。

例如,参见图10,图10是根据本发明实施例图示了设计器面板的GUI 1000。在该实施例中,当工作流程分析器模块被触发时,工作流程分析器模块扫描整个工作流程并且针对合规性对工作流程进行分析。基于预定义规则或策略,工作流程分析器模块将工作流程对照规则或策略进行比较,并且为那些不合规的规则或策略生成通知(例如,警告)。

应当了解,预定义规则或策略已经由一个或多个用户(例如,测试专家)基于过去在测试自动化客户项目中的经验的轶事数据而预先定义。在一些实施例中,测试用例包括至少一个断言和有限数目的循环和条件,以确保测试结果可以随时间可靠地进行比较。此外,在一些实施例中,测试用例是原子的并且可以在没有任何附加前提条件的情况下是可执行的,并且可以包含不是被复制而是被提取到对象浏览器中的选择器。

还应该注意,客户还可以为测试自动化工作流程分析器模块提供客户特定的规则。在一些实施例中,客户定义他们自己的代码规则以强制执行他们公司特定的标准和指南。在该实施例中,每个测试用例都应该具有针对GitHub

应当进一步注意,某些实施例包括针对测试自动化工作流程分析器的潜在AI预训练规则。在这样的实施例中,AI算法可以包括预训练规则集。这些预训练规则集是从来自现有客户项目的大型数据集中搜集的。例如,图11是图示根据本发明实施例的用于连续更新包含预训练规则集的数据库的系统1100的工作流程图。

如图11中所示,客户1105可以在托管UiPath Studio

图7是图示根据本发明实施例的描绘预定义测试自动化规则集的表示700的框图。在示例实施例中,预定义测试自动化规则集包括结构化设计,诸如测试设计结构702、预定义数目的循环704、预定义数目的条件706、注释708、一个验证点710、以及与意外环境问题相关联的全局异常处理程序712。

图8是图示根据本发明实施例的用于分析测试自动化的工作流程802的用户界面800的GUI。工作流程802包括测试用例或一个或多个测试用例的组合,例如测试用例804。在一些实施例中,工作流程802作为输入(即,来自用户的工作流程)而被提供给计算系统500。计算系统500执行工作流程分析器模块534以使用AI模型624来分析工作流程700。在一些示例实施例中,使用拖放特征(图8中未示出)在用户界面800中来部署AI模型624。

图9是图示根据本发明的实施例的用于分析与RPA应用相关联的测试自动化的工作流程的方法900的流程图。在一些实施例中,方法900开始于步骤910。

在步骤910,方法900包括接收RPA应用的测试自动化的工作流程。在一些实施例中,针对测试自动化的工作流程作为工作流程文件而被获得。工作流程文件包括但不限于解决方案设计文档(SDD)、过程设计指令(PDI)、对象设计指令(ODI)或业务过程(BP)代码。在一些其他实施例中,工作流程作为一个或多个活动而从桌面记录器获得。

在步骤920,方法900包括:使用工作流分析器模块600的AI模型(例如,AI模型624),基于预定义测试自动化规则集(例如,测试自动化规则集700)来分析测试自动化的工作流程。在一些示例实施例中,AI模型624对应于包括训练数据的预训练AI模型。训练数据包括标准测试自动化工作流程、测试自动化工作流程中的错误和标准框架文档中的至少一个。在一些实施例中,基于预训练AI模型来执行预定义测试自动化规则集。

在步骤930,方法900包括确定与已分析的测试自动化的工作流程相关联的一个或多个指标。例如,一个或多个指标包括以下中的一个或多个:与已分析的工作流程相关联的可扩展性值、与已分析的工作流程相关联的可维护性值、与已分析的工作流程相关联的可读性值、与已分析的工作流程相关联的效率值、与已分析的工作流程相关联的循环复杂性值、或与已分析的工作流程相关联的准确度值。

在步骤940,方法900包括:经由AI模型,基于一个或多个指标来生成校正活动数据。在一些实施例中,校正活动数据被用于针对测试自动化的工作流程来执行校正活动。校正活动包括:经由AI模型,基于所确定的一个或多个指标来预测测试自动化的工作流程中的一个或多个缺陷,并且经由AI模型,修改工作流程以去除一个或多个缺陷。

根据本发明的实施例,图9中执行的过程步骤由计算机程序执行,计算机程序对指令进行编码以使(多个)处理器执行图9中描述的(多个)过程的至少部分过程。计算机程序被体现在非暂态计算机可读介质上。计算机可读介质是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他此类介质或介质组合。该计算机程序包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器520)以实现图9中描述的过程步骤中的所有或部分过程步骤的编码指令,编码指令也被存储在计算机可读介质上。

计算机程序可以以硬件、软件或混合实现方式来实现。计算机程序可以由相互有效通信的模块构成,并且这些模块被设计为传递信息或指令以进行显示。计算机程序可以被配置为在通用计算机、ASIC或任何其他合适的设备上操作。

将容易理解,如本文附图中一般性描述和图示的,本发明的各种实施例的组件被布置和设计成多种不同的配置。因此,如附图中所表示的,本发明实施例的详细描述不旨在限制所要求保护的本发明的范围,而仅表示本发明的选定实施例。

在整个本说明书中描述的本发明的特征、结构或特性在一个或多个实施例中以任何合适的方式来组合。例如,贯穿本说明书对“某些实施例”、“一些实施例”或类似语言的引用意指结合实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或贯穿本说明书的类似语言的出现不一定都指的是同一组实施例并且所描述的特征、结构或特性在一个或多个实施例中以任何合适的方式来组合。

应当注意,贯穿本说明书对特征、优点或类似语言的引用并不意味着通过本发明实现的所有特征和优点都应该或存在于本发明的任何单个实施例中。相反,提及特征和优点的语言被理解为意指结合实施例描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的特征和优点的讨论以及类似的语言不一定指的是相同的实施例。

此外,本发明所描述的特征、优点和特性在一个或多个实施例中以任何合适的方式来组合。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实践本发明。在其他实例中,在某些实施例中认识到并不存在于本发明的所有实施例中的附加的特征和优点。

本领域普通技术人员将容易理解,如上所讨论的本发明通过以不同顺序的步骤和/或以不同于所公开的那些配置的硬件元件来实践。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域技术人员来说清楚的是,某些修改、变型和备选结构将是清楚的,同时仍保持在本发明的精神和范围内。因此,为了确定本发明的界限和范围,应对所附权利要求进行参考。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号