用于机器人过程自动化的测试自动化的制作方法

文档序号:26007893发布日期:2021-07-23 21:27阅读:58来源:国知局
用于机器人过程自动化的测试自动化的制作方法

相关申请的交叉引用

本申请要求于2020年4月22日提交的美国专利申请16/855,563的权益,其是于2020年4月21日提交的美国专利申请16/854,733的延续并且要求其权益。该在先申请的主题在此全文引入作为参考。

本发明总体上涉及机器人过程自动化(rpa),并且更具体地涉及用于生产被测工作流的rpa。



背景技术:

数字转型要求企业不断利用数字技术来创造新的客户价值来源并且提高客户服务的运营敏捷性。例如,在可能的情况下,将实现软件和自动化应用以减少成本和缩短上市时间。

过程自动化在这个转换中起着关键作用,因为它有可能大大提高效率,从而创造竞争优势。例如,rpa表示相当新的市场,大约持续了几年。rpa已经从企业客户的快速采用中获利,从而创建了成千上万的机器人来实现过程自动化。

但是,很多这样的机器人可能由于各种原因而停止工作。例如,机器人的低稳定性是由于应用改变、环境改变以及脆弱的自动化本身造成的。与其他自动化领域(诸如已经运行了20多年的测试自动化)不同,rpa不必处理维护,并且实现通常侧重于快乐的路径,而不是弹性和异常处理。通过为异常处理和调试应用最佳实践和工具支持已经部分解决了这个问题,但考虑到自动化质量和数字转换的高层观点,需要一个可以解决多个领域的维护问题的平台。



技术实现要素:

本发明的某些实施例可以提供对于本领域中尚未被当前的rpa技术完全识别、理解或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及为现有工作流(或被测工作流)创建和执行测试用例。

在一个实施例中,一种计算机实现的方法包括为生产中的工作流或该工作流的一个或多个部分创建一个或多个测试用例。该方法还包括执行该工作流或该工作流的一个或多个部分的测试用例,以标识该工作流的环境和/或自动化问题。该方法还包括当标识出环境和/或自动化问题时报告失败的工作流测试。

在另一实施例中,一种计算机实现的方法包括:创建测试用例,并且向测试集分配针对生产中的多个工作流中的对应工作流的一个或多个测试用例。该方法还包括执行测试集以标识针对一个或多个测试用例中的每个的环境和/或自动化问题。该方法还包括报告测试集的结果。结果包括一个或多个失败的测试用例、以及向用户通知一个或多个失败的测试用例的消息。

附图说明

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

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

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

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

图4是图示了根据本发明的实施例的rpa系统的架构图。

图5是示出根据本发明的实施例的被配置为创建和发布一个或多个测试用例的计算系统的架构图。

图6是示出根据本发明的实施例的用于创建测试用例的过程的流程图。

图7是示出根据本发明的实施例的用于发布测试用例的过程的流程图。

图8是示出根据本发明的实施例的用于执行测试用例的过程的流程图。

图9是示出根据本发明的实施例的用于创建数据驱动的工作流测试用例的过程的流程图。

图10是示出根据本发明的实施例的在studioprotm中选择的工作流的图形用户界面(gui)。

图11是示出根据本发明的实施例的“given-when-then”模板的gui。

图12是示出根据本发明的实施例的“when”模块的gui。

图13是示出根据本发明的实施例的在“given”模块中输入的前提条件的gui。

图14和图15是示出根据本发明的实施例的模拟被测工作流的gui。

图16是示出根据本发明的实施例的“then”模块的gui。

图17和图18是示出根据本发明的实施例的所执行的工作流的gui。

图19是示出根据本发明的实施例的具有用于“链接的过程”的列的测试用例部分的gui。

图20是示出根据本发明的实施例的来自所执行的工作流测试用例的测试结果的gui。

图21是示出根据本发明的实施例的orchestratortm的“过程”部分的gui。

图22是示出根据本发明的实施例的用于在studiotm中打开工作流的菜单选项的gui。

图23是示出根据本发明的实施例的studiotm中的受影响工作流和测试用例的gui。

图24是示出根据本发明的实施例的内的表的gui。

图25是示出根据本发明的实施例的要选择的工作流的图。

图26是示出根据本发明的实施例的允许用户选择数据源的“数据驱动的测试用例”菜单的gui。

图27是示出根据本发明的实施例的允许选择字段的菜单选项的gui。

图28是示出根据本发明的实施例的菜单选项的gui,该菜单选项用于允许用户选择所选择的中的一个或多个可用列。

图29是根据本发明的实施例的示出菜单选项的gui,该菜单选项示出了用于选择“导入数据集”的选项。

图30是示出根据本发明的实施例的从数据集创建的第一测试用例的gui。

图31是示出根据本发明的实施例的具有多个测试数据变化的测试用例的gui。

图32是示出根据本发明的实施例的用于将一个或多个测试用例设置为可发布的菜单选项的gui。

图33是示出根据本发明的实施例的用于以studio发布的应用的gui。

图34是示出根据本发明的实施例的部署过程的gui。

图35是示出根据本发明的实施例的在“测试用例”部分中创建的测试用例的gui。

具体实施方式

一些实施例涉及为现有工作流(或被测工作流)创建和执行测试用例。例如,一些实施例提供了用于通用功能应用测试的解决方案,即,直接在开发中测试应用。这使得开发人员可以及早捕获应用改变,并且填充rpa所需要的适应性。一些其他实施例可以提供一种用于功能性工作流测试的解决方案,即,在it托管的测试环境中测试自动化工作流,以在应用生产之前捕获自动化问题和环境变化(例如,操作系统更新,更新到环境或更新),并且填充rpa所需要的适应项。

应当理解,已经识别出测试自动化工作流的需求。有一些内部和外部计划试图提供用于测试自动化工作流的解决方案,诸如re-framework,它为单元测试或工作流的功能测试提供了基础。

一些实施例提供了对先前计划的缺陷的解决方案。例如,一些实施例允许为现有工作流或现有工作流的部分创建测试用例。这些测试用例可以经常执行以捕获环境和自动化问题。当识别出失败的工作流时,将通知rpa开发人员。在一些其他实施例中,创建了数据驱动的工作流测试用例,以便可以从外部源注入数据集。此数据集可以包括json、db等。这些实施例可以减少创建自动化工作流测试用例的人工工作。

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

自动化项目通过向开发者提供对在工作流中开发的一组定制步骤(在本文中被定义为“活动”)之间的执行顺序和关系的控制来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是uipathstudiotm。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流可以被嵌套或嵌入。

一些类型的工作流可以包括但不限于序列、流程图、无限状态机(fsm)和/或全局异常处理程序。序列可能特别适合于线性过程,从而能够在不使工作流混乱的情况下从一个活动流向另一活动。流程图可能特别适合于更复杂的业务逻辑,从而实现通过多个分支逻辑运算符以更为不同的方式进行的决策的集成以及活动的连接。fsm可能特别适合于较大工作流。fsm可以在其执行中使用有限数量的状态,这些状态由条件(即,过渡)或活动触发。全局异常处理程序可能特别适合于在遇到执行误差时确定工作流行为且特别适合于调试过程。

一旦工作流在设计器110中被开发,业务过程的执行就由指挥器(conductor)120编排,该指挥器编排执行设计器110中所开发的工作流的一个或多个机器人130。指挥器120的实施例的一个商业示例是uipathorchestratortm。指挥器120支持对环境中的资源的创建、监测以及部署的管理。利用第三方解决方案和应用,指挥器120可以充当集成点、或充当聚合点中的一者。

指挥器120可以管理一队机器人130,从而从集中点连接并执行机器人130。可以管理的机器人130的类型包括但不限于:有人值守的(attended)机器人132、无人值守的机器人134、开发机器人(类似于无人值守的机器人134,但用于开发和测试目的)以及非生产型机器人(类似于有人值守的机器人132,但用于开发和测试目的)。有人值守的机器人132由用户事件触发并且与人类一起在相同计算系统上操作。有人值守的机器人132可以与指挥器120一起用于集中过程部署和记录介质。有人值守的机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,无法从这种类型的机器人上的指挥器120开启过程和/或这些过程无法在锁定屏幕下运行。在某些实施例中,有人值守的机器人132只可以从机器人托盘或根据命令提示而被开启。在一些实施例中,有人值守的机器人132应该在人类监督下运行。

无人值守的机器人134在虚拟环境中以无人值守的方式运行并且可以使许多过程自动化。无人值守的机器人134可以负责远程执行、监测、调度并且为工作队列提供支持。在一些实施例中,可以在设计器110中运行针对所有机器人类型的调试。有人值守的机器人和无人值守的机器人两者都可以使各种系统和应用自动化,该系统和应用包括但不限于大型主机、web应用、vm、企业应用(例如由等生产的那些企业应用)以及计算系统应用(例如台式机和笔记本应用、移动设备应用、可穿戴计算机应用等)。

指挥器120可以具有各种能力,包括但不限于供应(provisioning)、部署(deployment)、配置(configuration)、排队(queueing)、监测(monitoring)、日志记录(logging)和/或提供互连性(interconnectivity)。供应可以包括在机器人130与指挥器120(例如web应用)之间创建和维护连接。开发可以包括确保将包(package)版本正确递送至所指派的机器人130以供执行。配置可以包括维护和递送机器人环境和过程配置。排队可以包括提供对队列和队列项的管理。监测可以包括追踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和编入索引至数据库(例如sql数据库)和/或另一存储机制(例如其提供用于存储和快速查询较大数据集的能力)。指挥器120可以通过充当第三方解决方案和/或应用的通信的集中点来提供互连性。

机器人130是运行内置于设计器110中的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是uipathrobotstm。在一些实施例中,机器人130默认安装microsoft服务控制管理器(scm)管理的服务。结果,此类机器人130可以在本地系统账户下打开交互式会话,并且具有服务的权限。

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

在一些实施例中,机器人130被分成分别专用于特定自动化任务的若干组件。在一些实施例中,机器人组件包括但不限于scm管理的机器人服务、用户模式机器人服务、执行器、代理以及命令行。scm管理的机器人服务管理和监测会话,并且充当指挥器120与执行主机(即,机器人130在其上被执行的计算系统)之间的委托。这些服务受机器人130信任并且管理机器人130的凭证。控制台应用在本地系统下由scm启动。

在一些实施例中,用户模式机器人服务管理和监测会话,并且充当指挥器120与执行主机之间的委托。用户模式机器人服务可以受机器人130信任并且管理机器人130的凭证。在未安装scm管理的机器人服务的情况下,应用可以被自动启动。

执行器可以在会话下运行给定作业(即,执行器可以执行工作流。执行器可以知道每个监测器的每英寸点数(dpi)设置。代理可以是presentationfoundation(wpf)应用,其在系统托盘窗口中显示可用的作业。代理可以是服务的客户端。代理可以请求开启或停止作业以及改变设置。命令行是服务的客户端。命令行是可以请求开启作业并等待其输出的控制台应用。

如上文所阐释一般使机器人130的组件分开帮助开发者、支持用户以及计算系统更容易地运行、标识和追踪每个组件正在执行的内容。特殊行为可以以这种方式按组件来配置,诸如针对执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可以始终知道每个监测器的dpi设置。结果,不论创建工作流的计算系统的配置如何,工作流都可以在任何dpi处被执行。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。在一些实施例中,针对dpi不知道的或有意地标记为不知道的应用,dpi可以被禁用。

图2是图示了根据本发明的实施例的部署的rpa系统200的架构图。在一些实施例中,rpa系统200可以是图1的rpa系统100或可以是该rpa系统的一部分。应注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者都可以包括任何期望数量的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可以不在计算系统210上运行。执行器212正在运行过程。如图2中所示,若干业务项目可以同时运行。在该实施例中,代理214(例如服务)是所有执行器212的单个联系点。该实施例中的所有消息被日志记录到指挥器230中,该指挥器经由数据库服务器240、索引器服务器250或两者进一步处理这些消息。如上文相对于图1所讨论的,执行器212可以是机器人组件。

在一些实施例中,机器人表示机器名称与用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如服务器2012)上,多个机器人可以同时运行,每个机器人在使用唯一用户名的单独会话中。上文将此称为hd机器人。

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

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

除了web应用232之外,指挥器230还包括暴露odatarestapi端点234的服务层。然而,在不脱离本发明的范围的情况下可以包括其他端点。restapi由web应用232和代理214两者消耗。在该实施例中,代理214是客户端计算机上的一个或多个机器人的监督器。

在该实施例中,restapi覆盖配置、日志记录、监测以及排队功能性。在一些实施例中,配置端点可以用于定义和配置应用用户、权限、机器人、资产、发布以及环境。日志记录rest端点可以用于日志记录不同信息,诸如(例如)误差、由机器人发送的显式消息以及其他环境特定信息。如果在指挥器230中使用了开启作业命令,那么可以由机器人使用部署rest端点来查询应该被执行的包版本。排队rest端点可以负责队列和队列项管理,诸如将数据添加至队列、从队列中获得事务、设置事务的状态等。

监测rest端点可以监测web应用232和代理214。通知和监测api236可以是用于注册代理214、向代理214递送配置设置并且用于从服务器和代理214发送/接收通知的rest端点。在一些实施例中,通知和监测api236还可以使用websocket通信。

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

在一些实施例中可选的索引器服务器250存储由机器人日志记录的信息并且将该信息编入索引。在某些实施例中,索引器服务器250可以通过配置设置来禁用。在一些实施例中,索引器服务器250使用其为开源项目全文搜索引擎。由机器人日志记录的消息(例如使用比如日志消息或写入行的活动)可以通过(多个)日志记录的rest端点被发送到索引器服务器250,在索引器服务器250中这些消息被编入索引以供将来使用。

图3是图示了根据本发明的实施例的设计器310、活动320、330与驱动(driver)340之间的关系300的架构图。根据上文,开发者使用设计器310来开发由机器人执行的工作流。工作流可以包括用户定义的活动320和ui自动化活动330。一些实施例能够标识图像中的非文本视觉分量,在本文中称作计算机视觉(cv)。与此类分量相关的一些cv活动可以包括但不限于点击、键入(type)、取得文本、悬停、元素存在、刷新范围、高亮等。在一些实施例中,点击使用例如cv、光学字符识别(ocr)、模糊文本匹配以及多锚(multi-anchor)来标识元素,并且点击该元素。键入可以使用上述内容来标识元素和该元素中的类型。取得文本可以标识特定文本的位置并且使用ocr来扫描该位置。悬停可以标识元素并且悬停于元素上方。元素存在可以使用上文所描述的技术来检查在屏幕上是否存在元素。在一些实施例中,可以存在可以在设计器310中被实现的数百个甚至数千个活动。然而,在不脱离本发明的范围的情况下,任何数量和/或类型的活动都可以是可用的。

ui自动化活动330是利用较低级代码编写的特殊的较低级活动(例如cv活动)的子集并且有助于与屏幕的交互。ui自动化活动330经由允许机器人与期望软件交互的驱动340来支持这些交互。例如,驱动340可以包括os驱动342、浏览器驱动344、vm驱动346、企业应用驱动348等。

驱动340可以与os进行低级交互,进而寻找挂钩、监测键等。驱动器可以有助于与等的集成。例如,“点击”活动经由驱动340在这些不同应用中扮演相同角色。

图4是图示了根据本发明的实施例的rpa系统400的架构图。在一些实施例中,rpa系统400可以是或包括图1和/或图2的rpa系统100和/或200。rpa系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用与指挥器计算系统420进行通信。指挥器计算系统420又能够与数据库服务器430和可选的索引器服务器440进行通信。

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

图5是示出根据本发明的实施例的被配置为创建和发布一个或多个测试用例的计算系统500的架构图。在一些实施例中,计算系统500可以是本文中所描绘和/或描述的计算系统中的一者或多者。计算系统500包括总线505或用于传送信息的其他通信机制、以及被耦合至总线505以处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、其多个实例和/或其任何组合。(多个)处理器510还可以具有多个处理核心,并且至少一些核心可以被配置为执行特定功能。在一些实施例中,可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一者可以是包括模仿生物神经的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯·诺依曼计算架构的典型组件。

计算系统500还包括用于存储将由(多个)处理器510执行的信息和指令的存储器515。存储器515可以由随机存取存储器(ram)、只读存储器(rom)、闪速存储器、缓存、静态存储装置(诸如磁盘或光盘)或任何其他类型的非瞬态计算机可读介质或其组合的任何组合组成。非瞬态计算机可读介质可以是可以由(多个)处理器510访问的任何可用介质,并且可以包括易失性介质、非易失性介质或两者。介质也可以是可移除的、不可移除的或两者。

附加地,计算系统500包括通信设备520(诸如收发器)以经由无线和/或有线连接提供对通信网络的访问。在一些实施例中,在不脱离本发明的范围的情况下,通信设备520可以被配置为使用频分多址(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)、其任何组合和/或任何其他现有或将来实现的通信标准和/或协议。在一些实施例中,在不脱离本发明的范围的情况下,通信设备520可以包括一个或多个天线,这些天线是单数的、阵列的、相控的、切换的、波束成形的、波束导向的、其组合和/或任何其他天线配置。

(多个)处理器510进一步经由总线505被耦合到显示器525,诸如等离子体显示器、液晶显示器(lcd)、发光二极管(led)显示器、场发射显示器(fed)、有机发光二极管(oled)显示器、柔性oled显示器、柔性基板显示器、投影显示器、4k显示器、高清显示器、显示器、面内切换(ips)显示器或用于向用户显示信息的任何其他合适的显示器。显示器525可以被配置为使用电阻性、电容性、表面声波(saw)电容性、红外、光学成像、色散信号技术、声学脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3d)触摸显示器、多输入触摸显示器、多触摸显示器等。可以在不脱离本发明的范围的情况下使用任何合适的显示设备和触觉i/o。

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

存储器515存储在被(多个)处理器510执行时提供功能性的软件模块。模块包括计算系统500的操作系统540。模块还包括被配置为执行本文中所描述的过程或其衍生物的全部或部分的测试用例模块545。计算系统500可以包括一个或多个附加功能模块550,该功能模块包括附加功能性。

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

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

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

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

创建测试用例

图6是示出根据本发明的实施例的用于创建测试用例的过程600的流程图。在一些实施例中,过程600在602处开始于使用studioprotm打开现有工作流。如上所述,现有工作流可以是生产中或开发中的工作流。在604处,选择现有工作流以确定工作流测试用例的范围。根据实施例,选择整个工作流或工作流的一个或多个部分。参见图10,图10是示出根据本发明的实施例的在studioprotm中选择的工作流的gui1000。

在606处,创建所选择的测试用例。例如,当计算设备的用户从工作流的上下文菜单选择“创建测试用例”按钮时,将创建所选择的测试用例。所创建的测试用例可以存储在项目的“测试用例”文件夹下。

在某些实施例中,测试用例使用“given-when-then”模板或模块。参见图11,图11是示出根据本发明的实施例的“given-when-then”模板的gui1100。在“when”模块下,被测工作流被调用,并且因此被放置为参考。想法是,测试用例不保存被测工作流的副本,而是直接引用它。这很重要,因为被测工作流可以随着时间而改变。“when”模块主要负责执行或调用被测工作流。参见例如图12,图12是示出根据本发明的实施例的“when”模块的gui1200。

在“given”模块下,计算设备的用户添加“when”模块成功执行所需要的所有前提条件。参见图13,图13是示出根据本发明的实施例的在“given”模块中输入的前提条件的gui1300。例如,所需要的前提条件可以包括输入参数、应用等。“given”模块可以提供执行环境,以确保工作流成功运行。例如,这可以包括提供临时文件供工作流处理(例如,代替实际的发票),启动工作流运行所需要的特定应用、或者在工作流内使用并且预期作为工作流的输入(例如,id或凭据)的参数和变量。在一些其他实施例中,“given”模块被配置为提供模拟被测工作流的步骤的可能性,从而确保被测工作流的执行没有错误。模拟包括模拟被测工作流中的一系列步骤。参见例如图14和15,图14和15是示出根据实施例的被测工作流的模拟的gui1400、1500。在某些实施例中,被测工作流是您为“when”模块创建测试用例并且由“when”模块调用的测试对象。

此外,在“given”模块下,可以自动标识工作流所需要的变量和/或参数。在某些实施例中,用户可以将任何活动和/或动作放置在“given”模块中。此外,可以在“调用工作流”活动的“when”模块中直接提供自变量/参数,该模块引用被测工作流。

在一个示例中,被测工作流使用变量“insurant.name”,该变量是数据驱动测试用例(ddt)的一部分。在一些实施例中,ddt由单个测试用例定义表示,该定义用不同的数据变量填充。这些变化可以来自例如文件,并且如果链接了这样的数据文件,则会为数据源的每个表列创建自变量。在创建测试用例之后,将在“given”模块中自动创建具有相同名称的变量。在另一示例中,原始“insurant.name”变量的默认值在可用时给出。否则,该变量留给计算设备的用户完成该值。

在“then”模块下,该模块可以包含任何类型的断言,这些断言表示测试用例的重要组成部分。为了便于说明,测试用例的必要部分是断言或验证,它定义了测试目的(例如,断言贷款值为500,000)。这就是测试用例证明被测应用满足特定要求的方式。使用“then”模块,计算设备的用户可以将现有验证活动拖到模块的“then”部分中。在一个示例中,在“when”模块内,计算设备的用户可以调用填写保险申请的工作流。参见图16,图16是根据本发明的实施例的示出“then”模块的gui1600。在“then”模块内,计算设备的用户可以拖动“验证uielement”活动来声明所创建的保险号码。参见图17和18,图17和18是示出根据本发明的实施例的执行的工作流的gui1700和1800。

测试用例发布

studioprotm项目可以包含1-n个工作流、1-n个工作流测试用例和1-n个应用测试用例。在发布时,orchestratortm的“测试用例”部分可以包含项目、应用测试用例和/或工作流测试用例。工作流测试用例还可以包含对原始工作流的引用。参见例如图19,图19是示出根据本发明的实施例的具有用于“链接的过程”的列的测试用例部分的gui1900。

图7是示出根据本发明的实施例的用于发布测试用例的过程700的流程图。在某些实施例中,使用studio用户可以发布其工作流或测试用例。在发布之后,用户可以使用一个或多个测试用例并且将它们分组在一起以执行测试集。过程700可以开始于在702处在studio中创建一个或多个测试用例,并且在704处,将一个或多个测试用例设置为可发布。参见例如图32,图32是示出根据本发明的实施例的用于将一个或多个测试用例设置为可发布的菜单选项的gui3200。在706处,触发一个或多个测试用例以进行发布。参见例如图33,图33是示出根据本发明的实施例的用于在studio中发布的应用的gui3300。

在708处,使用特定环境为测试用例包创建过程。参见例如图34,图34是示出根据本发明的实施例的部署过程的gui3400。在710处,一个或多个测试用例出现在studio的“测试用例”部分中。参见例如图35,图35是示出根据本发明的实施例的在“测试用例”部分中的所创建的测试用例的gui3500。

工作流测试用例执行

执行工作流测试用例与执行应用测试用例没有什么不同。例如,图8是示出根据本发明的实施例的用于执行测试用例的过程800的流程图。在一些实施例中,过程800可以开始于在802处创建测试集,并且在804处向测试集分配一个或多个工作流或工作流的一个或多个部分的一个或多个测试用例。在806处,执行测试集。

应当理解,工作流测试用例的执行结果可以具有与通用应用测试结果相似的结构,但可能还会引用被测过程。图20是示出根据本发明的实施例的来自所执行的工作流测试用例的测试结果的gui2000。

如果工作流测试用例失败,则orchestratortm的“处理”部分中的相应处理将接收到警告三角和工具提示。图21是示出根据本发明的实施例的orchestratortm的“处理”部分的gui2100。在一个实施例中,警告三角和工具提示2102提供特定过程受失败的工作流测试用例影响并且可能需要适配以在生产期间成功运行的指示。

当考虑到一个或多个用户可以在专用测试环境中针对工作流的最新版本连续运行一个或多个工作流测试用例时,生产中的实际过程将使用先前版本和不同的环境。例如,在rpa的开发过程中,存在第一版本,然后是第二版本。对于第二版本,当工作流发生改变时,将执行测试用例。在另一示例中,当第二版本正在生产中时,也会在生产期间执行一组工作流测试用例。例如,在生产中运行工作流之前,每天执行一次测试用例。这样,可能在工作流进入生产阶段之前破坏和修复被测工作流。为了说明,术语“环境”是指系统,即程序、数据库等。换言之,存在很多环境,从开发环境开始,到预生产环境、生产环境等。

因此,向用户警告或通知这个过程中的潜在问题可能会有所帮助。因此,工具提示或通知消息2102可以提供必要的上下文。例如,工具提示或通知消息2102可以包括以下消息:“为环境y上的版本x.x.x分配给该过程的多个测试用例失败。”在一些实施例中,上下文菜单允许将警告标记为“已接收”,这基本上去除了警告。

在某些实施例中,失败的工作流测试用例会导致开发人员在studioprotm中分析工作流和/或测试用例并且调试工作流和/或测试用例。因此,诸如图22所示的附加上下文菜单项允许直接打开相应的studioprotm项目。图22是示出根据本发明的实施例的用于在studiotm中打开失败的工作流测试用例的附加上下文菜单项2202的gui2200。图23是示出根据本发明的实施例的受影响的工作流2302和studioprotm中的测试用例的gui2300。

创建数据驱动的工作流测试用例

在一些实施例中,测试输入数据的不同组合需要将外部数据源与测试用例连接的可能性。在一个示例中,假定数据源是表格内的表。参见例如图24,图24是示出根据本发明的实施例的内的表格的gui2400。

图9是示出根据本发明的实施例的用于创建数据驱动的工作流测试用例的过程900的流程图。在一些实施例中,过程900可以开始于在902处在studioprotm中选择工作流或工作流的一个或多个部分。这样,就利用了数据源中的数据(在该示例中为表格的形式)。图25是示出根据本发明的实施例的将被选择的工作流2502的gui2500。在904处,从“工作流测试”部分选择“创建数据驱动的测试用例”并且选择数据源。图26是示出根据本发明的实施例的“数据驱动的测试用例”菜单2602的gui2600,该菜单允许用户选择数据源。

在906处,在“选择表格”菜单下,选择一个或多个表。一旦选择了表,就在908处选择字段。图27是示出根据本发明的实施例的允许选择字段的菜单选项2702的gui2700。具体地,gui2700示出了菜单选项2702,其允许用户从表格中的数据源选择一个或多个字段。从这些字段中提取数据。在910处,由于数据源是工作表,所以studioprotm自动将列与所使用的变量名进行匹配。

在912处,对于不能与特定列匹配的变量,用户从所选择的表格内的可用列中手动选择。图28是示出根据本发明的实施例的菜单选项2802的gui2800,该菜单选项2802允许用户选择所选择的表格中的一个或多个可用列。

在914处,通过在studioprotm中的“导入数据集”复选框中选择来导入数据源。应当注意,根据实施例,数据源被引用(通过路径)或作为项目的一部分被导入(例如,通过单击菜单选项中的“导入数据集”复选框)。图29是根据本发明的实施例的示出菜单选项2902的gui2900,该菜单选项示出了用于选择“导入数据集”的选项。在一些实施例中,数据集是项目本身的一部分,并且初始源(文件)在测试执行期间不必可用。

在916处,在变量匹配完成之后,创建第一测试用例,并且使用对数据源(外部或内部)的引用来设置“自变量”部分中的变量。图30是示出根据本发明的实施例的根据数据集创建的第一测试用例3002的gui3000。

图31是示出根据本发明的实施例的具有多个测试数据变化的测试用例的gui3100。在一些实施例中,可以创建称为“数据集”的新标签,其示出了具有导入的测试数据的表。该表主要有两个目的。首先,该表指示单个测试用例连接到多个测试数据变体。其次,该表执行一个或多个变体(例如,通过选择一个或多个变体并且单击“运行”)以进行本地调试。例如,当发布到orchestratortm时,将发布并且执行整个数据集。

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

计算机程序可以被实现在硬件、软件或混合实现中。计算机程序可以由彼此可操作地通信并且被设计成传递信息或指令以进行显示的模块组成。计算机程序可以被配置为在通用计算机、asic或任何其他合适的设备上操作。

将容易地理解,如本文中的诸图中大体上描述和图示的,本发明的各种实施例的组件可以以多种不同配置来布置和设计。因此,如附图中所表示,对本发明的实施例的详细描述并不旨在限制所要求保护的本发明的范围,而是仅仅表示本发明的所选择的实施例。

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

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

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

本领域的普通技术人员应容易地理解,可以利用不同顺序的步骤和/或利用与所公开的配置不同的配置的硬件元件来实践如上文所描述的本发明。因此,尽管已经基于这些优选实施例描述了本发明,但对于本领域的技术人员而言将明显的是,某些修改、变型和备选构造将是明显的,同时仍在本发明的精神和范围内。因此,为了确定本发明的界限和边界,应当参考所附权利要求书。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1