CN113807077B - 自然语言测试脚本解析处理方法、装置及电子设备 - Google Patents

自然语言测试脚本解析处理方法、装置及电子设备 Download PDF

Info

Publication number
CN113807077B
CN113807077B CN202111123190.2A CN202111123190A CN113807077B CN 113807077 B CN113807077 B CN 113807077B CN 202111123190 A CN202111123190 A CN 202111123190A CN 113807077 B CN113807077 B CN 113807077B
Authority
CN
China
Prior art keywords
keyword
list
analysis
command
grammar
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111123190.2A
Other languages
English (en)
Other versions
CN113807077A (zh
Inventor
褚建杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo Jinshuo Intelligent Technology Co ltd
Original Assignee
Ningbo Jinshuo Intelligent Technology Co ltd
Filing date
Publication date
Application filed by Ningbo Jinshuo Intelligent Technology Co ltd filed Critical Ningbo Jinshuo Intelligent Technology Co ltd
Priority to CN202111123190.2A priority Critical patent/CN113807077B/zh
Publication of CN113807077A publication Critical patent/CN113807077A/zh
Application granted granted Critical
Publication of CN113807077B publication Critical patent/CN113807077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请涉及自然语言测试脚本解析处理方法、装置及电子设备,属于自动化测试技术领域,本申请的方法包括,获取自然语言测试脚本中的自然语句;对所述自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值;针对赋值后的关键词列表,基于预先构建的解析自动状态机生成语法树;对所述语法树进行检错,在检错通过的情况下遍历所述语法树查找关键词所对应的命令生成规则,根据命令生成规则生成执行命令并添加入命令列表,否则结束对该语句的解析并输出报错信息。本申请具体实现了对自然语言测试脚本的解析处理,有助于降低功能测试中脚本编写难度,提升测试效率。

Description

自然语言测试脚本解析处理方法、装置及电子设备
技术领域
本申请属于自动化测试技术领域,具体涉及一种自然语言测试脚本解析处理方法、装置及电子设备。
背景技术
随着计算机技术的飞速发展,终端设备目前已在人们的日常生活中得到了广泛的使用,为人们的生活带来诸多的方便。为了确保终端设备能够正常使用,各终端设备在进入市场之前都需要经过测试环节,而终端设备的自动化测试一直是业界难题,尤其是终端设备上的应用(包括手机APP、公众号、小程序等)的测试。
现有相关技术中,自动化测试实现中,开源或者商业化产品,都是基于开发使用的控件进行自动化脚本的编写的,这种方式的测试编写脚本难度大,对测试工程师不友好。针对于此,本申请提出一种解决方案,使用文本化的描述用例,自动根据描述,将自然语言转换为机器可识别的语言,操作软件或者硬件测试机器人,完成测试,并输出测试报告。
在这其中,涉及到如何具体实现对自然语言测试脚本的解析处理问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供一种自然语言测试脚本解析处理方法、装置及电子设备,具体实现对自然语言测试脚本的解析处理,有助于降低功能测试中脚本编写难度,提升测试效率。
为实现以上目的,本申请采用如下技术方案:
第一方面,
本申请提供一种自然语言测试脚本解析处理方法,该处理方法包括:
获取自然语言测试脚本中的自然语句;
对所述自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值;
针对赋值后的关键词列表,基于预先构建的解析自动状态机生成语法树;
对所述语法树进行检错,在检错通过的情况下遍历所述语法树查找关键词所对应的命令生成规则,根据命令生成规则生成执行命令并添加入命令列表,
否则结束对该语句的解析并输出报错信息。
可选地,所述对所述自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值,具体为:
基于预先构建的关键词切分规则表对所述自然语句进行切割处理,得到语句所对应的关键词列表;
根据预先构建的关键词表中的关键词类型信息,对所述关键词列表中关键词进行类型赋值。
可选地,所述关键词切分规则表和所述关键词表的预先构建过程,包括:
根据测试场景中的自然语言需求,进行关键语法以及关键词类型定义,并对应生成语法表和所述关键词表;
根据所述关键词表进行反向生成解析,基于解析得到的规则信息构建所述关键词切分规则表。
可选地,所述解析自动状态机的预先构建过程,具体为:
根据所述语法表和所述关键词表进行解析,得到构建解析自动状态机的结构关系信息;
根据所述结构关系信息构建所述解析自动状态机。
可选地,所述遍历所述语法树查找关键词所对应的命令生成规则,具体为:
根据预先构建的命令解析表与所述关键词表中关键词的对应关系,遍历所述语法树查找关键词所对应的命令生成规则;
其中,通过定义语法中命令与关键词的对应关系,来预先构建所述命令解析表。
可选地,在得到含有执行命令的命令列表后,还包括调用执行引擎对命令列表中的所述执行命令进行执行处理。
可选地,所述执行处理过程包括:
获取所述自然语言测试脚本所针对的终端设备的界面元素信息;
根据所述界面元素信息构建表述元素方位及距离关系的有向图;
基于所述有向图查找执行命令所涉及界面元素的坐标,根据得到的坐标下发执行命令给终端设备进行命令执行。
可选地,在所述根据命令生成规则生成执行命令过程中,还包括对生成过程的检错,
在检错通过的情况下,将生成的执行命令添加入命令列表,否则直接结束对该语句的解析并输出报错信息。
第二方面,
本申请提供一种自然语言测试脚本解析处理装置,该装置包括:
获取模块,用于获取自然语言测试脚本中的自然语句;
切割处理模块,用于对所述自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值;
命令解析处理模块,用于针对赋值后的所述关键词列表,基于预先构建的解析自动状态机生成语法树;以及用于,
对所述语法树进行检错,在检错通过的情况下遍历所述语法树查找关键词所对应的命令生成规则,根据命令生成规则生成执行命令并添加入命令列表,
否则结束对该语句的解析并输出报错信息。
第三方面,
本申请提供一种电子设备,包括:
存储器,其上存储有可执行程序;
处理器,用于执行所述存储器中的所述可执行程序,以实现上述所述方法的步骤。
本申请采用以上技术方案,至少具备以下有益效果:
本申请中通过具体的配置,对脚本中的自然语句进行切割,基于切割得到的关键词列表,采用预先构建的解析自动状态机进行处理,得到语句中实际的执行命令,以便于在功能测试中基于自然语言测试脚本实现自动化测试。该方案具体实现了对自然语言测试脚本的解析处理,有助于降低功能测试中脚本编写难度,提升测试效率。
本发明的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。
图1为本申请一个实施例提供的自然语言测试脚本解析处理方法的流程示意图;
图2为本申请一个实施例中关键语法定义的说明示意图;
图3为本申请一个实施例中解析自动状态机的说明示意图;
图4为本申请一个实施例中语法树的说明示意图;
图5为本申请一个实施例中表述元素方位及距离关系的有向图的说明示意图;
图6为本申请一个实施例提供的自然语言测试脚本解析处理装置的结构示意图;
图7为本申请一个实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
如背景技术中所述,现有相关技术中,自动化测试实现中,开源或者商业化产品,都是基于开发使用的控件进行自动化脚本的编写的,这种方式的测试编写脚本难度大,对测试工程师不友好。针对于此,本申请提出一种解决方案,使用文本化的描述用例,自动根据描述,将自然语言转换为机器可识别的语言,操作软件或者硬件测试机器人,完成测试,并输出测试报告。在这其中,涉及到如何具体实现对自然语言测试脚本的解析处理问题。
针对该技术问题,本申请提出一种自然语言测试脚本解析处理方法。在一实施例中,如图1所示,该处理方法包括:
步骤S110,获取自然语言测试脚本中的自然语句;
举例而言,该实施例中,脚本是针对外卖软件的功能测试脚本,这里获取的自然语句为“点击美团按钮”。
步骤S120,对该自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值;
具体的,步骤S120中,基于预先构建的关键词切分规则表对自然语句进行切割处理,得到语句所对应的关键词列表;根据预先构建的关键词表中的关键词类型信息,对关键词列表中关键词进行类型赋值,相关构建过程在后文进行介绍;
这里继续前文的举例,针对“点击美团按钮”这一语句,得到的关键词列表中内容为“点击”、“美团”、“按钮”;进行类型赋值的结果为,“点击”->"动作",“美团”->"关键词","按钮"->"控件"。
之后继续进行步骤S130,针对赋值后的关键词列表,基于预先构建的解析自动状态机生成语法树;
之后如图1所示,对得到的语法树进行检错(即判断语法树的结构是否符合正常的语法树结构),在检错通过的情况下,
进行步骤S140,遍历语法树查找关键词所对应的命令生成规则,根据命令生成规则生成执行命令并添加入命令列表,
若检错不通过,则进行步骤S150,结束对该语句的解析并输出报错信息。
上述步骤S140中,具体的,根据预先构建的命令解析表与关键词表中关键词的对应关系,遍历语法树查找关键词所对应的命令生成规则,其中,通过定义语法中命令与关键词的对应关系,来预先构建命令解析表。
作为一种具体实施方式,在上述根据命令生成规则生成执行命令过程中,也包括对生成过程的检错,
在检错通过的情况下,将生成的执行命令添加入命令列表,否则直接结束对该语句的解析并输出报错信息。
举例而言,上述过程中提到的报错信息包括:错误类型提示信息以及语句所在行号信息等。
本申请的技术方案,通过具体的配置,对脚本中的自然语句进行切割,基于切割得到的关键词列表,采用预先构建的解析自动状态机进行处理,得到语句中实际的执行命令,以便于在功能测试中基于自然语言测试脚本实现自动化测试。该方案具体实现了对自然语言测试脚本的解析处理,有助于降低功能测试中脚本编写难度,提升测试效率。
下面对方案中涉及的,关键词切分规则表和关键词表的预先构建过程进行一下介绍。
本申请中,关键词切分规则表和关键词表的预先构建过程,包括:
根据测试场景中的自然语言需求,进行关键语法(也称作“文法”)以及关键词类型定义,并对应生成语法表和关键词表;
举例而言,图2所示为一具体测试场景下关键文法的定义描述,定义得到的语法表用于后续构建解析自动状态机;而关于关键词类型定义,举例如下:
“动作->点击|单击|双击”,“控件->按钮|输入框|图标”,“点击操作–>动作+控件”等。
在得到上述关键词表的基础上,根据关键词表进行反向生成解析,基于解析得到的规则信息构建关键词切分规则表,即根据关键词表反向生成解析自然语言的规则表。
下面再对方案中涉及的解析自动状态机的构建过程进行一下介绍。
本申请中,解析自动状态机的预先构建过程,具体为:
根据语法表和关键词表进行解析,得到构建解析自动状态机的结构关系信息;根据结构关系信息构建解析自动状态机。
具体的,举例而言,基于语法表可以解析生成SLR文法分析表和LALR分析表,根据SLR文法分析表和LALR分析表来生成解析自动状态机;
如图3所示,为一具体测试场景中,构建的解析自动状态机的说明示意图,图3中,左上侧为语法描述及涉及的终结符描述,右上侧为状态机的执行规则局部展示,下侧为状态机的动作执行规则展示。
为便于理解本申请的技术方案,基于上述对解析自动状态机的介绍,这里再对步骤S130中语法树的生成过程进行一下说明:
举例而言,得到的关键词列表中关键词序列(也称之为为token序列)为,id(id)+(+)id(id)*(*)id(id);将序列带入图3所示状态机,默认状态S0输入token id根据动作执行规则进入状态S5,根据状态S5输入token+再次根据动作执行,如果状态冲突了需要进行条件判断是进行归约还是转移;
关于归约还是转移,举例而言,出现文法:
A–>.a
B->a.
如果这2个定义出现在同一个状态中。并且当前解析的token就是a,那么这个时候就是归约和转移的冲突。此时需要进行前看和后看,来处理冲突,根据文法本身的相关性进行选择是转移还是归约。
如此依次类推,就可得到如图4所示的语法树。需要说明的是,该过程中涉及的原理实现与现有编译原理类似,基于上述原理的相关方法实现可现于现有公开技术资料,本申请这里就不进行进一步赘述了。
在上述实施例的基础上,在另一实施例中,本申请的技术方案中,在得到含有执行命令的命令列表后,还包括调用执行引擎对命令列表中的执行命令进行执行处理。
具体的,执行处理过程包括:
获取自然语言测试脚本所针对的终端设备的界面元素信息,如终端设备为一智能手机,这里的界面元素信息指该手机上运行应用的界面元素信息;
根据获取到的界面元素信息构建表述元素方位及距离关系的有向图,例如,在一实际场景下,构建的有向图如图5所示;
基于有向图查找执行命令所涉及界面元素的坐标,根据得到的坐标下发执行命令给终端设备进行命令执行。
举例而言,针对“点击美团按钮”进行解析处理,得到的命令列表的内容为,动作命令:"点击"
查询命令:"美团"、“按钮”
在调用执行引擎进行过程中,就会基于有相同查询界面上美图按钮的坐标,到坐标后对应下发动作命令给终端设备,以使命令进行执行。
图6为本申请一个实施例提供的自然语言测试脚本解析处理装置的结构示意图,如图6所示,该域名自然语言测试脚本解析处理装置300包括:
获取模块301,用于获取自然语言测试脚本中的自然语句;
切割处理模块302,用于对自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值;
命令解析处理模块303,用于针对赋值后的关键词列表,基于预先构建的解析自动状态机生成语法树;以及用于,
对语法树进行检错,在检错通过的情况下遍历语法树查找关键词所对应的命令生成规则,根据命令生成规则生成执行命令并添加入命令列表,
否则结束对该语句的解析并输出报错信息。
关于上述相关实施例中的自然语言测试脚本解析处理装置300,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7为本申请一个实施例提供的电子设备的结构示意图,如图7所示,该电子设备400包括:
存储器401,其上存储有可执行程序;
处理器402,用于执行存储器401中的可执行程序,以实现上述方法的步骤。
关于上述实施例中的电子设备400,其处理器402执行存储器401中的程序的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (7)

1.一种自然语言测试脚本解析处理方法,其特征在于,包括:
获取自然语言测试脚本中的自然语句;
对所述自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值;
针对赋值后的关键词列表,基于预先构建的解析自动状态机生成语法树;
对所述语法树进行检错,在检错通过的情况下遍历所述语法树查找关键词所对应的命令生成规则,根据命令生成规则生成执行命令并添加入命令列表,否则结束对该语句的解析并输出报错信息;
所述对所述自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值,具体为:
基于预先构建的关键词切分规则表对所述自然语句进行切割处理,得到语句所对应的关键词列表;
根据预先构建的关键词表中的关键词类型信息,对所述关键词列表中关键词进行类型赋值;
所述关键词切分规则表和所述关键词表的预先构建过程,包括:
根据测试场景中的自然语言需求,进行关键语法以及关键词类型定义,并对应生成语法表和所述关键词表;
根据所述关键词表进行反向生成解析,基于解析得到的规则信息构建所述关键词切分规则表;
所述解析自动状态机的预先构建过程,具体为:
根据所述语法表和所述关键词表进行解析,得到构建解析自动状态机的结构关系信息;
根据所述结构关系信息构建所述解析自动状态机。
2.根据权利要求1所述的方法,其特征在于,所述遍历所述语法树查找关键词所对应的命令生成规则,具体为:
根据预先构建的命令解析表与所述关键词表中关键词的对应关系,遍历所述语法树查找关键词所对应的命令生成规则;
其中,通过定义语法中命令与关键词的对应关系,来预先构建所述命令解析表。
3.根据权利要求1所述的方法,其特征在于,在得到含有执行命令的命令列表后,还包括调用执行引擎对命令列表中的所述执行命令进行执行处理。
4.根据权利要求3所述的方法,其特征在于,所述执行处理过程包括:
获取所述自然语言测试脚本所针对的终端设备的界面元素信息;
根据所述界面元素信息构建表述元素方位及距离关系的有向图;
基于所述有向图查找执行命令所涉及界面元素的坐标,根据得到的坐标下发执行命令给终端设备进行命令执行。
5.根据权利要求1所述的方法,其特征在于,在所述根据命令生成规则生成执行命令过程中,还包括对生成过程的检错,
在检错通过的情况下,将生成的执行命令添加入命令列表,否则直接结束对该语句的解析并输出报错信息。
6.一种自然语言测试脚本解析处理装置,其特征在于,包括:
获取模块,用于获取自然语言测试脚本中的自然语句;
切割处理模块,用于对所述自然语句进行切割处理,得到语句所对应的关键词列表并对表中关键词进行类型赋值,具体为:
基于预先构建的关键词切分规则表对所述自然语句进行切割处理,得到语句所对应的关键词列表;根据预先构建的关键词表中的关键词类型信息,对所述关键词列表中关键词进行类型赋值;
所述关键词切分规则表和所述关键词表的预先构建过程,包括:根据测试场景中的自然语言需求,进行关键语法以及关键词类型定义,并对应生成语法表和所述关键词表;根据所述关键词表进行反向生成解析,基于解析得到的规则信息构建所述关键词切分规则表;
命令解析处理模块,用于针对赋值后的所述关键词列表,基于预先构建的解析自动状态机生成语法树;以及用于,对所述语法树进行检错,在检错通过的情况下遍历所述语法树查找关键词所对应的命令生成规则,根据命令生成规则生成执行命令并添加入命令列表,否则结束对该语句的解析并输出报错信息;
所述解析自动状态机的预先构建过程,具体为:根据所述语法表和所述关键词表进行解析,得到构建解析自动状态机的结构关系信息;根据所述结构关系信息构建所述解析自动状态机。
7.一种电子设备,其特征在于,包括:
存储器,其上存储有可执行程序;
处理器,用于执行所述存储器中的所述可执行程序,以实现权利要求1-5中任一项所述方法的步骤。
CN202111123190.2A 2021-09-24 自然语言测试脚本解析处理方法、装置及电子设备 Active CN113807077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111123190.2A CN113807077B (zh) 2021-09-24 自然语言测试脚本解析处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111123190.2A CN113807077B (zh) 2021-09-24 自然语言测试脚本解析处理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113807077A CN113807077A (zh) 2021-12-17
CN113807077B true CN113807077B (zh) 2024-07-02

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109460368A (zh) * 2018-11-22 2019-03-12 北京同有飞骥科技股份有限公司 基于语法转换的自动测试方法、装置及存储介质
CN112732589A (zh) * 2021-02-19 2021-04-30 京东数科海益信息科技有限公司 控件测试方法、装置、设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109460368A (zh) * 2018-11-22 2019-03-12 北京同有飞骥科技股份有限公司 基于语法转换的自动测试方法、装置及存储介质
CN112732589A (zh) * 2021-02-19 2021-04-30 京东数科海益信息科技有限公司 控件测试方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
Fantechi et al. Applications of linguistic techniques for use case analysis
CN108763064B (zh) 一种基于黑盒函数与机器学习的代码测试生成方法和装置
US20220414463A1 (en) Automated troubleshooter
CN116737908A (zh) 知识问答方法、装置、设备和存储介质
CN111427784B (zh) 一种数据获取方法、装置、设备及存储介质
CN112506778A (zh) Web用户界面自动化测试方法、装置、设备和存储介质
CN111368029A (zh) 基于意图三元组的交互方法、装置、设备及存储介质
CN114064601B (zh) 存储过程转换方法、装置、设备和存储介质
CN113778852A (zh) 一种基于正则表达式的代码分析方法
CN111694738B (zh) 一种sql测试脚本的生成方法
CN113807077B (zh) 自然语言测试脚本解析处理方法、装置及电子设备
CN112270197A (zh) 一种基于文字段落的动画草稿生成方法与装置
CN113821496B (zh) 数据库迁移方法、系统、设备及计算机可读存储介质
CN111723580B (zh) 基于语音识别与图像识别的电力调度厂站信息图效验方法
CN115481025A (zh) 自动化测试的脚本录制方法、装置、计算机设备及介质
CN113807077A (zh) 自然语言测试脚本解析处理方法、装置及电子设备
CN113806230A (zh) 基于用例语音的软件测试方法、装置、设备及介质
CN110764783B (zh) 一种生成信息采集工具的方法及装置、设备、存储介质
CN105975610A (zh) 场景识别方法及装置
CN111651348B (zh) 一种聊天机器人的调试系统
Pan et al. A Machine Learning Based Approach to Detect Machine Learning Design Patterns
CN113312880B (zh) 文本形式转换方法、装置及电子设备
CN114444509B (zh) 命名实体识别模型的测试方法、装置、设备及存储介质
CN111214831B (zh) 一种基于游戏引擎的特效编辑方法
CN117909234A (zh) 一种基于自然语言识别的移动端自动化测试方法及系统

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant