CN112363924A - 基于有向图的文本覆盖率测试方法及相关设备 - Google Patents
基于有向图的文本覆盖率测试方法及相关设备 Download PDFInfo
- Publication number
- CN112363924A CN112363924A CN202011243094.7A CN202011243094A CN112363924A CN 112363924 A CN112363924 A CN 112363924A CN 202011243094 A CN202011243094 A CN 202011243094A CN 112363924 A CN112363924 A CN 112363924A
- Authority
- CN
- China
- Prior art keywords
- text
- coverage
- test
- directed graph
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及云技术领域,公开了一种基于有向图的文本覆盖率测试方法、装置、设备及存储介质,用于解决测试文本时出现的测试重复和测试遗漏的问题,提高测试文本的测试效率和测试覆盖率。基于有向图的文本覆盖率测试方法包括:获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求;解析全量文本数据,得到多个全量文本节点,并基于多个全量文本节点确定文本分支列表;根据多个测试用例、文本分支列表、多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;根据多个目标测试结果计算文本覆盖率;此外,本发明还涉及区块链技术,文本分支列表可存储于区块链中。
Description
技术领域
本发明涉及云测试技术领域,尤其涉及一种基于有向图的文本覆盖率测试方法、装置、设备及存储介质。
背景技术
近几年新兴的自动化测试逐渐在软件测试领域展现了特有的价值和效率,自动化测试应用在了各种领域,例如游戏领域、社交软件领域以及智能聊天系统领域等。其中,对智能聊天系统进行测试时主要是对聊天剧本进行测试,对聊天剧本测试主要针对剧本结点更新、剧本跳转分支更新、意图识别模型更新或其他跳转策略更新的测试。
在现有技术中,进行测试聊天剧本时需要一条一条的测试剧本,常出现测试重复以及出现剧本分支或者节点跳转漏测的问题,从而导致测试工具测试效率低以及覆盖不全面的问题。
发明内容
本发明提供了一种基于有向图的文本覆盖率测试方法、装置、设备及存储介质,提高了测试文本时的测试效率和测试覆盖率。
本发明第一方面提供了一种基于有向图的文本覆盖率测试方法,包括:获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,所述全量文本数据为多轮智能聊天系统中的剧本数据;解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表;根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;根据所述多个目标测试结果计算覆盖率,得到文本覆盖率。
可选的,在本发明第一方面的第一种实现方式中,所述解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表包括:读取所述全量文本数据的路径,得到文本路径数据,并基于所述文本路径数据读取所述全量文本数据的文本内容数据;基于所述文本内容数据和预置的有向图算法进行解析,得到文本分支列表。
可选的,在本发明第一方面的第二种实现方式中,所述基于所述文本内容数据和预置的有向图算法进行解析,得到文本分支列表包括:将所述文本内容数据转换为字典格式的数据,得到文本字典数据;从所述文本字典数据中确定多个文本键值,得到多个全量文本节点;采用预置的有向图算法对所述多个全量文本节点进行分组,得到多个文本分支;整合所述多个文本分支,得到文本分支列表。
可选的,在本发明第一方面的第三种实现方式中,所述根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支包括:调用所述多个测试用例响应所述多个HTTP请求,基于所述文本分支列表生成与每个HTTP请求对应的初始测试结果,得到多个初始测试结果;根据所述多个初始测试结果和预置的标注算法,获取多个目标测试结果。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述多个初始测试结果和预置的标注算法,获取多个目标测试结果包括:判断每个初始测试结果是否为有效结果;若目标初始测试结果为有效结果,则采用预置的标注算法对所述目标初始测试结果进行标注,得到多个目标测试结果。
可选的,在本发明第一方面的第五种实现方式中,所述判断每个初始测试结果是否为有效结果包括:计算目标初始测试结果的有效概率值;判断所述有效概率值是否大于或者等于概率阈值;若所述有效概率值大于或者等于所述概率阈值,则判定所述目标初始测试结果为有效结果。
可选的,在本发明第一方面的第六种实现方式中,所述根据所述多个目标测试结果计算覆盖率,得到文本覆盖率包括:统计目标测试结果中文本分支的数量,得到有效覆盖数量,统计多个文本分支的数量,得到文本分支的数量;基于所述有效覆盖数量和所述文本分支的数量,计算得到文本覆盖率。
本发明第二方面提供了一种基于有向图的文本覆盖率测试装置,包括:第一获取模块,用于获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,所述全量文本数据为多轮智能聊天系统中的剧本数据;解析模块,用于解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表;第二获取模块,用于根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;计算模块,用于根据所述多个目标测试结果计算覆盖率,得到文本覆盖率。
可选的,在本发明第二方面的第一种实现方式中,所述解析模块包括:读取单元,用于读取所述全量文本数据的路径,得到文本路径数据,并基于所述文本路径数据读取所述全量文本数据的文本内容数据;解析单元,用于基于所述文本内容数据和预置的有向图算法进行解析,得到文本分支列表。
可选的,在本发明第二方面的第二种实现方式中,所述解析单元具体用于:将所述文本内容数据转换为字典格式的数据,得到文本字典数据;从所述文本字典数据中确定多个文本键值,得到多个全量文本节点;采用预置的有向图算法对所述多个全量文本节点进行分组,得到多个文本分支;整合所述多个文本分支,得到文本分支列表。
可选的,在本发明第二方面的第三种实现方式中,所述第二获取模块包括:获取单元,用于调用所述多个测试用例响应所述多个HTTP请求,基于所述文本分支列表生成与每个HTTP请求对应的初始测试结果,得到多个初始测试结果;标注单元,用于根据所述多个初始测试结果和预置的标注算法,获取多个目标测试结果。
可选的,在本发明第二方面的第四种实现方式中,所述标注单元包括:判断子单元,用于判断每个初始测试结果是否为有效结果;标注子单元,若目标初始测试结果为有效结果,则用于采用预置的标注算法对所述目标初始测试结果进行标注,得到多个目标测试结果。
可选的,在本发明第二方面的第五种实现方式中,所述判断子单元具体用于:计算目标初始测试结果的有效概率值;判断所述有效概率值是否大于或者等于概率阈值;若所述有效概率值大于或者等于所述概率阈值,则判定所述目标初始测试结果为有效结果。
可选的,在本发明第二方面的第六种实现方式中,所述计算模块具体用于:统计目标测试结果中文本分支的数量,得到有效覆盖数量,统计多个文本分支的数量,得到文本分支的数量;基于所述有效覆盖数量和所述文本分支的数量,计算得到文本覆盖率。
本发明第三方面提供了一种基于有向图的文本覆盖率测试设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于有向图的文本覆盖率测试设备执行上述的基于有向图的文本覆盖率测试方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于有向图的文本覆盖率测试方法。
本发明提供的技术方案中,获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,所述全量文本数据为多轮智能聊天系统中的剧本数据;解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表;根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;根据所述多个目标测试结果计算覆盖率,得到文本覆盖率。本发明实施例中,将全量文本数据解析为多个文本节点和文本分支列表,然后通过测试用例响应HTTP请求时,结合预置的标注算法对测试结果进行标注,生成目标测试结果,最后基于测试结果计算得到文本测试覆盖率,解决了测试文本时出现的测试重复和测试遗漏的问题,提高了测试文本的测试效率和测试覆盖率。
附图说明
图1为本发明实施例中基于有向图的文本覆盖率测试方法的一个实施例示意图;
图2为本发明实施例中基于有向图的文本覆盖率测试方法的另一个实施例示意图;
图3为本发明实施例中基于有向图的文本覆盖率测试装置的一个实施例示意图;
图4为本发明实施例中基于有向图的文本覆盖率测试装置的另一个实施例示意图;
图5为本发明实施例中基于有向图的文本覆盖率测试设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于有向图的文本覆盖率测试方法、装置、设备及存储介质,用于结合有向图算法解析全量文本数据,并结合标注算法标记测试结果,得到目标测试结果,从而进行覆盖率的计算,提高了测试文本的测试效率和测试覆盖率。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于有向图的文本覆盖率测试方法的一个实施例包括:
101、获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,全量文本数据为多轮智能聊天系统中的剧本数据;
文本测试工具获取多个测试用例、多轮智能聊天系统中的全量文本数据和多个超文本传输协议(hypertext transfer protocol,HTTP)请求。
全量文本数据指多条分支聊天剧本的集合,全量文本数据是由多轮智能聊天系统预设的,多轮智能聊天系统是一种人工智能聊天系统,全量文本数据中包括多条(例如200条、500条或者1000条)应对不同的聊天场景和用户不同问答方式的分支聊天文本,当用户与多轮智能聊天系统进行聊天时,多轮智能聊天系统能根据用户输入的聊天内容或者来自用户的语音内容选择不同的分支聊天文本进行应答或者提问。HTTP请求可以理解为模拟用户输入的聊天内容,例如“今天天气好么?”。测试用例为响应HTTP请求的测试文档。
可以理解的是,本发明的执行主体可以为基于有向图的文本覆盖率测试装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器中的文本测试工具为执行主体为例进行说明。
102、解析全量文本数据,得到多个全量文本节点,并基于多个全量文本节点和预置的有向图算法确定文本分支列表;
文本测试工具解析全量文本数据,将全量文本数据中的节点全部解析出来,得到多个全量文本节点,并拼接多个全量文本节点,得到多个文本分支,多个文本分支组成文本分支列表。
例如,解析全量文本数据得到多个节点,分别为:
nodeId:空方案
intentConf:
-nextNode:方案
-nextNode:建议书
-nextNode:素材
其中节点为“空方案、方案、建议书和素材”,文本测试工具基于预置的有向图算法拼接上述节点,得到三个文本分支,分别为:“空方案-方案”、“空方案-建议书”和“空方案-素材”,“空方案-方案”、“空方案-建议书”和“空方案-素材”组成文本分支列表。
需要说明的是,有向图算法可以理解为,从点1可以通往点2,即通过点1计算出点2,但是从点2不能通往点1。在本案例中,即空方案可以通向方案、空方案可以通向建议书以及空方案可以通向素材,但是方案不可以通向空方案、建议书不可以通向空方案以及素材不可以通向空方案,因此可以提高测试效率。
103、根据多个测试用例、文本分支列表、多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;
文本测试工具调用多个测试用例响应多个HTTP请求,基于文本分支列表得到多个被预置的标注算法标记的目标测试结果,其中目标测试结果包括对应的目标文本分支。需要说明的是,在本实施例中,标注算法为深度优先遍历算法中的染色算法。
在本实施例中,全量文本数据中的文本分支呈嵌套型,测试用例响应HTTP请求时可以理解为将该呈嵌套型的每一个文本分支对应转换成一条测试结果,从而通过测试用例响应将全量文本数据中所有的文本分支转换成测试结果。在其他实施例中,全量文本数据的文本分支还可以呈树形结构,将呈树型结构的全量文本数据中的每条文本分支转换成一条测试结果,通过测试用例从而将整个树型结构中所有的文本分支转换成测试结果。
需要说明的是,测试用例用于指导式的执行HTTP请求,在结合测试用例响应HTTP请求时,测试用例是基于现有的文本分支列表响应HTTP请求的,测试用例在该文本分支列表中确定与目标HTTP请求对应的目标文本分支作为测试结果,然后再对测试结果进行处理,得到目标测试结果。
104、根据多个目标测试结果计算覆盖率,得到文本覆盖率。
文本测试工具根据多个目标测试结果计算供分析文本异常情况和供调整测试策略的文本覆盖率。
文本测试工具获取多个目标测试结果之后,统计目标测试结果中文本分支的数量以及文本分支列表中的文本分支数据,基于这两个参数计算得到文本覆盖率。文本覆盖率为分析文本异常提供数据支持,文本覆盖率还为调整测试策略提供数据支持。
需要说明的是,HTTP请求可以为多轮请求,文本测试工具可以经历多次迭代,在每次迭代得到文本覆盖率之后,可以根据文本覆盖率和未被覆盖的文本分支分析文本逻辑异常的原因,而且根据文本覆盖率能够在多轮文本测试的迭代中寻找覆盖最优解,便于调整文本测试工具的测试策略,从而提高下次测试文本的测试效率。
本发明实施例中,将全量文本数据解析为多个文本节点和文本分支列表,然后通过测试用例响应HTTP请求时,结合预置的标注算法对测试结果进行标注,生成目标测试结果,最后基于测试结果计算得到文本测试覆盖率,解决了测试文本时出现的测试重复和测试遗漏的问题,提高了测试文本的测试效率和测试覆盖率。
请参阅图2,本发明实施例中基于有向图的文本覆盖率测试方法的另一个实施例包括:
201、获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,全量文本数据为多轮智能聊天系统中的剧本数据;
文本测试工具获取多个测试用例、多轮智能聊天系统中的全量文本数据和多个HTTP请求。
全量文本数据指多条分支聊天剧本的集合,全量文本数据是由多轮智能聊天系统预设的,多轮智能聊天系统是一种人工智能聊天系统,全量文本数据中包括多条(例如200条、500条或者1000条)应对不同的聊天场景和用户不同问答方式的分支聊天文本,当用户与多轮智能聊天系统进行聊天时,多轮智能聊天系统能根据用户输入的聊天内容或者来自用户的语音内容选择不同的分支聊天文本进行应答或者提问。HTTP请求可以理解为模拟用户输入的聊天内容,例如“今天天气好么?”。测试用例为响应HTTP请求的测试文档。
202、解析全量文本数据,得到多个全量文本节点,并基于多个全量文本节点和预置的有向图算法确定文本分支列表;
文本测试工具解析全量文本数据,将全量文本数据中的节点全部解析出来,得到多个全量文本节点,并拼接多个全量文本节点,得到多个文本分支,多个文本分支组成文本分支列表。
例如,解析全量文本数据得到多个节点,分别为:
nodeId:空方案
intentConf:
-nextNode:方案
-nextNode:建议书
-nextNode:素材
其中节点为“空方案、方案、建议书和素材”,文本测试工具拼接上述节点,得到三个文本分支,分别为:“空方案-方案”、“空方案-建议书”和“空方案-素材”,“空方案-方案”、“空方案-建议书”和“空方案-素材”组成文本分支列表。
具体的,文本测试工具读取全量文本数据的路径,得到文本路径数据,并基于文本路径数据读取全量文本数据的文本内容数据;文本测试工具基于文本内容数据和预置的有向图算法进行解析,得到文本分支列表。
在一实施例中,基于文本内容数据和预置的有向图算法进行解析,得到文本分支列表的具体过程为:
文本测试工具将文本内容数据转换为字典格式的数据,得到文本字典数据;文本测试工具从文本字典数据中确定多个文本键值,得到多个全量文本节点;文本测试工具采用预置的有向图算法对多个全量文本节点进行分组,得到多个文本分支;文本测试工具整合多个文本分支,得到文本分支列表。
文本测试工具首先读取全量文本数据的文本路径数据,然后根据文本路径数据读取全量文本数据的文本内容数据。文本内容数据为str格式,然后文本测试工具采用json.loads()函数将str格式的文本内容数据转换为dict格式的文本字典数据;文本测试工具从文本字典数据中确定多个文本键值(Key),得到多个全量文本节点,并基于全量文本节点确定多条文本分支,每条文本分支由两个全量文本节点组成,多条文本分支组成文本分支列表,得到文本分支列表的具体过程如下:
intentConf:
-intent:90天内做过EPASS
key:finishEpass
condition:
op:con
value:'Y'
需要说明的是,可以将此过程理解为将全量文本数据解析为“有向图”中边的列表。
203、调用多个测试用例响应多个HTTP请求,基于文本分支列表生成与每个HTTP请求对应的初始测试结果,得到多个初始测试结果;
文本测试工具调用多个测试用例响应多个HTTP请求,并基于文本分支列表生成与每个HTTP请求对应的初始测试结果,按照上述方式,得到多个初始测试结果。
需要说明的是,测试用例的数量不是一定的,测试用例的数量由HTTP请求的数量决定,假设有1000个HTTP请求,需要200个测试用例才可以完全响应这1000个HTTP请求,则测试用例的数量为200,如果只需10个测试用例就能响应全部的1000个HTTP请求,则测试用例的数量为10。一个HTTP请求一定对应一个初始测试结果。
204、根据多个初始测试结果和预置的标注算法,获取多个目标测试结果根据多个测试用例、文本分支列表、多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;
具体的,文本测试工具基于判断每个初始测试结果是否为有效结果;若目标初始测试结果为有效结果,文本测试工具则采用预置的标注算法对目标初始测试结果进行标注,得到多个目标测试结果。
测试用例响应每一个HTTP请求,都能够得到对应的初始测试结果,即文本测试工具能够得到来自测试用例响应得到的多个初始测试结果;然后文本测试工具判断多个初始测试结果是否为有效结果,例如,测试用例响应其中一个请求得到的“下一个问题”是“今天天气好么?”,文本测试工具则判断“今天天气好么?”的初始测试结果是否为有效结果;假设预置的文本分支逻辑应该是“你吃饭了么?”那么得到的“今天天气好么?”就是无效的初始测试结果,则忽略该条文本分支;假设预置的文本分支逻辑也是“今天天气好么?”这就是有效结果,则确定该初始测试结果为目标测试结果。在测试中,需要响应多轮HTTP请求,为了避免响应重复的请求,文本测试工具对响应过的HTTP请求进行标记。例如,这一轮需要执行1000个测试用例才能把所有文本分支完全覆盖,但其中需要重复执行200个测试用例来响应HTTP请求,会造成重复执行同样HTTP请求的问题,在本实施例中,将已经覆盖过的文本分支进行标注,就可以避免重复覆盖这200个请求,从而提高测试效率。
在一实施例中,判断每个初始测试结果是否为有效结果的具体过程为:
文本测试工具计算目标初始测试结果的有效概率值;文本测试工具判断有效概率值是否大于或者等于概率阈值;若有效概率值大于或者等于概率阈值,文本测试工具则判定目标初始测试结果为有效结果。
例如,假设概率阈值为0.9,文本测试工具计算初始测试结果A1的有效概率值为0.92以及计算初始测试结果A2的有效概率值为0.6,文本测试工具判定初始测试结果A1为有效结果,从而判定A1为目标测试结果,对A1对应的文本分支进行染色。
需要说明的是,对目标测试结果进行标记时,既可以对目标测试结果对应的文本分支进行标记(染色)也可以对目标测试结果对应的文本节点进行染色,本实施例只基于对文本分支进行染色进行了具体说明,在其他实施例中还可以对文本节点进行染色。
205、根据多个目标测试结果计算覆盖率,得到文本覆盖率。
文本测试工具根据多个目标测试结果计算供分析文本异常情况和供调整测试策略的文本覆盖率。
文本测试工具获取多个目标测试结果之后,统计目标测试结果中文本分支的数量以及文本分支列表中的文本分支数据,基于这两个参数计算得到文本覆盖率。文本覆盖率为分析文本异常提供数据支持,文本覆盖率还为调整测试策略提供数据支持。
需要说明的是,HTTP请求可以为多轮请求,文本测试工具可以经历多次迭代,在每次迭代得到文本覆盖率之后,可以根据文本覆盖率和未被覆盖的文本分支分析文本逻辑异常的原因,而且根据文本覆盖率能够在多轮文本测试的迭代中寻找覆盖最优解,便于调整文本测试工具的测试策略,从而提高下次测试文本的测试效率。
具体的,文本测试工具统计目标测试结果中文本分支的数量,得到有效覆盖数量,统计多个文本分支的数量,得到文本分支的数量;文本测试工具基于有效覆盖数量和文本分支的数量,计算得到文本覆盖率,文本覆盖率以供对文本异常情况进行分析以及对测试策略进行调整。
文本测试工具统计目标测试结果中文本分支的数量,得到有效覆盖数量,基于多个文本分支列表中全部文本分支的数量和有效覆盖数量计算得到文本覆盖率。具体计算过程为:
其中,M为文本覆盖率,S1为有效覆盖数量,S2为文本分支数量。例如文本分支的数量为1000,在一次迭代中,有效覆盖数量为1000,计算得到文本覆盖率是100%;在另一次迭代中执行相同的HTTP请求,有效覆盖数量为900,计算得到文本覆盖率为90%。这两个文本覆盖率说明有部分文本节点或文本分支的判断逻辑存在异常,需要对剩余10%未覆盖的文本节点以及文本分支进行分析,从而找出文本异常以及调整测试策略。
需要说明的是,在其他实施例中,还可以对目标测试结果中的文本节点进行标记,并基于目标节点的数量和文本分支节点的数量计算得到文本覆盖率。
本发明实施例中,将全量文本数据解析为多个文本节点和文本分支列表,然后通过测试用例响应HTTP请求时,结合预置的标注算法对测试结果进行标注,生成目标测试结果,最后基于测试结果计算得到文本测试覆盖率,解决了测试文本时出现的测试重复和测试遗漏的问题,提高了测试文本的测试效率和测试覆盖率。
上面对本发明实施例中基于有向图的文本覆盖率测试方法进行了描述,下面对本发明实施例中基于有向图的文本覆盖率测试装置进行描述,请参阅图3,本发明实施例中基于有向图的文本覆盖率测试装置一个实施例包括:
第一获取模块301,用于获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,所述全量文本数据为多轮智能聊天系统中的剧本数据;
解析模块302,用于解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表;
第二获取模块303,用于根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;
计算模块304,用于根据所述多个目标测试结果计算覆盖率,得到文本覆盖率。
本发明实施例中,将全量文本数据解析为多个文本节点和文本分支列表,然后通过测试用例响应HTTP请求时,结合预置的标注算法对测试结果进行标注,生成目标测试结果,最后基于测试结果计算得到文本测试覆盖率,解决了测试文本时出现的测试重复和测试遗漏的问题,提高了测试文本的测试效率和测试覆盖率。
请参阅图4,本发明实施例中基于有向图的文本覆盖率测试装置的另一个实施例包括:
第一获取模块301,用于获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,所述全量文本数据为多轮智能聊天系统中的剧本数据;
解析模块302,用于解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表;
第二获取模块303,用于根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;
计算模块304,用于根据所述多个目标测试结果计算覆盖率,得到文本覆盖率。
可选的,所述解析模块302包括:
读取单元3021,用于读取所述全量文本数据的路径,得到文本路径数据,并基于所述文本路径数据读取所述全量文本数据的文本内容数据;
解析单元3022,用于基于所述文本内容数据和预置的有向图算法进行解析,得到文本分支列表。
可选的,所述解析单元3022还可以具体用于:
将所述文本内容数据转换为字典格式的数据,得到文本字典数据;
从所述文本字典数据中确定多个文本键值,得到多个全量文本节点;
采用预置的有向图算法对所述多个全量文本节点进行分组,得到多个文本分支;
整合所述多个文本分支,得到文本分支列表。
可选的,所述第二获取模块303包括:
获取单元3031,用于调用所述多个测试用例响应所述多个HTTP请求,基于所述文本分支列表生成与每个HTTP请求对应的初始测试结果,得到多个初始测试结果;
标注单元3032,用于根据所述多个初始测试结果和预置的标注算法,获取多个目标测试结果。
可选的,所述标注单元3032包括:
判断子单元30321,用于判断每个初始测试结果是否为有效结果;
标注子单元30322,若目标初始测试结果为有效结果,则用于采用预置的标注算法对所述目标初始测试结果进行标注,得到多个目标测试结果。
可选的,所述判断子单元30321还可以具体用于:
计算目标初始测试结果的有效概率值;
判断所述有效概率值是否大于或者等于概率阈值;
若所述有效概率值大于或者等于所述概率阈值,则判定所述目标初始测试结果为有效结果。
可选的,所述计算模块304还可以具体用于:
统计目标测试结果中文本分支的数量,得到有效覆盖数量,统计多个文本分支的数量,得到文本分支的数量;
基于所述有效覆盖数量和所述文本分支的数量,计算得到文本覆盖率。
本发明实施例中,将全量文本数据解析为多个文本节点和文本分支列表,然后通过测试用例响应HTTP请求时,结合预置的标注算法对测试结果进行标注,生成目标测试结果,最后基于测试结果计算得到文本测试覆盖率,解决了测试文本时出现的测试重复和测试遗漏的问题,提高了测试文本的测试效率和测试覆盖率。
上面图3和图4从模块化功能实体的角度对本发明实施例中的基于有向图的文本覆盖率测试装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于有向图的文本覆盖率测试设备进行详细描述。
图5是本发明实施例提供的一种基于有向图的文本覆盖率测试设备的结构示意图,该基于有向图的文本覆盖率测试设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于有向图的文本覆盖率测试设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在基于有向图的文本覆盖率测试设备500上执行存储介质530中的一系列指令操作。
基于有向图的文本覆盖率测试设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的基于有向图的文本覆盖率测试设备结构并不构成对基于有向图的文本覆盖率测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于有向图的文本覆盖率测试方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于有向图的文本覆盖率测试方法,其特征在于,所述基于有向图的文本覆盖率测试方法包括:
获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,所述全量文本数据为多轮智能聊天系统中的剧本数据;
解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表;
根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;
根据所述多个目标测试结果计算覆盖率,得到文本覆盖率。
2.根据权利要求1所述的基于有向图的文本覆盖率测试方法,其特征在于,所述解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表包括:
读取所述全量文本数据的路径,得到文本路径数据,并基于所述文本路径数据读取所述全量文本数据的文本内容数据;
基于所述文本内容数据和预置的有向图算法进行解析,得到文本分支列表。
3.根据权利要求2所述的基于有向图的文本覆盖率测试方法,其特征在于,所述基于所述文本内容数据和预置的有向图算法进行解析,得到文本分支列表包括:
将所述文本内容数据转换为字典格式的数据,得到文本字典数据;
从所述文本字典数据中确定多个文本键值,得到多个全量文本节点;
采用预置的有向图算法对所述多个全量文本节点进行分组,得到多个文本分支;
整合所述多个文本分支,得到文本分支列表。
4.根据权利要求1所述的基于有向图的文本覆盖率测试方法,其特征在于,所述根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支包括:
调用所述多个测试用例响应所述多个HTTP请求,基于所述文本分支列表生成与每个HTTP请求对应的初始测试结果,得到多个初始测试结果;
根据所述多个初始测试结果和预置的标注算法,获取多个目标测试结果。
5.根据权利要求4所述的基于有向图的文本覆盖率测试方法,其特征在于,所述根据所述多个初始测试结果和预置的标注算法,获取多个目标测试结果包括:
判断每个初始测试结果是否为有效结果;
若目标初始测试结果为有效结果,则采用预置的标注算法对所述目标初始测试结果进行标注,得到多个目标测试结果。
6.根据权利要求5所述的基于有向图的文本覆盖率测试方法,其特征在于,所述判断每个初始测试结果是否为有效结果包括:
计算目标初始测试结果的有效概率值;
判断所述有效概率值是否大于或者等于概率阈值;
若所述有效概率值大于或者等于所述概率阈值,则判定所述目标初始测试结果为有效结果。
7.根据权利要求1-6中任意一项所述的基于有向图的文本覆盖率测试方法,其特征在于,所述根据所述多个目标测试结果计算覆盖率,得到文本覆盖率包括:
统计目标测试结果中文本分支的数量,得到有效覆盖数量,统计多个文本分支的数量,得到文本分支的数量;
基于所述有效覆盖数量和所述文本分支的数量,计算得到文本覆盖率。
8.一种基于有向图的文本覆盖率测试装置,其特征在于,所述基于有向图的文本覆盖率测试装置包括:
第一获取模块,用于获取多个测试用例、全量文本数据和多个超文本传输协议HTTP请求,所述全量文本数据为多轮智能聊天系统中的剧本数据;
解析模块,用于解析所述全量文本数据,得到多个全量文本节点,并基于所述多个全量文本节点和预置的有向图算法确定文本分支列表;
第二获取模块,用于根据所述多个测试用例、所述文本分支列表、所述多个HTTP请求以及预置的标记算法,得到多个目标测试结果,目标测试结果被预置的标注算法所标记,目标测试结果包括对应的目标文本分支;
计算模块,用于根据所述多个目标测试结果计算覆盖率,得到文本覆盖率。
9.一种基于有向图的文本覆盖率测试设备,其特征在于,所述基于有向图的文本覆盖率测试设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于有向图的文本覆盖率测试设备执行如权利要求1-7中任意一项所述的基于有向图的文本覆盖率测试方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述基于有向图的文本覆盖率测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011243094.7A CN112363924B (zh) | 2020-11-10 | 2020-11-10 | 基于有向图的文本覆盖率测试方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011243094.7A CN112363924B (zh) | 2020-11-10 | 2020-11-10 | 基于有向图的文本覆盖率测试方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112363924A true CN112363924A (zh) | 2021-02-12 |
CN112363924B CN112363924B (zh) | 2023-09-29 |
Family
ID=74510119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011243094.7A Active CN112363924B (zh) | 2020-11-10 | 2020-11-10 | 基于有向图的文本覆盖率测试方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363924B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999030232A1 (de) * | 1997-12-09 | 1999-06-17 | Siemens Aktiengesellschaft | Verfahren zur überprüfung der pfadüberdeckung bei software-tests |
US6691079B1 (en) * | 1999-05-28 | 2004-02-10 | Ming-Chih Lai | Method and system for analyzing test coverage |
CN103116540A (zh) * | 2013-01-23 | 2013-05-22 | 电子科技大学 | 基于全局超级块支配图的动态符号执行方法及其装置 |
JP2013171350A (ja) * | 2012-02-17 | 2013-09-02 | Fuji Electric Co Ltd | 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム |
US20170091460A1 (en) * | 2015-09-25 | 2017-03-30 | Synack, Inc. | Computer system for discovery of vulnerabilities in applications including guided tester paths based on application coverage measures |
CN110059000A (zh) * | 2019-03-15 | 2019-07-26 | 深圳壹账通智能科技有限公司 | 聊天剧本测试控制方法、装置、计算机设备及存储介质 |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
CN110955608A (zh) * | 2019-12-23 | 2020-04-03 | 金蝶软件(中国)有限公司 | 测试数据处理方法、装置、计算机设备和存储介质 |
CN111400189A (zh) * | 2020-03-25 | 2020-07-10 | 平安银行股份有限公司 | 代码覆盖率监测方法、装置、电子设备及存储介质 |
CN111694741A (zh) * | 2020-06-05 | 2020-09-22 | 中国工程物理研究院计算机应用研究所 | 一种基于路径深度覆盖的测试用例设计方法 |
-
2020
- 2020-11-10 CN CN202011243094.7A patent/CN112363924B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999030232A1 (de) * | 1997-12-09 | 1999-06-17 | Siemens Aktiengesellschaft | Verfahren zur überprüfung der pfadüberdeckung bei software-tests |
US6691079B1 (en) * | 1999-05-28 | 2004-02-10 | Ming-Chih Lai | Method and system for analyzing test coverage |
JP2013171350A (ja) * | 2012-02-17 | 2013-09-02 | Fuji Electric Co Ltd | 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム |
CN103116540A (zh) * | 2013-01-23 | 2013-05-22 | 电子科技大学 | 基于全局超级块支配图的动态符号执行方法及其装置 |
US20170091460A1 (en) * | 2015-09-25 | 2017-03-30 | Synack, Inc. | Computer system for discovery of vulnerabilities in applications including guided tester paths based on application coverage measures |
CN110059000A (zh) * | 2019-03-15 | 2019-07-26 | 深圳壹账通智能科技有限公司 | 聊天剧本测试控制方法、装置、计算机设备及存储介质 |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
CN110955608A (zh) * | 2019-12-23 | 2020-04-03 | 金蝶软件(中国)有限公司 | 测试数据处理方法、装置、计算机设备和存储介质 |
CN111400189A (zh) * | 2020-03-25 | 2020-07-10 | 平安银行股份有限公司 | 代码覆盖率监测方法、装置、电子设备及存储介质 |
CN111694741A (zh) * | 2020-06-05 | 2020-09-22 | 中国工程物理研究院计算机应用研究所 | 一种基于路径深度覆盖的测试用例设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112363924B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11915104B2 (en) | Normalizing text attributes for machine learning models | |
CN106682036A (zh) | 一种数据交换系统及其交换方法 | |
CN113420537B (zh) | 电子表格数据处理方法、装置、设备及存储介质 | |
CN109462575A (zh) | 一种webshell检测方法及装置 | |
CN113014566B (zh) | 恶意注册的检测方法、装置、计算机可读介质及电子设备 | |
CN109698798B (zh) | 一种应用的识别方法、装置、服务器和存储介质 | |
CN106326112B (zh) | 一种程序作业自动批改的方法和装置 | |
WO2011092182A1 (en) | Systems and methods for finding star structures as communities in networks | |
CN113938408B (zh) | 一种数据流量测试方法、装置、服务器及存储介质 | |
CN113722441B (zh) | 一种相似文本的生成方法、装置、设备及存储介质 | |
CN115148296A (zh) | 模型训练数据的生成方法、装置、设备及存储介质 | |
Haraldsson et al. | Exploring fitness and edit distance of mutated python programs | |
CN112363924A (zh) | 基于有向图的文本覆盖率测试方法及相关设备 | |
CN108090027A (zh) | 数据分析方法及数据分析器 | |
CN112436980A (zh) | 测试数据包的读取方法、装置、设备及存储介质 | |
CN116366312A (zh) | 一种Web攻击检测方法、装置及存储介质 | |
CN116346660A (zh) | 基于依赖替换服务的数据处理方法、装置、设备及介质 | |
CN114465875B (zh) | 故障处理方法及装置 | |
US20210012001A1 (en) | Storage medium, information processing method, and information processing apparatus | |
CN107436929A (zh) | 可扩展标记语言xml文件解析方法及装置 | |
CN105930453A (zh) | 重复性分析方法及装置 | |
CN106169094A (zh) | 一种基于分布式神经元的rnnlm系统及其设计方法 | |
CN111651191A (zh) | 应用于微服务构架的单应用打包方法及系统 | |
Ji et al. | Generating pylogenetic tree of homogeneous source code in a plagiarism detection system | |
Arndt et al. | Emulating insertion and deletion events in genome rearrangement analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |