一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务机器人的测试方法、装置、电子设备及存储介质与流程

2022-08-10 22:13:11 来源:中国专利 TAG:


1.本技术涉及机器人流程自动化及人工智能技术领域,特别涉及一种任务机器人的测试方法及装置。


背景技术:

2.机器人流程自动化(robotic process automation,简称rpa),是通过特定的“机器人软件”,模拟人在计算机上的操作,按规则自动执行流程任务。
3.人工智能(artificial intelligence,简称ai)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。
4.智能自动化(intelligent automation,ia)是一系列从机器人流程自动化到人工智能的技术总称,将rpa与光学字符识别(optical character recognition,ocr)、智能字符识别(intelligent character recognition,icr)、流程挖掘(process mining)、深度学习(deep learning,dl)、机器学习(machine learning,ml)、自然语言处理(natural language processing,nlp)、语音识别(automatic speech recognition,asr)、语音合成(text to speech,tts)、计算机视觉(computer vision,cv)等多种ai技术相结合,以创建能够思考、学习及自适应的端到端的业务流程,涵盖从流程发现、流程自动化,到通过自动而持续的数据收集、理解数据的含义,使用数据来管理和优化业务流程的整个历程。
5.通常,任务机器人在正常工作之前,需要经过性能测试。相关技术,在对任务机器人进行测试时,可以通过用户界面交互的方式,由工作人员在用户交互界面输入问题,然后人为的查看任务机器人给出的答案是否符合预期。这种任务机器人的测试方法,不仅耗费人工成本,且效率低,准确性差。


技术实现要素:

6.本技术提供一种任务机器人的测试方法、装置、电子设备及存储介质,以解决相关技术中的任务机器人的测试方法存在的耗费人工成本、效率低且准确性差的技术问题。
7.本技术第一方面实施例提供一种任务机器人的测试方法,包括:获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件;根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树;根据状态树,生成至少一个测试用例;基于测试用例对任务机器人进行测试,并得到测试结果。
8.在一些实施例中,根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树,包括:将各状态节点作为状态树中的节点,将各状态节点之间的转移条件,作为状态树中对应节点之间的边,以生成对应的状态树。
9.在一些实施例中,将各状态节点作为状态树中的节点,将各状态节点之间的转移条件,作为状态树中对应节点之间的边,以生成对应的状态树,包括:将各状态节点中的起始状态节点,作为状态树的根节点,根节点位于状态树的第1层;根据各状态节点以及各状态节点之间的转移条件,确定状态树的第2层至第n层的节点以及相邻层的节点之间的边,
其中,将第n-1层的节点中第一节点对应的转移节点,作为第一节点的子节点,子节点位于状态树的第n层,并将第一节点与对应的转移节点之间的转移条件,作为第一节点与第一节点的子节点之间的边;其中,n为大于1且小于或等于n的整数;第n层的节点与第1层至第n-1层中任意节点对应同一状态节点,或者第n层的节点不存在对应的转移节点。
10.在一些实施例中,根据状态树,生成至少一个测试用例,包括:对状态树进行深度优先遍历,以得到至少一条从状态树的根节点至叶子节点的状态迁移路径,状态迁移路径,包括从状态树的根节点开始至叶子节点的路径中各节点对应的状态节点,以及路径中各节点之间的转移条件;将各状态迁移路径,作为对应的测试用例。
11.在一些实施例中,基于测试用例对任务机器人进行测试,并得到测试结果,包括:根据各测试用例,建立对应的测试任务;响应于获取到针对各测试任务的测试指令,向任务机器人下发对应的测试任务,以使任务机器人基于ai技术执行对应的测试任务;获取任务机器人返回的对测试任务的执行结果;根据执行结果,生成测试结果。
12.在一些实施例中,所述响应于获取到针对各所述测试任务的测试指令,向所述任务机器人下发对应的测试任务之前,还包括:调用rpa机器人触发针对各所述测试任务的测试指令。
13.在一些实施例中,测试任务中包括对应的测试用例中的各状态节点、各状态节点对应的转移条件以及对应的输入信息;执行结果包括执行失败结果;执行失败结果,是任务机器人基于ai技术执行测试任务的过程中,运行至测试任务中的任一目标状态节点时,基于自然语言处理nlp技术,对输入信息进行解析,获取输入信息对应的解析结果之后,确定解析结果与目标状态节点对应的转移条件不一致,并停止运行的情况下返回的。
14.在一些实施例中,测试任务中包括对应的测试用例中的各状态节点、各状态节点对应的转移条件以及对应的输入信息;执行结果包括执行成功结果;执行成功结果,是任务机器人基于ai技术执行测试任务的过程中,运行至测试任务中的每个状态节点时,基于自然语言处理nlp技术,对输入信息进行解析,获取输入信息对应的解析结果之后,确定解析结果与状态节点对应的转移条件一致,跳转运行下一状态节点,直至运行完测试任务中所有的状态节点的情况下返回的。
15.本技术第二方面实施例提供一种任务机器人的测试装置,包括:获取模块,用于获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件;第一生成模块,用于根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树;第二生成模块,用于根据状态树,生成至少一个测试用例;测试模块,用于基于测试用例对任务机器人进行测试,并得到测试结果。
16.在一些实施例中,第一生成模块,包括:生成单元,用于将各状态节点作为状态树中的节点,将各状态节点之间的转移条件,作为状态树中对应节点之间的边,以生成对应的状态树。
17.在一些实施例中,生成单元,用于:将各状态节点中的起始状态节点,作为状态树的根节点,根节点位于状态树的第1层;
18.根据各状态节点以及各状态节点之间的转移条件,确定状态树的第2层至第n层的节点以及相邻层的节点之间的边,其中,将第n-1层的节点中第一节点对应的转移节点,作为第一节点的子节点,子节点位于状态树的第n层,并将第一节点与对应的转移节点之间的
转移条件,作为第一节点与第一节点的子节点之间的边;
19.其中,n为大于1且小于或等于n的整数;第n层的节点与第1层至第n-1层中任意节点对应同一状态节点,或者第n层的节点不存在对应的转移节点。
20.在一些实施例中,第二生成模块,包括:遍历单元,用于对状态树进行深度优先遍历,以得到至少一条从状态树的根节点至叶子节点的状态迁移路径,状态迁移路径,包括从状态树的根节点开始至叶子节点的路径中各节点对应的状态节点,以及路径中各节点之间的转移条件;确定单元,用于将各状态迁移路径,作为对应的测试用例。
21.在一些实施例中,测试模块,包括:建立单元,用于根据各测试用例,建立对应的测试任务;发送单元,用于响应于获取到针对各测试任务的测试指令,向任务机器人下发对应的测试任务,以使任务机器人基于ai技术执行对应的测试任务;获取单元,用于获取任务机器人返回的对测试任务的执行结果;处理单元,用于根据执行结果,生成测试结果。
22.本技术第三方面实施例提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时,实现如本技术上述第一方面实施例所述的方法。
23.本技术第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本技术上述第一方面实施例所述的方法。
24.本技术第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本技术上述第一方面实施例所述的方法。
25.本技术实施例提供的技术方案可以包括以下有益效果:
26.实现了基于任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,自动对任务机器人进行测试,降低了任务机器人测试所需的人工成本,提高了任务机器人的测试效率,且相比通过人为查看任务机器人给出的答案是否符合预期来得到测试结果,本技术得到的测试结果的准确性更高。
27.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
28.在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本技术公开的一些实施方式,而不应将其视为是对本技术范围的限制。
29.图1是根据本技术一个实施例的状态迁移图的示例图;
30.图2是根据本技术一个实施例的任务机器人的测试方法的流程示意图;
31.图3是根据本技术一个实施例的另一状态迁移图的示例图;
32.图4是根据本技术一个实施例的状态树的示例图;
33.图5是根据本技术另一个实施例的任务机器人的测试方法的流程示意图;
34.图6是根据本技术另一个实施例的任务机器人的任务流程图;
35.图7是根据本技术另一个实施例的又一状态迁移图的示例图;
36.图8是根据本技术另一个实施例的另一状态树的示例图;
37.图9是根据本技术一个实施例的任务机器人的测试装置的结构示意图;
38.图10是用来实现本技术实施例的任务机器人的测试方法的电子设备的框图。
具体实施方式
39.下面详细描述本技术/公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术/公开,而不能理解为对本技术/公开的限制。
40.参照下面的描述和附图,将清楚本技术/公开的实施例的这些和其他方面。在这些描述和附图中,具体公开了本技术/公开的实施例中的一些特定实施方式,来表示实施本技术/公开的实施例的原理的一些方式,但是应当理解,本技术/公开的实施例的范围不受此限制。相反,本技术/公开的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
41.需要说明的是,本公开申请的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
42.在本技术/公开的描述中,术语“多个”指两个或两个以上。
43.本技术提供一种对任务机器人自动进行测试的思路。具体的,本技术中可以获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树,根据状态树,生成至少一个测试用例,基于测试用例对任务机器人进行测试,并得到测试结果。由此,实现了基于任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,自动对任务机器人进行测试,降低了任务机器人测试所需的人工成本,提高了任务机器人的测试效率,且相比通过人为查看任务机器人给出的答案是否符合预期来得到测试结果,本技术得到的测试结果的准确性更高。
44.为了清楚说明本发明的各实施例,首先对本发明实施例中涉及到的技术名词进行解释说明。
45.在本技术的描述中,“rpa机器人”是指可结合ai技术和rpa技术,自动进行业务处理的软件机器人。rpa机器人拥有“连接器”和“无侵入”两个特性,通过模拟人类的操作方法,在不更改信息系统的前提下,使用非侵入的方式,将不同系统的数据进行提取、整合和连通。
46.在本技术的描述中,“任务机器人”指特定条件下提供信息或服务的机器人。通常情况下是为了满足带有明确目的的用户,例如查流量,查话费,订餐,订票,咨询等任务型场景。其中,任务机器人可以为基于人工智能ai技术执行任务的任务机器人,也可以为其它类型的任务机器人,本技术对此不作限制。
47.在本技术的描述中,将任务机器人的任务流程看作有限状态机,包括有限数量的多个状态,以及状态之间的转移条件。其中,每个状态对应一个节点,即状态节点。其中,转移条件,即从一个状态节点转移到另一个状态节点时所需的条件。起始状态节点,为任务流程中的起始状态对应的节点,通过一个转移条件从状态节点a转移到状态节点b时,将状态节点b称为状态节点a对应的转移节点,将该转移条件称为状态节点a对应的转移条件,或者状态节点a与状态节点b之间的转移条件。每个状态节点可以转移到0个、1个或者多个对应
programming interface,应用程序接口),获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件。具体的,测试装置可以通过graphql实现从api获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件。其中,graphql为一种针对graph(图状数据)进行查询的query language(查询语言)。
59.其中,多个状态节点以及各状态节点之间的转移条件,可以以节点表及转移条件表的形式保存。
60.参考图3所示的任务机器人的待测试流程的状态迁移图,如图3所示,任务机器人的待测试流程中包括4个状态节点,节点名称分别为“状态1”、“状态2”、“状态3”及“状态4”,“状态1”通过转移条件a转移至“状态2”,“状态2”通过转移条件b或c转移至“状态3”,“状态3”通过转移条件d转移至“状态1”,“状态3”通过转移条件e转移至“状态4”。
61.本技术实施例中,可以将上述各状态节点存储为表1所示的节点表,将各状态节点之间的转移条件存储为表2所示的转移条件表。其中,表1中的第1列为状态节点的标识,用于唯一标识状态节点;第2列为状态节点的节点名称。表2中的第1列为状态节点与对应的转移节点组成的节点对的标识,用于唯一标识节点对;第2列为节点对中转移前的当前状态节点的标识;第3列为当前状态节点与对应的转移节点之间的转移条件;第4列为当前状态节点对应的转移节点的标识。
62.表1节点表
63.唯一标识节点名称001状态1002状态2003状态3004状态4
64.表2转移条件表
65.唯一标识当前节点标识转移条件转移节点标识1001a0022002b0033002c0034003e0045003d0016004 结束
66.步骤202,根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树。
67.在示例实施例中,可以通过深度优先算法,根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树。
68.继续参考图3所示的状态迁移图,根据状态迁移图中的多个状态节点以及各状态节点之间的转移条件,可以将起始状态节点“状态1”作为状态树的根节点,将状态节点“状态1”对应的转移节点“状态2”作为根节点的子节点,并将转移条件a作为根节点与其子节点之间的边,进而按照深度优先策略,依次确定其它节点,直至生成图4所示的状态树。
69.步骤203,根据状态树,生成至少一个测试用例。
70.在示例实施例中,可以按照预设搜索顺序遍历状态树中的各节点,以得到至少一条从状态树的根节点至叶子节点的状态迁移路径。状态迁移路径,包括从状态树的根节点开始至叶子节点的路径中各节点对应的状态节点,以及路径中各节点之间的转移条件。进而将每条状态迁移路径,作为一个对应的测试用例。其中,预设搜索顺序可以根据需要确定,比如深度优先搜索或者广度优先搜索等,本技术对此不作限制。
71.继续参考图4,可以按照状态树的第1层的“状态1”节点、第2层的“状态2”节点、第3层左侧的“状态3”节点、第4层左侧的“状态1”节点、(回溯到第3层左侧的“状态3”节点)、第4层中间的“状态4”节点、回溯到第2层的“状态2”节点、第3层右侧的“状态3”节点、第4层中间的“状态1”节点、回溯到第3层右侧的“状态3”节点、第4层右侧的“状态4”节点的顺序遍历状态树,得到如下表3所示的测试用例表,测试用例表中包括4条状态迁移路径,每条状态迁移路径作为一个测试用例。其中,表3中第1列为测试用例的测试编号即标识,用于唯一标识对应的测试用例;第2列为作为测试用例的状态迁移路径。
72.表3测试用例表
73.测试编号状态迁移路径1状态1-》a-》状态2-》b-》状态3-》d-》状态12状态1-》a-》状态2-》b-》状态3-》e-》状态43状态1-》a-》状态2-》c-》状态3-》d-》状态14状态1-》a-》状态2-》c-》状态3-》e-》状态1
74.步骤204,基于测试用例对任务机器人进行测试,并得到测试结果。
75.在示例实施例中,测试装置可以根据测试用例表中的各测试用例,建立对应的测试任务,并按照测试用例对应的测试编号,依次将对应的测试任务下发至任务机器人,以使任务机器人按照测试编号依次执行对应的测试任务,并向测试装置返回各测试任务的执行结果,进而测试装置可以根据测试任务的执行结果,生成测试结果。
76.参考表3所示的测试用例表,测试装置可以生成对应的4个测试任务,并根据4个测试任务的执行结果,生成表4所示的测试结果表。
77.表4测试结果表
78.测试编号执行结果1ok(执行成功)2ok(执行成功)3failed(执行失败)4ok(执行成功)
79.本技术实施例提供的任务机器人的测试方法,获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树,根据状态树,生成至少一个测试用例,基于测试用例对任务机器人进行测试,并得到测试结果。由此,实现了基于任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,自动对任务机器人进行测试,降低了任务机器人测试所需的人工成本,提高了任务机器人的测试效率,且相比通过人为查看任务机器人给出的答案是否符合预期来得到测试结果,本技术得到的测试结果的准确性更高。
80.下面结合图5,对本技术实施例提供的任务机器人的测试方法进行进一步说明。图
5是根据本技术另一个实施例的任务机器人的测试方法的流程图,如图5所示,该方法包括:
81.步骤501,获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件。
82.其中,步骤501的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
83.步骤502,将各状态节点作为状态树中的节点,将各状态节点之间的转移条件,作为状态树中对应节点之间的边,以生成对应的状态树。
84.在示例实施例中,步骤502可以通过以下方式实现:将各状态节点中的起始状态节点,作为状态树的根节点,根节点位于状态树的第1层;根据各状态节点以及各状态节点之间的转移条件,确定状态树的第2层至第n层的节点以及相邻层的节点之间的边,其中,将第n-1层的节点中第一节点对应的转移节点,作为第一节点的子节点,子节点位于状态树的第n层,并将第一节点与对应的转移节点之间的转移条件,作为第一节点与第一节点的子节点之间的边;其中,n为大于1且小于或等于n的整数;第n层的节点与第1层至第n-1层中任意节点对应同一状态节点,或者第n层的节点不存在对应的转移节点。
85.其中,第一节点,可以为第n-1层的节点中的任一节点。
86.其中,可以按照深度优先搜索的顺序或者广度优先搜索的顺序等顺序,根据各状态节点以及各状态节点之间的转移条件,确定状态树的各层的节点以及相邻层的节点之间的边的顺序,本技术对此不作限制。
87.以深度优先搜索为例,参考图3所示的状态迁移图,状态节点“状态1”为起始状态节点,可以先将状态节点“状态1”,作为状态树的根节点,根节点位于状态树的第1层,再将根节点“状态1”对应的转移节点“状态2”,作为根节点的子节点,该子节点位于状态树的第2层,并将根节点“状态1”与对应的转移节点“状态2”之间的转移条件a,作为根节点“状态1”与该子节点之间的边。进一步的,可以将第2层的节点“状态2”对应的转移节点“状态3”,作为第2层的节点“状态2”的子节点,该子节点位于状态树的第3层,并将第2层的节点“状态2”与对应的转移节点“状态3”之间的转移条件b,作为第2层的节点“状态2”与该子节点之间的边。进一步的,可以将第3层的节点“状态3”对应的转移节点“状态1”,作为第3层的节点“状态3”的子节点,该子节点位于状态树的第4层,并将第3层的节点“状态3”与对应的转移节点“状态1”之间的转移条件d,作为第3层的节点“状态3”与该子节点之间的边。由于第4层的节点“状态1”与第1层的节点“状态1”对应同一状态节点,则第4层的节点“状态1”为叶子节点,可以回溯到第3层的节点“状态3”。进一步的,可以将第3层的节点“状态3”对应的转移节点“状态4”,作为第3层的节点“状态3”的子节点,该子节点位于状态树的第4层,并将第3层的节点“状态3”与对应的转移节点“状态4”之间的转移条件e,作为第3层的节点“状态3”与该子节点之间的边。由于第4层的节点“状态4”不存在对应的转移节点,则第4层的节点“状态4”为叶子节点,可以回溯到第2层的节点“状态2”。按照同样的方式,可以确定状态树中的其它节点以及相邻层的节点之间的边,从而生成图4所示的状态树。
88.通过上述方式,实现了根据任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,自动生成对应的状态树。
89.步骤503,对状态树进行深度优先遍历,以得到至少一条从状态树的根节点至叶子节点的状态迁移路径,状态迁移路径,包括从状态树的根节点开始至叶子节点的路径中各
节点对应的状态节点,以及路径中各节点之间的转移条件。
90.步骤504,将各状态迁移路径,作为对应的测试用例。
91.在示例实施例中,可以对状态树进行深度优先遍历,以得到至少一条从状态树的根节点至叶子节点的状态迁移路径,并将每条状态迁移路径,作为一个对应的测试用例。
92.继续参考图4,可以按照状态树的第1层的“状态1”节点、第2层的“状态2”节点、第3层左侧的“状态3”节点、第4层左侧的“状态1”节点、(回溯到第3层左侧的“状态3”节点)、第4层中间的“状态4”节点、回溯到第2层的“状态2”节点、第3层的右侧的“状态3”节点、第4层中间的“状态1”节点、回溯到第3层右侧的“状态3”节点、第4层右侧的“状态4”节点顺序遍历状态树,得到如上述表3所示的测试用例表,测试用例表中包括4条状态迁移路径,每条状态迁移路径作为一个测试用例。
93.步骤505,根据各测试用例,建立对应的测试任务。
94.在示例实施例中,测试装置可以根据每个测试用例,建立一个对应的测试任务,测试任务中可以包括对应的测试用例中的各状态节点、测试任务对应的测试用例中各状态节点对应的转移条件以及对应的输入信息。其中,每个状态节点对应的输入信息,为预先设置的任务机器人在该状态节点时所获取的信息。比如,在状态节点“询问所在城市”,输入信息可以为“我在a城市”或者“b城市”等。
95.比如,根据表3中测试编号为1的测试用例,可以生成对应的测试任务,测试任务中包括状态节点“状态1”、对应的转移条件a以及对应的输入信息,状态节点“状态2”、对应的转移条件b以及对应的输入信息,状态节点“状态3”、对应的转移条件d以及对应的输入信息,状态节点“状态1”以及对应的输入信息。
96.步骤506,响应于获取到针对各测试任务的测试指令,向任务机器人下发对应的测试任务,以使任务机器人基于ai技术执行对应的测试任务。
97.步骤507,获取任务机器人返回的对测试任务的执行结果。
98.在示例实施例中,测试指令可以由用户触发。具体的,测试装置可以提供显示界面,并在显示界面上显示各测试任务对应的用于启动测试过程的测试按钮,从而用户可以按照各测试用例对应的测试编号,依次点击各测试任务对应的测试按钮,以触发针对对应测试任务的测试指令。
99.在示例实施例中,测试指令也可以由rpa机器人触发。即,测试装置在显示界面上显示各测试任务对应的用于启动测试过程的测试按钮后,可以调用rpa机器人工作,从而rpa机器人可以通过模拟鼠标点击操作,依次点击各测试任务对应的测试按钮,以触发针对对应测试任务的测试指令。相应的,在步骤505之前,还可以包括:调用rpa机器人触发针对各测试任务的测试指令。
100.在示例实施例中,rpa机器人可以在测试装置获取上一个测试任务的执行结果之后,再触发下一个测试任务的测试指令。即,rpa机器人可以通过模拟鼠标点击操作,先点击第一个测试任务对应的测试按钮,以触发针对该测试任务的测试指令,并在测试装置获取到任务机器人返回的该测试任务的执行结果之后,点击下一个测试任务对应的测试按钮,触发下一个测试任务的测试指令,直至对任务机器人完成所有测试任务的测试。
101.以表4中的各测试用例为例,rpa机器人点击测试编号为1的测试用例对应的测试按钮后,测试装置可以获取到针对该测试用例对应的测试任务的测试指令,并响应于获取
到该测试指令,向任务机器人下发该测试任务。任务机器人基于ai技术执行测试编号为1的测试用例对应的测试任务,得到执行结果后,可以将执行结果返回测试装置,从而测试装置可以获取任务机器人返回的第1个测试任务的执行结果。进一步的,rpa机器人可以点击测试编号为2的测试用例对应的测试按钮,进而测试装置可以通过上述类似方式,获取任务机器人返回的第2个测试任务的执行结果。由此,通过上述方式,测试装置可以获取4个测试任务的执行结果。
102.通过结合rpa机器人触发针对各测试任务的测试指令,实现了测试指令的自动触发,进而通过响应于获取到针对各测试任务的测试指令,向任务机器人下发对应的测试任务,并根据任务机器人基于ai技术执行测试任务后返回的执行结果,生成测试结果,进一步实现了对任务机器人的自动化测试。
103.可以理解的是,任一测试任务的执行结果可能为执行失败结果或者执行成功结果。下面以各测试任务中的任一测试任务为例,分别对测试装置获取该测试任务的执行失败结果以及执行成功结果的过程进行描述。
104.在示例实施例中,测试装置响应于获取到针对任一测试任务的测试指令,向任务机器人下发对应的测试任务后,任务机器人可以基于ai技术执行该测试任务。
105.其中,测试任务中可以包括对应的测试用例中的各状态节点、测试用例中的各状态节点对应的转移条件以及对应的输入信息,且各状态节点可以按照先后顺序依次编号。
106.具体的,任务机器人可以从测试任务包括的编号为1的状态节点开始运行,在该状态节点,任务机器人可以基于自然语言处理nlp技术,对编号为1的状态节点对应的输入信息进行解析,获取输入信息对应的解析结果,并将解析结果与编号为1的状态节点对应的转移条件进行比较,在确定解析结果与编号为1的状态节点对应的转移条件一致的情况下,可以自动跳转运行至编号为2的状态节点。
107.在编号为2的状态节点,任务机器人可以基于自然语言处理nlp技术,对编号为2的状态节点对应的输入信息进行解析,获取输入信息对应的解析结果,将解析结果与编号为2的状态节点对应的转移条件进行比较,在确定解析结果与编号为1的状态节点对应的转移条件一致的情况下,可以自动跳转运行至编号为3的状态节点。
108.以此类推,直至运行完测试任务中所有的状态节点。
109.在任务机器人执行测试任务的过程中,运行至测试任务中的每个状态节点时,若均能成功跳转运行下一状态节点,直至运行完测试任务中所有的状态节点,则可以向测试装置返回执行成功结果。
110.在任务机器人执行测试任务的过程中,运行至测试任务中的任一目标状态节点时,若基于自然语言处理nlp技术,对输入信息进行解析,获取输入信息对应的解析结果之后,确定解析结果与目标状态节点对应的转移条件不一致,则可以停止运行,并向测试装置返回执行失败结果。
111.相应的,测试装置获取的执行失败结果,是任务机器人基于ai技术执行测试任务的过程中,运行至测试任务中的任一目标状态节点时,基于自然语言处理nlp技术,对输入信息进行解析,获取输入信息对应的解析结果之后,确定解析结果与目标状态节点对应的转移条件不一致,并停止运行的情况下返回的。
112.测试装置获取的执行成功结果,是任务机器人基于ia技术执行测试任务的过程
中,运行至测试任务中的每个状态节点时,基于自然语言处理nlp技术,对输入信息进行解析,获取输入信息对应的解析结果之后,确定解析结果与状态节点对应的转移条件一致,跳转运行下一状态节点,直至运行完测试任务中所有的状态节点的情况下返回的。
113.步骤508,根据执行结果,生成测试结果。
114.在示例实施例中,测试装置可以将各测试任务的执行结果进行整理,生成任务机器人的测试结果。
115.需要说明的是,任务机器人执行测试任务得到对应的执行结果后,也可以将执行结果发送至rpa机器人,从而rpa机器人可以根据执行结果生成测试结果,并根据测试结果生成测试报表。即,步骤507之后,还可以包括:基于rpa机器人,根据执行结果生成测试结果,并根据测试结果生成测试报表。
116.其中,测试报表中可以包括各测试用例、各测试用例对应的测试任务,各测试任务的执行结果、测试结果等信息。
117.由此,实现了基于rpa机器人自动生成任务机器人的测试报表。
118.综上,本技术实施例提供的任务机器人的测试方法,获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,将各状态节点作为状态树中的节点,将各状态节点之间的转移条件,作为状态树中对应节点之间的边,以生成对应的状态树,对状态树进行深度优先遍历,以得到至少一条从状态树的根节点至叶子节点的状态迁移路径,状态迁移路径,包括从状态树的根节点开始至叶子节点的路径中各节点对应的状态节点,以及路径中各节点之间的转移条件,将各状态迁移路径,作为对应的测试用例,根据各测试用例,建立对应的测试任务,响应于获取到针对各测试任务的测试指令,向任务机器人下发对应的测试任务,以使任务机器人基于ai技术执行对应的测试任务,获取任务机器人返回的对测试任务的执行结果,根据执行结果,生成测试结果。由此,实现了基于任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,自动对任务机器人进行测试,降低了任务机器人测试所需的人工成本,提高了任务机器人的测试效率,且相比通过人为查看任务机器人给出的答案是否符合预期来得到测试结果,本技术得到的测试结果的准确性更高。
119.下面结合图6-8,以实际场景中的任务流程为例,对本技术实施例中的任务机器人的测试方法进行说明。
120.参考图6所示的任务机器人的待测试流程的任务流程图,根据图6可知,任务机器人的任务流程中包括7个状态节点,节点名称分别为“询问出发地”、“唤醒ui bot”、“等待过滤信息”、“ui bot filter(过滤)”、“查询失败”、“消息发送”、“运算单元-清空过滤条件”。“询问出发地”与“唤醒ui bot”之间的转移条件为“收集到其他出发地”,“唤醒ui bot”与“等待过滤信息”之间的转移条件为“收集到其他执行结果”,“唤醒ui bot”与“查询失败”之间的转移条件为“接口异常”,“等待过滤信息”与“消息发送”之间的转移条件为“过滤条件等于结束对话”,“等待过滤信息”与“ui bot filter”之间的转移条件为“收集到其他过滤条件”,“ui bot filter”与“运算单元-清空过滤条件”之间的转移条件为“收集到其他执行结果”或者“接口异常”,“运算单元-清空过滤条件”与“等待过滤信息”之间的转移条件为“收集到其他过滤条件”。其中,ui bot指rpa机器人。为了方便描述,本技术实施例中将上述各转移条件用a、b、c、d、e、f、g、h表示。
121.为了对任务机器人的上述任务流程进行测试,测试装置可以通过与任务机器人之间的api,获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,并转化为图7所示的状态迁移图。
122.进一步的,测试装置可以根据多个状态节点以及各状态节点之间的转移条件,按照上述实施例所示的方法,生成图8所示的状态树。
123.进一步的,测试装置可以对图8所示的状态树进行深度优先遍历,以得到下表5所示的测试用例表。其中,测试用例表中包括4条从状态树的根节点至叶子节点的状态迁移路径,每条状态迁移路径作为一个测试用例。
124.表5测试用例表
[0125][0126]
进一步的,测试装置可以根据每个测试用例,建立一个对应的测试任务,测试任务中可以包括对应的测试用例中的各状态节点、测试任务对应的测试用例中各状态节点对应的转移条件以及对应的输入信息。另外,测试任务中还可以包括预设的状态节点,比如开始节点,以及对应的输入信息。
[0127]
其中,根据测试编号为1至4的测试用例建立的测试任务,分别包括表6至9所示的信息。下表中的运行编号为各状态节点(即表中的运行节点)对应的编号,用于唯一标识各测试任务中的状态节点;输入列中的触发词及x1、x2、x3、x4、x5、x6,为各状态节点对应的输入信息;输出列中的信息,为任务机器人基于nlp技术,对输入信息进行解析,获取的解析结果;期望值列中的信息,为各状态节点对应的转移条件。
[0128]
表6测试编号为1的测试用例对应的测试任务
[0129][0130]
表7测试编号为2的测试用例对应的测试任务
[0131][0132]
表8测试编号为3的测试用例对应的测试任务
[0133][0134]
表9测试编号为4的测试用例对应的测试任务
[0135][0136]
测试装置建立各测试用例对应的测试任务后,可以调用rpa机器人触发针对各测试任务的测试指令,并响应于获取到针对各测试任务的测试指令,向任务机器人下发对应的测试任务。
[0137]
对于任一测试任务,任务机器人可以从测试任务包括的编号为1的状态节点开始运行,在该状态节点,任务机器人可以基于自然语言处理nlp技术,对编号为1的状态节点对应的输入信息进行解析,获取输入信息对应的解析结果,并将解析结果与编号为1的状态节点对应的转移条件进行比较,在确定解析结果与编号为1的状态节点对应的转移条件一致的情况下,可以自动跳转运行至编号为2的状态节点。
[0138]
在编号为2的状态节点,任务机器人可以基于自然语言处理nlp技术,对编号为2的状态节点对应的输入信息进行解析,获取输入信息对应的解析结果,将解析结果与编号为2
的状态节点对应的转移条件进行比较,在确定解析结果与编号为1的状态节点对应的转移条件一致的情况下,可以自动跳转运行至编号为3的状态节点。
[0139]
以此类推,直至运行完测试任务中所有的状态节点。
[0140]
在任务机器人执行测试任务的过程中,运行至测试任务中的每个状态节点时,若均能成功跳转运行下一状态节点,直至运行完测试任务中所有的状态节点,则可以向测试装置返回执行成功结果。
[0141]
在任务机器人执行测试任务的过程中,运行至测试任务中的任一目标状态节点时,若基于自然语言处理nlp技术,对输入信息进行解析,获取输入信息对应的解析结果之后,确定解析结果与目标状态节点对应的转移条件不一致,则可以停止运行,并向测试装置返回执行失败结果。
[0142]
测试装置根据任务机器人返回的各测试任务的执行结果,即可得到任务机器人的测试结果。
[0143]
由此,测试装置可以基于任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,自动对任务机器人进行测试,从而降低任务机器人测试所需的人工成本,提高任务机器人的测试效率,且相比通过人为查看任务机器人给出的答案是否符合预期来得到测试结果,本技术得到的测试结果的准确性更高。
[0144]
为了实现上述实施例,本技术还提出了一种任务机器人的测试装置。图9是根据本技术一个实施例的任务机器人的测试装置的结构示意图。
[0145]
如图9所示,该任务机器人的测试装置900,包括:获取模块901、第一生成模块902、第二生成模块903和测试模块904。
[0146]
其中,获取模块901,用于获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件;
[0147]
第一生成模块902,用于根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树;
[0148]
第二生成模块903,用于根据状态树,生成至少一个测试用例;
[0149]
测试模块904,用于基于测试用例对任务机器人进行测试,并得到测试结果。
[0150]
需要说明的是,本技术实施例的任务机器人的测试装置900,可以执行上述实施例提供的任务机器人的测试方法,以下将任务机器人的测试装置简称为测试装置。其中,该测试装置可以由软件和/或硬件实现,该测试装置可以为电子设备,或者也可以配置在电子设备中,以实现对任务机器人的测试,从而降低任务机器人测试所需的人工成本,提高任务机器人的测试效率及准确性。其中,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
[0151]
在本技术的一个实施例中,第一生成模块902,包括:
[0152]
生成单元,用于将各状态节点作为状态树中的节点,将各状态节点之间的转移条件,作为状态树中对应节点之间的边,以生成对应的状态树。
[0153]
在本技术的一个实施例中,生成单元,用于:
[0154]
将各状态节点中的起始状态节点,作为状态树的根节点,根节点位于状态树的第1层;
[0155]
根据各状态节点以及各状态节点之间的转移条件,确定状态树的第2层至第n层的
节点以及相邻层的节点之间的边,其中,将第n-1层的节点中第一节点对应的转移节点,作为第一节点的子节点,子节点位于状态树的第n层,并将第一节点与对应的转移节点之间的转移条件,作为第一节点与第一节点的子节点之间的边;
[0156]
其中,n为大于1且小于或等于n的整数;第n层的节点与第1层至第n-1层中任意节点对应同一状态节点,或者第n层的节点不存在对应的转移节点。
[0157]
在本技术的一个实施例中,第二生成模块903,包括:
[0158]
遍历单元,用于对状态树进行深度优先遍历,以得到至少一条从状态树的根节点至叶子节点的状态迁移路径,状态迁移路径,包括从状态树的根节点开始至叶子节点的路径中各节点对应的状态节点,以及路径中各节点之间的转移条件;
[0159]
确定单元,用于将各状态迁移路径,作为对应的测试用例。
[0160]
在本技术的一个实施例中,测试模块904,包括:
[0161]
建立单元,用于根据各测试用例,建立对应的测试任务;
[0162]
发送单元,用于响应于获取到针对各测试任务的测试指令,向任务机器人下发对应的测试任务,以使任务机器人基于ai技术执行对应的测试任务;
[0163]
获取单元,用于获取任务机器人返回的对测试任务的执行结果;
[0164]
处理单元,用于根据执行结果,生成测试结果。
[0165]
在本技术的一个实施例中,测试模块904,还可以包括:
[0166]
调用单元,用于调用rpa机器人触发针对各测试任务的测试指令。
[0167]
在本技术的一个实施例中,任务机器人的测试装置900,还可以包括:
[0168]
在本技术的一个实施例中,测试任务中包括对应的测试用例中的各状态节点、各状态节点对应的转移条件以及对应的输入信息;执行结果包括执行失败结果;
[0169]
执行失败结果,是任务机器人基于ai技术执行测试任务的过程中,运行至测试任务中的任一目标状态节点时,基于自然语言处理nlp技术,对输入信息进行解析,获取输入信息对应的解析结果之后,确定解析结果与目标状态节点对应的转移条件不一致,并停止运行的情况下返回的。
[0170]
在本技术的一个实施例中,测试任务中包括对应的测试用例中的各状态节点、各状态节点对应的转移条件以及对应的输入信息;执行结果包括执行成功结果;
[0171]
执行成功结果,是任务机器人基于ai技术执行测试任务的过程中,运行至测试任务中的每个状态节点时,基于自然语言处理nlp技术,对输入信息进行解析,获取输入信息对应的解析结果之后,确定解析结果与状态节点对应的转移条件一致,跳转运行下一状态节点,直至运行完测试任务中所有的状态节点的情况下返回的。
[0172]
需要说明的是,前述对任务机器人的测试方法实施例的解释说明也适用于该实施例的任务机器人的测试装置,本技术任务机器人的测试装置实施例中未公布的细节,此处不再赘述。
[0173]
综上,本技术实施例的任务机器人的测试装置,获取任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,根据多个状态节点以及各状态节点之间的转移条件,生成对应的状态树,根据状态树,生成至少一个测试用例,基于测试用例对任务机器人进行测试,并得到测试结果。由此,实现了基于任务机器人的待测试流程中的多个状态节点以及各状态节点之间的转移条件,自动对任务机器人进行测试,降低了任务机器
人测试所需的人工成本,提高了任务机器人的测试效率,且相比通过人为查看任务机器人给出的答案是否符合预期来得到测试结果,本技术得到的测试结果的准确性更高。
[0174]
为了实现上述实施例,本技术实施例还提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如前述任一方法实施例所述的任务机器人的测试方法。
[0175]
为了实现上述实施例,本技术实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述任一方法实施例所述的任务机器人的测试方法。
[0176]
为了实现上述实施例,本技术实施例还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如前述任一方法实施例所述的任务机器人的测试方法。
[0177]
图10示出了适于用来实现本技术实施方式的示例性电子设备的框图。图10显示的电子设备12仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0178]
如图10所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括存储器28和处理单元16)的总线18。
[0179]
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture;以下简称:isa)总线,微通道体系结构(micro channel architecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(video electronics standards association;以下简称:vesa)局域总线以及外围组件互连(peripheral component interconnection;以下简称:pci)总线。
[0180]
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0181]
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory;以下简称:ram)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图10未显示,通常称为“硬盘驱动器”)。尽管图10中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compact disc read only memory;以下简称:cd-rom)、数字多功能只读光盘(digital video disc read only memory;以下简称:dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本技术各实施例的功能。
[0182]
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常
执行本技术所描述的实施例中的功能和/或方法。
[0183]
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(local area network;以下简称:lan),广域网(wide area network;以下简称:wan)和/或公共网络,例如因特网)通信。如图10所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图10中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0184]
处理单元16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
[0185]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0186]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0187]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0188]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其
他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0189]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0190]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0191]
此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0192]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献