一种人工智能应答系统测试方法及系统技术领域
本发明涉及人工智能相关技术领域,特别是一种人工智能应答系统
测试方法及系统。
背景技术
在人工智能领域,目前涌现出了很多优秀的产品,这些产品都是基
于自然语言处理的自动人工智能应答系统,对于此类系统目前有一些开
源的自动化测试框架,为了解决基于自然语言处理的自动人工智能应答
系统的自动化测试问题,引入了selenium框架+python的自动化解决方
案,可以实现在web端对于系统提问输入和回答输出判断的自动化测试,
由于大部分自动应答系统对于唯一的输入有唯一的答案,因此可以直接
用结果匹配的方式判断测试执行的结果。
现有的自动化技术有基于selenium框架来实现web的自动化测试,
在web页面的输入框输入问题,并抓取输入框的返回结果,将问题和结
果保存到文件中,再进行结果判断,再执行下一条问题。
由于智能应答系统的问题和答案的数据非常大,因此将测试脚本和
测试数据分离,测试数据以一定的结构保存在表格中便于读取和控制保
存形式以行为单位进行分割,一行数据是一个会话。不同列数据代表不
同的会话信息,每一行包含如下的内容:
表1现有技术的问题和答案保存方法
问题
场景标识
测试账号
预测答案
然而,对于高频问题,有可能出现多个答案,即出现话术轮播场景。
然而现有的自动化测试流程和测试数据保存方式无法满足话术轮播场景
下的结果判断。
发明内容
基于此,有必要针对现有技术的自动化测试流程和测试数据保存方
式无法满足话术轮播场景下的结果判断的技术问题,提供一种人工智能
应答系统测试方法及系统。
一种人工智能应答系统测试方法,包括:
测试数据获取步骤,包括:获取包括至少一个问题以及与每个问题
关联的多个轮播答案;
测试用例获取步骤,包括:获取测试用例,选择与所述测试用例关
联的问题作为测试问题并输出;
比较步骤,包括:获取人工智能应答系统对所述测试问题的话术作
为测试话术,如果所述测试话术与其中一个所述测试问题关联的轮播答
案匹配,则判断该测试用例测试通过。
一种人工智能应答系统测试系统,包括:
测试数据获取模块,用于:获取包括至少一个问题以及与每个问题
关联的多个轮播答案;
测试用例获取模块,用于:获取测试用例,选择与所述测试用例关
联的问题作为测试问题并输出;
比较模块,用于:获取人工智能应答系统对所述测试问题的话术作
为测试话术,如果所述测试话术与其中一个所述测试问题关联的轮播答
案匹配,则判断该测试用例测试通过。
本发明通过获取一个问题及与该问题相关的多个轮播答案,并在测
试人工智能应答系统时,将测试话术与多个轮播答案进行匹配,以实现
对话术轮播场景下进行测试。
附图说明
图1为本发明一种人工智能应答系统测试方法的工作流程图;
图2为本发明最佳实施例的工作流程图;
图3为本发明一种人工智能应答系统测试系统的模块结构图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
如图1所示为本发明一种人工智能应答系统测试方法的工作流程图,
包括:
步骤S101,包括:获取包括至少一个问题以及与每个问题关联的多
个轮播答案;
步骤S102,包括:获取测试用例,选择与所述测试用例关联的问题
作为测试问题并输出;
步骤S103,包括:获取人工智能应答系统对所述测试问题的话术作
为测试话术,如果所述测试话术与其中一个所述测试问题关联的轮播答
案匹配,则判断该测试用例测试通过。
步骤S101中获取到的每个问题,均关联对应的轮播答案。由于轮播
答案为多个,因此,在步骤S103中,当人工智能应答系统给出不同的话
术时,本发明的测试方法也能很好地适应。在话术轮播场景中,人工智
能应答系统针对同一问题可能会给出不同的答案,因此同一个测试用例,
现有技术也很可能会出现第一次测试通过而第二次测试失败的情况,而
本发明由于将多个轮播答案与同一问题关联,因此能很好地克服现有技
术所出现的问题,使得测试结果在话术轮播场景下稳定统一。
通过本发明解决了自动化测试中一个问题对应多个答案的结果判断
问题,此方案可以适用于所有类似的场景,可以大幅度提升基于人工智
能的自动应答系统的自动化测试用例覆盖率,降低测试成本。
在其中一个实施例中,所述问题还与用于表示所关联的轮播答案数
量的轮播答案条数进行关联保存。
轮播答案条数可以在步骤S101时通过分析获取的问题以及与每个问
题关联的多个轮播答案计算得到,也可以由用户在提供问题及轮播答案
时一同提供。
在其中一个实施例中,所述步骤S103,具体包括:获取人工智能应
答系统对所述测试问题的话术作为测试话术,获取所述测试问题关联的
轮播答案条数作为测试轮播答案条数,将所述测试答案与所述测试问题
关联的轮播答案进行比较匹配,如果所述测试话术与其中一个轮播答案
匹配,则判断该测试用例测试通过并结束所述比较匹配,否则所述测试
话术与另一个轮播答案进行比较匹配,如果所述测试话术与轮播答案比
较匹配的次数超过所述测试轮播答案条数,则判断该测试用例测试失败。
由于将问题与轮播答案条数关联保存,因此可以知道一个问题具有
多少的轮播答案,从而将测试话术与所有的轮播答案进行比较匹配,使
得测试更为准确。
在其中一个实施例中,所述问题、以及关联的轮播答案和轮播答案
条数采用二维表保存,所述二维表的每一行保存一个问题、以及相关联
的轮播答案和轮播答案条数。
在其中一个实施例中:
所述步骤S101,具体包括:获取测试账号,获取包括至少一个问题
以及与每个问题关联的多个轮播答案,所述问题以及所述轮播答案与所
述测试账号关联;
所述步骤S102,具体包括:通过测试账号登录人工智能应答系统,
获取测试用例,选择与所述测试用例关联的问题作为测试问题并输出。
作为本发明的最佳实施例,问题、轮播答案、轮播答案条数的保存
方式如下表2所示:
表2本发明最佳实施例的问题和答案保存方式
通过增加轮播答案条数和多个轮播答案的方式来解决轮播话术数据
组织形式的问题,n=1时可以兼容以前的方案,n>1时支持答案话术轮播。
其中,场景结束标识用于表示为一个测试用例的结束。
如图2所示为本发明最佳实施例的工作流程图,包括:
步骤S201,读取测试用例;
步骤S202,打开浏览器;
步骤S203,输入待测试的人工智能应答系统的URL地址;
步骤S204,从表2所示的二维表中获取测试账号,通过测试账号登
录人工智能应答系统;
步骤S205,从表2所示的二维表中获取问题,并输入人工智能应答
系统;
步骤S206,抓取人工智能应答系统的结果;
步骤S207,获取问题所对应的轮播答案条数n,将步骤S206所得到
的结果在n条轮播答案中进行匹配比较,如果匹配成功,则执行步骤
S208,否则如果n条轮播答案均不匹配则执行步骤S209;
步骤S208,执行结果记录为通过(PASS),执行步骤S210;
步骤S209,执行结果记录为失败(FAIL),执行步骤S210;
步骤S210,判断是否为表2中的最后一个问题,如果是则结束,否
则执行步骤S205。
如图3所示为本发明一种人工智能应答系统测试系统的模块结构图,
包括:
测试数据获取模块301,用于:获取包括至少一个问题以及与每个问
题关联的多个轮播答案;
测试用例获取模块302,用于:获取测试用例,选择与所述测试用例
关联的问题作为测试问题并输出;
比较模块303,用于:获取人工智能应答系统对所述测试问题的话术
作为测试话术,如果所述测试话术与其中一个所述测试问题关联的轮播
答案匹配,则判断该测试用例测试通过。
在其中一个实施例中,所述问题还与用于表示所关联的轮播答案数
量的轮播答案条数进行关联保存。
在其中一个实施例中,所述比较模块,具体用于:获取人工智能应
答系统对所述测试问题的话术作为测试话术,获取所述测试问题关联的
轮播答案条数作为测试轮播答案条数,将所述测试答案与所述测试问题
关联的轮播答案进行比较匹配,如果所述测试话术与其中一个轮播答案
匹配,则判断该测试用例测试通过并结束所述比较匹配,否则所述测试
话术与另一个轮播答案进行比较匹配,如果所述测试话术与轮播答案比
较匹配的次数超过所述测试轮播答案条数,则判断该测试用例测试失败。
在其中一个实施例中,所述问题、以及关联的轮播答案和轮播答案
条数采用二维表保存,所述二维表的每一行保存一个问题、以及相关联
的轮播答案和轮播答案条数。
在其中一个实施例中,所述测试数据获取模块,具体用于:获取测
试账号,获取包括至少一个问题以及与每个问题关联的多个轮播答案,
所述问题以及所述轮播答案与所述测试账号关联;
所述测试用例获取模块,具体用于:通过测试账号登录人工智能应
答系统,获取测试用例,选择与所述测试用例关联的问题作为测试问题
并输出。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体
和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的
是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,
还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本
发明专利的保护范围应以所附权利要求为准。