CN114637692B - 测试数据生成及测试案例管理方法 - Google Patents
测试数据生成及测试案例管理方法 Download PDFInfo
- Publication number
- CN114637692B CN114637692B CN202210534390.5A CN202210534390A CN114637692B CN 114637692 B CN114637692 B CN 114637692B CN 202210534390 A CN202210534390 A CN 202210534390A CN 114637692 B CN114637692 B CN 114637692B
- Authority
- CN
- China
- Prior art keywords
- parameter
- name
- word segmentation
- assertion
- matching
- 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
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
-
- 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/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种测试数据生成及测试案例管理方法,属于软件测试技术领域。本发明通过参数名称相似度计算,实现了对参数值未知的参数的参数值获取,解决了测试数据构造中参数值难以获取这一最关键一步。另外,通过断言数据增强、测试案例去重以及测试函数合并方式实现了在多人编码场景下对同个单元测试案例的不同版本的有效管理,有利于提升所开发的软件的交付质量和交付效率。
Description
技术领域
本发明涉及软件测试技术领域,具体涉及一种测试数据生成及测试案例管理方法。
背景技术
在软件开发过程中,需要准备测试数据,测试数据越符合业务规则,对后续的测试活动越有效。现有技术中,测试数据通过人工准备或自动构造获得,人工准备的数据是否符合测试要求依赖于个人对软件业务架构的理解,通常不会过多的考虑软件业务之间的相关性,导致人工准备的数据测试价值不高。而自动构造的数据虽然考虑了业务间的相关性,但普遍存在所构造的测试数据准确度不足、误差较大的技术问题。因此,急需提供一种自动构造测试数据的方法,既能够考虑软件业务间的相关性,又能够确保所构建的测试数据的准确性。
测试数据构造完成后若对生成的单元测试案例缺乏有效的管理,同样会影响业务软件的交付质量和交付效率。目前,对于已生成的单元测试案例的管理主要存在以下几个难点:
1、案例有效性低。单元测试案例需要有明确的断言,而自动生成的单元测试案例,断言可能出现不准确,导致单元测试案例的有效性较低。
2、案例重复度高。单元测试案例的自动生成方法主要有数据构造和数据录制两种方法,案例对应的函数路径可能重复,大量的重复会导致案例数量呈指数级增长。
3、案例合并难。在多人对同个单元测试案例进行编码时,可能出现代码文本冲突,比如,对于案例A,有被改动了的两个不同的版本A1、A2,假设A1的第10行编码为c+2=d,而A2中的第10行编码为c-2=d,则A1和A2由于第10行的代码文本冲突在合并时会出现合并冲突,导致案例合并难。
发明内容
本发明以提高自动生成的测试数据的准确度,并提高对单元测试案例管理的有效性为目的,提供了一种测试数据生成及测试案例管理方法。
为达此目的,本发明采用以下技术方案:
提供一种测试数据生成及测试案例管理方法,包括:
步骤S1,构建变量命名规则最小单词库和数据库,构建方法为:获取各类软件测试过程中的每个被调用的测试函数的第一入参信息保存到所述数据库中,所述第一入参信息包括输入到所述测试函数的每个第一参数的参数名称、参数类型以及参数值,然后基于人为经验规则将每个所述第一参数的参数名称拆分为若干个单词并形成拆分结果与参数名称的拆分关系保存到所述数据库中,关联每个所述第一参数的参数名称的所述拆分结果集合在一起形成为所述变量命名规则最小单词库;
步骤S2,获取被调用的所述测试函数的第二入参信息,包括输入到所述测试函数的每个第二参数的参数名称和参数类型,然后对每个所述第二参数的参数名称进行分词得到分词结果后与所述变量命名规则最小单词库中的各所述拆分结果进行分词匹配,并判断匹配度是否大于预设的分词匹配度阈值,
若是,则基于所述拆分关系从所述数据库中获取所匹配到的所述拆分结果对应的所述第一参数的所述第一入参信息然后转入步骤S3;
若否,则赋予所述第二参数对应的参数值,并将所述第二参数的参数名称、参数类型和参数值形成为所述第一入参信息保存到所述数据库中,并同时将所述第二参数的参数名称与其所述分词结果的所述拆分关系保存到所述数据库中,同时将对所述第二参数的参数名称的所述分词结果加入到所述变量命名规则最小单词库以更新所述变量命名规则最小单词库;
步骤S3,根据预设的参数名称相似度计算方法,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度,并将具有最高参数名称相似度的所述第一参数的参数值作为所述第二参数的参数值;
步骤S4,基于步骤S2赋予或步骤S3获取到的每个所述第二参数的参数值构造单元测试案例,并根据预设的断言增强、案例去重和案例合并规则对所构造的所述单元测试案例进行管理。
作为优选,步骤S2中,以所述变量命名规则最小单词库作为NLP算法中的数据词典,通过所述NLP算法对每个所述第二参数的参数名称进行分词。
作为优选,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:
步骤A1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,
若是,则转入步骤A2;
若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤A2;
步骤A2,判断经过滤剩余的所述第一参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;
若否,则转入步骤A3;
步骤A3,计算参与分词匹配的所述第二参数的参数名称与经步骤A1过滤剩余的每个所述第一参数的参数名称的字符长度距离,并获取具有最小字符长度距离的所述第一参数的参数值作为所述第二参数的参数值。
作为优选,步骤A3中,若与同个所述第二参数的参数名称具有相同的所述最小字符长度距离的所述第一参数的个数有两个及以上,则随机获取任意一个所述第一参数的参数值作为参与分词匹配的所述第二参数的参数值。
作为优选,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:
步骤B1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,
若是,则转入步骤B2;
若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤B2;
步骤B2,判断经过滤剩余的所述第一参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;
若否,则转入步骤B3;
步骤B3,计算参与分词匹配的所述第二参数的参数名称与经步骤B1过滤剩余的每个所述第一参数的参数名称的Levenshtein距离,并获取具有最小Levenshtein距离的所述第一参数的参数值作为所述第二参数的参数值。
作为优选,步骤B3中,若与同个所述第二参数的参数名称具有相同的所述Levenshtein距离的所述第一参数的个数有两个及以上,则随机获取任意一个所述第一参数的参数值作为参与分词匹配的所述第二参数的参数值。
作为优选,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:
步骤C1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,
若是,则转入步骤C2;
若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤C2;
步骤C2,判断经过滤剩余的所述第二参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;
若否,则转入步骤C3;
步骤C3,计算参与分词匹配的所述第二参数的参数名称与经步骤C1过滤剩余的每个所述第一参数的参数名称的字符长度距离;
步骤C4,判断所计算的各所述字符长度距离中是否具有小于预设的字符长度距离阈值的字符长度距离,
若是,则从小于预设的所述字符长度距离阈值的各所述字符长度距离中获取具有最小字符长度距离的所述第一参数的参数值作为所述第二参数的参数值;
若否,则转入步骤C5;
步骤C5,计算参与分词匹配的所述第二参数的参数名称与经步骤C1过滤剩余的每个所述第一参数的参数名称的Levenshtein距离;
步骤C6,判断所计算的各所述Levenshtein距离中是否具有小于预设的Levenshtein距离阈值的Levenshtein距离,
若是,则从小于所述Levenshtein距离阈值的各所述Levenshtein距离中获取具有最小Levenshtein距离的所述第一参数的参数值作为所述第二参数的参数值;
若否,则返回步骤S2。
作为优选,步骤S4中,对所述单元测试案例进行管理的方法包括:
步骤L1,对于具有可变类型或数组类型的断言数据的所述单元测试案例,根据相对应的断言数据增强方法对不同版本的所述单元测试案例进行断言增强;
步骤L2,根据预设的案例去重规则对断言增强后的各版本的所述单元测试案例进行去重;
步骤L3,使用git merge代码文本合并技术检测去重后的不同版本间的所述单元测试案例的代码文本是否存在冲突,并获取存在冲突的版本列表,然后将在远端git上管理的各版本测试案例中的每个测试函数叠加到在本地git上管理的当前版本的所述单元测试案例中完成对各版本测试案例的合并。
作为优选,当所述断言数据为可变类型时,步骤L1中,对不同版本的所述单元测试案例进行断言增强的方法包括:
步骤L11,判断当前版本的所述单元测试案例断言是否失败,
若是,则转入步骤L12;
若否,则终止断言增强流程;
步骤L12,将所述断言数据与规则库中的规则进行正则匹配,
若匹配成功,则按照匹配到的规则对所述断言数据进行格式清除后转入步骤L13;
若匹配失败,则终止断言增强流程;
步骤L13,将格式清除后的所述断言数据更新到对应版本的所述单元测试案例中;
步骤L14,运行完成数据更新后对应版本的所述单元测试案例,并判断是否断言成功,
若是,则判定断言增强成功并记录断言增强成功信息;
若否,则判定断言增强失败并记录断言增强失败信息。
作为优选,所述断言数据包括运行当前版本的所述单元测试案例后,所述测试函数的实际输出结果以及预期输出结果。
作为优选,步骤L2中,对不同版本的所述单元测试案例进行去重的方法具体包括:
步骤L21,运行同个所述测试函数对应的所有版本的所述单元测试案例,以获取所运行的每个版本的所述单元测试案例对应的代码路径;
步骤L22,判断不同版本间的各所述单元测试案例的代码路径是否相同,
若相同,则保留代码路径相同的各版本单元测试案例中的任意一个;
若不相同,则保留所述单元测试案例的不同版本。
作为优选,步骤L3中,对各版本的所述单元测试案例进行合并的方法具体包括:
步骤L31,获取在本地git上管理的以及在远端git上管理的各个版本的所述单元测试案例分别对应的测试函数名称,然后将在本地git上管理的所述单元测试案例的A1版本对应的各测试函数名称形成为第一数组,将在远端git上管理的所述单元测试案例的每个A2版本对应的各测试函数名称形成为第二数组;
步骤L32,对每个所述第二数组与所述第一数组进行测试函数名称匹配,
若匹配到不同的测试函数名称,则转入步骤L33;
若未匹配到不同的测试函数名称,则过滤掉当前参与匹配的所述第二数组;
步骤L33,获取从所述第二数组中匹配到的具有不同名称的测试函数对应的函数代码段;
步骤L34,将获取到的所述函数代码段追加到在本地git上管理的所述A1版本的所述单元测试案例中。
本发明具有以下有益效果:
1、通过构建变量命名规则最小单词库,并将获取到的输入到被调用测试函数的第二参数的参数名称按照变量命名规则进行分词获得分词结果后与构建的最小单词库中的各拆分结果进行分词匹配,然后获取与匹配到的拆分结果具有拆分关系的第一参数的参数名称,然后对第二参数和第一参数作参数名称相似度计算,并将具有最高参数名称相似度的第一参数的参数值作为该第二参数的参数值,由此而实现了对参数值未知的第二参数的参数值获取,解决了测试数据构造中参数值难以获取这一最关键一步;
2、通过人为构建变量命名规则最小单词库有利于提高参数名称的分词准确度,后续按照该变量命名规则对第二参数的参数名称进行分词,并对分词结果与最小单词库中的各拆分结果进行分词匹配,有利于提高分词结果匹配的细化程度;
3、可通过设置分词匹配度阈值对匹配到的拆分结果进行初步筛选以减少所匹配的拆分结果的数量,有利于降低后续的参数名称相似度计算复杂度,提高参数名称相似度计算速度;
4、对于不同类型的断言数据,采用相对应的方法进行断言增强,提高了单元测试案例的有效性;
5、根据预设的案例去重规则对断言增强后的各版本的单元测试案例进行去重,降低了不同版本间的单元测试案例的重复度;
6、通过git merge代码文件合并技术检测不同版本间的单元测试案例的代码文本是否存在冲突,并在获取到存在冲突的版本列表后,通过测试函数名称匹配方式进一步匹配出在远端git上管理的各版本的单元测试案例与在本地git上管理的当前版本的单元测试案例中的不同测试函数,然后将匹配到的在远端git上管理的测试函数对应的函数代码段追加到在本地git上管理的单元测试案例中,实现了对不同版本的单元测试案例的合并。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的测试数据生成及测试案例管理方法的实现步骤图;
图2是计算参与分词匹配的第二参数的参数名称与匹配到的各第一参数的参数名称的相似度的方法一的实现步骤图;
图3是计算参与分词匹配的第二参数的参数名称与匹配到的各第一参数的参数名称的相似度的方法二的实现步骤图;
图4是计算参与分词匹配的第二参数的参数名称与匹配到的各第一参数的参数名称的相似度的方法三的实现步骤图;
图5是本发明一实施例提供的对单元测试案例进行管理的方法步骤图;
图6是断言数据为可变类型时,对不同版本的单元测试案例进行断言增强的方法实现步骤图;
图7是对不同版本的单元测试案例进行去重的方法步骤图;
图8是对各版本的单元测试案例进行合并的方法步骤图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本发明实施例提供的测试数据生成及测试案例管理方法,如图1所示,包括:
步骤S1,构建变量命名规则最小单词库和数据库,构建方法为:获取各类软件测试过程中的每个被调用的测试函数的第一入参信息保存到数据库中(比如可通过现有的字节码增强技术来获取被调用的测试函数的入参信息),第一入参信息包括输入到测试函数的每个第一参数的参数名称、参数类型以及参数值,然后基于人为经验规则将每个第一参数的参数名称拆分为若干个单词并形成拆分结果与参数名称的拆分关系保存到数据库中,比如某个第一参数的参数名称为“payaccountname”,组织架构师、高级研发工程师通过专家评审可以将该参数名称拆分为“pay”、“account”、“name”3个最小单词,将这个拆分结果即“pay+account+name”与参数名称“payaccountname”形成拆分关系后保存到数据库中,拆分关系的表达式比如可以为“payaccountname:pay+account+name”,后续当匹配到“pay+account+name”这个拆分结果后,可以通过检索出这个拆分关系快速识别出“pay+account+name”这个拆分结果对应的参数名称为“payaccountname”。而关联每个第一参数的参数名称的拆分结果集合到一起形成为变量命名规则最小单词库。
步骤S2,获取当前软件测试过程中被调用的测试函数的第二入参信息,包括输入到测试函数的每个第二参数的参数名称和参数类型(不包括参数值),然后对每个第二参数的参数名称进行分词(优选以变量命名规则最小单词库作为现有的NLP算法中的数据词典,通过NLP算法对每个第二参数的参数名称进行分词)得到分词结果后与变量命名规则最小单词库中的各拆分结果进行分词匹配,并判断匹配度是否大于预设的分词匹配度阈值,
若是,则基于拆分关系从数据库中获取所匹配到的拆分结果对应的第一参数的第一入参信息(包括参数名称、类型和参数值)然后转入步骤S3;
若否,则赋予第二参数对应的参数值,并将对第二参数值的参数名称的分词结果加入到变量命名规则最小单词库中以更新变量命名规则最小单词库,同时形成第二参数的参数名称与其分词结果的拆分关系保存到数据库中,并将第二参数的参数名称、参数类型和参数值形成为第一入参信息一并保存到数据库中;
比如某个第二参数的参数名称为“payaccount”,按照NLP分词方法,payaccount被分词为“pay”和“account”。假设变量命名规则最小单词库中有两个与“payaccount”相似的拆分结果,分别为“pay+account+name”和“pay+account+id”,这两个拆分结果的单词长度均为3(即结果中具有3个单词),payaccount分词后的单词长度为2,假设分词结果与拆分结果的匹配度为分词结果中的单词长度与拆分结果中的单词长度的比值,那么,“pay+account”与“pay+account+name”、“pay+account+id”的匹配度均为2/3。假设预先设定的分词匹配度阈值为2/3,则“pay+account+name”和“pay+account+id”这两个拆分结果都符合匹配条件,因此将会基于“pay+account+name”与“payaccountname”的拆分关系以及基于“pay+account+id”与“payaccountid”的拆分关系从数据库中获取这两个拆分结果对应的第一参数的第一入参信息,包括参数名称、参数类型和参数值,比如获取到拆分结果“pay+account+id”对应的第一参数的参数名称为“payaccountid”、参数类型为String类型、参数值为X。
这里需要强调的是,在未匹配到大于分词匹配度阈值的拆分结果时,需要通过人为或自动赋值方法赋予第二参数相对应的参数值,然后将该第二参数的参数名称的分词结果加入到变量命名规则最小单词库中以更新最小单词库,同时将该第二参数的参数名称与其分词结果的拆分关系保存到数据库中,并将该第二参数的第二入参信息以及为其赋予的参数值一并保存到数据库中,后续该第二参数将成为步骤S1中所述的第一参数作为步骤S2中所述的第二参数的匹配对象。
步骤S3,根据预设的参数名称相似度计算方法,计算参与分词匹配的第二参数的参数名称与匹配到的各第一参数的参数名称的相似度,并将具有最高参数名称相似度的第一参数的参数值作为第二参数的参数值;
本实施例中,提供了3种参数名称相似度计算方法,其中第一种方法如图2所示,包括:
步骤A1,判断匹配到的每个第一参数的参数类型是否全部与参与分词匹配的第二参数的参数类型一致,
若是,则转入步骤A2;
若否,则从匹配到的各第一参数的参数名称中过滤掉与参与分词匹配的第二参数的参数类型不一致的参数名称然后转入步骤A2;
比如,假设参与分词匹配的第二参数的参数名称为“payaccount”,匹配到2个第一参数的参数名称,分别为“payaccountname”和“payaccountid”,假设参数名称为“payaccountname”的第一参数的类型为String类型,而参数名称为“payaccountid”的第一参数的类型并非为String类型,那么将“payaccountid”过滤掉,此时仅剩余“payaccountname”这一个参数名称;
步骤A2,判断经过滤剩余的第一参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;由于步骤S2中,已经将参与分词匹配的第二参数作为步骤S1中所述的第一参数更新到最小单词库和数据库中,此时返回步骤S2中若对同个第二参数进行分词匹配及在步骤S3中进行参数名称相似度计算,则肯定不会再出现经步骤A1过滤剩余的第一参数的参数名称的数量为0的情况,由此而使得最小单词库具有更强大的分词匹配能力,进而提升测试数据生成的有效性;
若否,则转入步骤A3;
步骤A3,计算参与分词匹配的第二参数的参数名称与经步骤A1过滤剩余的每个第一参数的参数名称的字符长度距离,并获取具有最小字符长度距离的第一参数的参数值作为第二参数的参数值。
比如,经过滤剩余的第一参数的参数名称有两个,分别为“payaccountname”和“payaccountid”,参与分词匹配的第二参数的参数名称为“payaccount”,“payaccount”与“payaccountname”的字符长度距离为4,与“payaccountid”的字符长度距离为2,则获取“payaccountid”对应的第一参数的参数值作为“payaccount”对应的第一参数的参数值。
若与同个第二参数的参数名称具有相同的最小字符长度距离的第二参数的个数有两个及以上,则随机获取任意一个第一参数的参数值作为参与分词匹配的第二参数的参数值。
本实施例还提供了另外一种参数名称相似度计算方法,如图3所示,包括:
步骤B1,判断匹配到的每个第一参数的参数类型是否全部与参与分词匹配的第二参数的参数类型一致,
若是,则转入步骤B2;
若否,则从匹配到的各第一参数的参数名称中过滤掉与参与分词匹配的第二参数的参数类型不一致的参数名称然后转入步骤B2;
步骤B2,判断经过滤剩余的第一参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;返回步骤S2的目的与步骤A2中返回步骤S2的目的一致,在此不再赘述;
若否,则转入步骤B3;
步骤B3,计算参与分词匹配的第二参数的参数名称与经步骤B1过滤剩余的每个第一参数的参数名称的Levenshtein距离,并获取具有最小Levenshtein距离的第一参数的参数值作为第二参数的参数值。
Levenshtein距离是用于测量两个字符串之间差异的字符串度量,是将一个单词更改为另一个单词所需的单字符编辑(插入、删除或替换)的最小步骤值。例如,将步骤B1过滤剩余的第一参数的参数名称有“weixinpayinfo”、“cmbpayinfo”、“bankpayinfo”3个,参与分词匹配的第二参数的参数名称比如为“alipayinfo”,则通过Levenshtein距离算法可计算得到cmbpayinfo与alipayinfo的距离最小,只需要替换3个字符即可,则判定cmbpayinfo与alipayinfo最具相似度,将cmbpayinfo的参数值作为alipayinfo的参数值。
这里需要说明的是,步骤B3中,若与同个第二参数的参数名称具有相同的Levenshtein距离的所述第一参数的个数有两个及以上,则随机获取任意一个第一参数的参数值作为参与分词匹配的第二参数的参数值。
本实施例还提供了一种结合字符串长度距离匹配和Levenshtein距离算法的参数名称相似度计算方法,如图4所示,该方法包括:
步骤C1,判断匹配到的每个第一参数的参数类型是否全部与参与分词匹配的第二参数的参数类型一致,
若是,则转入步骤C2;
若否,则从匹配到的各第一参数的参数名称中过滤掉与参与分词匹配的第二参数的参数类型不一致的参数名称然后转入步骤C2;
步骤C2,判断经过滤剩余的第二参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;此处返回步骤S2的目的与步骤A2、B2中返回步骤S2的目的一致,在此不再赘述;
若否,则转入步骤C3;
步骤C3,计算参与分词匹配的第二参数的参数名称与经步骤C1过滤剩余的每个第一参数的参数名称的字符长度距离;
步骤C4,判断所计算的各字符长度距离中是否具有小于预设的字符长度距离阈值的字符长度距离,
若是,则从小于预设的字符长度距离阈值的各字符长度距离中获取具有最小字符长度距离的第一参数的参数值作为第二参数的参数值;
若否,则转入步骤C5;
步骤C5,计算参与分词匹配的第二参数的参数名称与经步骤C1过滤剩余的每个第一参数的参数名称的Levenshtein距离;
步骤C6,判断所计算的各Levenshtein距离中是否具有小于预设的Levenshtein距离阈值的Levenshtein距离,
若是,则从小于Levenshtein距离阈值的各Levenshtein距离中获取具有最小Levenshtein距离的第一参数的参数值作为第二参数的参数值;
若否,则返回步骤S2。此处返回步骤S2的目的与步骤C2中返回步骤S2的目的相同,在此不再赘述。
上述技术方案中,为了减少数据库以及最小单词库中冗余数据的产生,优选地,在数据库和最小单词库中对具有相同参数名称和相同参数类型的参数数据保存时间最近的3份数据。
请继续参照图1,本实施例提供的测试数据生成及测试案例管理方法还包括:
步骤S4,基于步骤S2赋予或步骤S3获取到的每个所述第二参数的参数值构造单元测试案例,并根据预设的断言增强、案例去重和案例合并规则对所构造的单元测试案例进行管理,具体管理方法如图5所示,包括:
步骤L1,对于具有可变类型或数组类型的断言数据的单元测试案例,根据相对应的断言数据增强方法对不同版本的单元测试案例进行断言增强;
单元测试案例作用于函数级,针对函数进行测试。断言是一种在程序中的一阶逻辑(如:一个结果为真或为假的逻辑判断式),目的是为了表示与验证软件开发者预期的结果——当程序执行到断言的位置时,对应的断言应该为真,若不为真时,程序会终止执行,并给出错误信息。简而言之,将测试数据输入到测试函数中,得到的函数输出与预期输出进行对比,这个对比结果就是断言。比如,某单元测试案例A对应测试函数B,在单元测试案例A中,当函数B的输入为“1”时,预期输出比如为20220309,则运行函数B并输入“1”,判断输出是否为20220309,若不是20220309则判定断言失败。
本实施例中,断言数据包括运行当前版本的单元测试案例后,测试函数的实际输出结果以及预期输出结果,比如,对于输入数据“1”,测试函数B的预期输出结果为20220309,但实际输出结果为2022-03-09。断言数据的类型又分为可变类型和列表类型,可变类型的断言数据指的是数据的表达类型可变的断言数据,比如对于二零二二年三月九日这个断言数据,可用20220309这个数据类型表示,也可以用2022-03-09这个数据类型表示,这种表达类型可变的断言数据我们将其定义为可变类型的断言数据。列表类型的断言数据指的是对列表类型的返回值进行反串化后再按排序规则反串化输出的数据。比如对于["ab","ef","cd"]这个列表类型的断言数据,通过对该数据进行处理,转换成["ab","cd","ef"],用这个转换结果参与断言比较,从而避免了列表数据内容相同,但顺序不同造成断言失败的情况。
本实施例中,对于可变类型的断言数据的增强方法如图6所示,包括:
步骤L11,判断当前版本的单元测试案例断言是否失败(判断断言是否失败的现有方法有许多,所以具体判断方式不做说明),
若是,则转入步骤L12;
若否,则终止断言增强流程;
步骤L12,将断言数据与规则库中的规则进行正则匹配,
若匹配成功,则按照匹配到的规则对断言数据进行格式清除后转入步骤L13;
若匹配失败,则终止断言增强流程;
本实施例中,规则库包括基础规则库和定制规则库,基础规则库中包含断言数据的通用表达规则,比如常见的日期数据表达规则,如将日期统一表达为“20220309”或“2022-03-09”这样的表达形式。定制规则库则允许自定义断言数据的表达形式,比如可将“20220309”表达为自定义的“2022##03##09”这样的表达式。
断言数据与规则库进行规则匹配并清除数据格式的方法举例如下:
比如测试函数B根据输入数据“1”的实际输出为2022-03-09,那么将输出的“2022-03-09”这一断言数据与规则库中有关日期的表达规则进行匹配,比如规则库中存在日期表达规则为“年月日以不间隔的数值表示”,则根据匹配到的该日期表达规则,将测试函数B输出的断言数据“2022-03-09”清除格式后表达为“20220309”。
步骤L13,将格式清除后的断言数据更新到对应版本的单元测试案例中;
步骤L14,运行完成数据更新后的对应版本的单元测试案例,并判断是否断言成功,
若是,则判定断言增强成功并记录断言增强成功信息;
若否,则判定断言增强失败并记录断言增强失败信息。
对不同版本的单元测试案例进行断言增强后,如图5所示,本实施例提供的单元测试案例管理方法转入:
步骤L2,根据预设的案例去重规则对断言增强后的各版本的单元测试案例进行去重,具体去重方法如图7所示,包括:
步骤L21,运行同个测试函数对应的所有版本的单元测试案例,以获取所运行的每个版本的单元测试案例对应的代码路径;这里的运行指调用单元测试案例对函数进行测试,路径指一个单元测试案例运行后,对应函数内的代码路径,一个单元测试案例对应一个代码路径,比如一个测试函数B有10行代码,运行某个单元测试案例A后读取函数B中的第1、3、9行代码,则测试案例A对应的代码路径为函数B的第1、3、9行;
步骤L22,判断不同版本间的各单元测试案例的代码路径是否相同,
若相同,则保留代码路径相同的各版本单元测试案例中的任意一个;
若不相同,则保留不同版本的单元测试案例。
不同版本的单元测试案例的代码路径相同或不相同的判断方式比如为,对于版本A1、A2,A1和A2的代码路径均为函数B的第1、3、9行,则判定版本A1、A2的代码路径相同,但若A2的代码路径为函数B的第2、3、9行,则判定版本A1、A2的代码路径不相同;
对各版本的单元测试案例进行去重后,如图1所示,本实施例提供的单元测试案例管理方法转入:
步骤L3,使用git merge代码文本合并技术检测去重后的不同版本间的单元测试案例的代码文本是否存在冲突(代码文本冲突检测方法比如为:对于单元测试案例A,有被改动后的两个不同版本A1、A2,假设A1的第10行代码为c+2=d,而A2中的第10行代码为c-2=d,则判定A1、A2之间存在代码文本冲突,即A1、A2合并时会出现冲突),并获取存在冲突的版本列表,然后将在远端git上管理的各版本测试案例中的每个测试函数叠加到在本地git上管理的当前版本的单元测试案例中完成对各版本测试案例的合并。
具体地,如图8所示,对各版本的单元测试案例进行合并的方法包括:
步骤L31,获取在本地git(现有的代码版本管理工具)上管理的以及在远端git上管理的各个版本的单元测试案例分别对应的测试函数名称,比如在本地git上管理的单元测试案例的A1版本对应的测试函数名称有函数A、B、C,在远端git上管理的该单元测试案例的A2版本对应的测试函数名称有A、B、C、D,然后将在本地git上管理的A1版本对应的各测试函数名称形成为第一数组,将在远端git上管理的A2版本对应的各测试函数名称形成为第二数组;
步骤L32,对每个第二数组与第一数组进行测试函数名称匹配,
若匹配到不同的测试函数名称,则转入步骤D3,比如匹配到A2版本对应的第二数组中存在A1版本对应的第一数组中不存在的测试函数名称D时转入步骤D3;
若未匹配到不同的测试函数名称,则过滤掉当前参与匹配的第二数组,比如当A1版本和A2版本对应的测试函数名称都为A、B、C时,则将A2版本对应的第二数组过滤掉;
步骤L33,获取从第二数组中匹配到的具有不同名称的测试函数对应的函数代码段;
步骤L34,将获取到的函数代码段追加到在本地git上管理的A1版本的单元测试案例中,比如附在A1版本的单元测试案例的代码行最末端。
综上,本发明通过构建变量命名规则最小单词库,并将获取到的输入到被调用测试函数的第二参数的参数名称按照变量命名规则进行分词获得分词结果后与构建的最小单词库中的各拆分结果进行分词匹配,然后获取与匹配到的拆分结果具有拆分关系的第一参数的参数名称,然后对第二参数和第一参数作参数名称相似度计算,并将具有最高参数名称相似度的第一参数的参数值作为该第二参数的参数值,由此而实现了对参数值未知的第二参数的参数值获取,解决了测试数据构造中参数值难以获取这一最关键一步。另外,本发明通过断言数据增强、测试案例去重以及测试函数合并方式实现了在多人编码场景下对同个单元测试案例的不同版本的有效管理,有利于提升所开发的软件的交付质量和交付效率。
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本申请说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。
Claims (11)
1.一种测试数据生成及测试案例管理方法,其特征在于,包括:
步骤S1,构建变量命名规则最小单词库和数据库,构建方法为:获取各类软件测试过程中的每个被调用的测试函数的第一入参信息保存到所述数据库中,所述第一入参信息包括输入到所述测试函数的每个第一参数的参数名称、参数类型以及参数值,然后基于人为经验规则将每个所述第一参数的参数名称拆分为若干个单词并形成拆分结果与参数名称的拆分关系保存到所述数据库中,关联每个所述第一参数的参数名称的所述拆分结果集合在一起形成为所述变量命名规则最小单词库;
步骤S2,获取被调用的所述测试函数的第二入参信息,包括输入到所述测试函数的每个第二参数的参数名称和参数类型,然后对每个所述第二参数的参数名称进行分词得到分词结果后与所述变量命名规则最小单词库中的各所述拆分结果进行分词匹配,并判断匹配度是否大于预设的分词匹配度阈值,
若是,则基于所述拆分关系从所述数据库中获取所匹配到的所述拆分结果对应的所述第一参数的所述第一入参信息然后转入步骤S3;
若否,则赋予所述第二参数对应的参数值,并将所述第二参数的参数名称、参数类型和参数值形成为所述第一入参信息保存到所述数据库中,并同时将所述第二参数的参数名称与其所述分词结果的所述拆分关系保存到所述数据库中,同时将对所述第二参数的参数名称的所述分词结果加入到所述变量命名规则最小单词库以更新所述变量命名规则最小单词库;
步骤S3,根据预设的参数名称相似度计算方法,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度,并将具有最高参数名称相似度的所述第一参数的参数值作为所述第二参数的参数值;
步骤S4,基于步骤S2赋予或步骤S3获取到的每个所述第二参数的参数值构造单元测试案例,并根据预设的断言增强、案例去重和案例合并规则对所构造的所述单元测试案例进行管理;
步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:
步骤A1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,
若是,则转入步骤A2;
若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤A2;
步骤A2,判断经过滤剩余的所述第一参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;
若否,则转入步骤A3;
步骤A3,计算参与分词匹配的所述第二参数的参数名称与经步骤A1过滤剩余的每个所述第一参数的参数名称的字符长度距离,并获取具有最小字符长度距离的所述第一参数的参数值作为所述第二参数的参数值。
2.根据权利要求1所述的测试数据生成及测试案例管理方法,其特征在于,步骤S2中,以所述变量命名规则最小单词库作为NLP算法中的数据词典,通过所述NLP算法对每个所述第二参数的参数名称进行分词。
3.根据权利要求1所述的测试数据生成及测试案例管理方法,其特征在于,步骤A3中,若与同个所述第二参数的参数名称具有相同的所述最小字符长度距离的所述第一参数的个数有两个及以上,则随机获取任意一个所述第一参数的参数值作为参与分词匹配的所述第二参数的参数值。
4.根据权利要求1所述的测试数据生成及测试案例管理方法,其特征在于,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:
步骤B1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,
若是,则转入步骤B2;
若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤B2;
步骤B2,判断经过滤剩余的所述第一参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;
若否,则转入步骤B3;
步骤B3,计算参与分词匹配的所述第二参数的参数名称与经步骤B1过滤剩余的每个所述第一参数的参数名称的Levenshtein距离,并获取具有最小Levenshtein距离的所述第一参数的参数值作为所述第二参数的参数值。
5.根据权利要求4所述的测试数据生成及测试案例管理方法,其特征在于,步骤B3中,若与同个所述第二参数的参数名称具有相同的所述Levenshtein距离的所述第一参数的个数有两个及以上,则随机获取任意一个所述第一参数的参数值作为参与分词匹配的所述第二参数的参数值。
6.根据权利要求1所述的测试数据生成及测试案例管理方法,其特征在于,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:
步骤C1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,
若是,则转入步骤C2;
若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤C2;
步骤C2,判断经过滤剩余的所述第二参数的参数名称的数量是否为“0”,
若是,则返回步骤S2;
若否,则转入步骤C3;
步骤C3,计算参与分词匹配的所述第二参数的参数名称与经步骤C1过滤剩余的每个所述第一参数的参数名称的字符长度距离;
步骤C4,判断所计算的各所述字符长度距离中是否具有小于预设的字符长度距离阈值的字符长度距离,
若是,则从小于预设的所述字符长度距离阈值的各所述字符长度距离中获取具有最小字符长度距离的所述第一参数的参数值作为所述第二参数的参数值;
若否,则转入步骤C5;
步骤C5,计算参与分词匹配的所述第二参数的参数名称与经步骤C1过滤剩余的每个所述第一参数的参数名称的Levenshtein距离;
步骤C6,判断所计算的各所述Levenshtein距离中是否具有小于预设的Levenshtein距离阈值的Levenshtein距离,
若是,则从小于所述Levenshtein距离阈值的各所述Levenshtein距离中获取具有最小Levenshtein距离的所述第一参数的参数值作为所述第二参数的参数值;
若否,则返回步骤S2。
7.根据权利要求1-6任意一项所述的测试数据生成及测试案例管理方法,其特征在于,步骤S4中,对所述单元测试案例进行管理的方法包括:
步骤L1,对于具有可变类型或数组类型的断言数据的所述单元测试案例,根据相对应的断言数据增强方法对不同版本的所述单元测试案例进行断言增强;
步骤L2,根据预设的案例去重规则对断言增强后的各版本的所述单元测试案例进行去重;
步骤L3,使用git merge代码文本合并技术检测去重后的不同版本间的所述单元测试案例的代码文本是否存在冲突,并获取存在冲突的版本列表,然后将在远端git上管理的各版本测试案例中的每个测试函数叠加到在本地git上管理的当前版本的所述单元测试案例中完成对各版本测试案例的合并。
8.根据权利要求7所述的测试数据生成及测试案例管理方法,其特征在于,当所述断言数据为可变类型时,步骤L1中,对不同版本的所述单元测试案例进行断言增强的方法包括:
步骤L11,判断当前版本的所述单元测试案例断言是否失败,
若是,则转入步骤L12;
若否,则终止断言增强流程;
步骤L12,将所述断言数据与规则库中的规则进行正则匹配,
若匹配成功,则按照匹配到的规则对所述断言数据进行格式清除后转入步骤L13;
若匹配失败,则终止断言增强流程;
步骤L13,将格式清除后的所述断言数据更新到对应版本的所述单元测试案例中;
步骤L14,运行完成数据更新后对应版本的所述单元测试案例,并判断是否断言成功,
若是,则判定断言增强成功并记录断言增强成功信息;
若否,则判定断言增强失败并记录断言增强失败信息。
9.根据权利要求7所述的测试数据生成及测试案例管理方法,其特征在于,所述断言数据包括运行当前版本的所述单元测试案例后,所述测试函数的实际输出结果以及预期输出结果。
10.根据权利要求7所述的测试数据生成及测试案例管理方法,其特征在于,步骤L2中,对不同版本的所述单元测试案例进行去重的方法具体包括:
步骤L21,运行同个所述测试函数对应的所有版本的所述单元测试案例,以获取所运行的每个版本的所述单元测试案例对应的代码路径;
步骤L22,判断不同版本间的各所述单元测试案例的代码路径是否相同,
若相同,则保留代码路径相同的各版本单元测试案例中的任意一个;
若不相同,则保留所述单元测试案例的不同版本。
11.根据权利要求7所述的测试数据生成及测试案例管理方法,其特征在于,步骤L3中,对各版本的所述单元测试案例进行合并的方法具体包括:
步骤L31,获取在本地git上管理的以及在远端git上管理的各个版本的所述单元测试案例分别对应的测试函数名称,然后将在本地git上管理的所述单元测试案例的A1版本对应的各测试函数名称形成为第一数组,将在远端git上管理的所述单元测试案例的每个A2版本对应的各测试函数名称形成为第二数组;
步骤L32,对每个所述第二数组与所述第一数组进行测试函数名称匹配,
若匹配到不同的测试函数名称,则转入步骤L33;
若未匹配到不同的测试函数名称,则过滤掉当前参与匹配的所述第二数组;
步骤L33,获取从所述第二数组中匹配到的具有不同名称的测试函数对应的函数代码段;
步骤L34,将获取到的所述函数代码段追加到在本地git上管理的所述A1版本的所述单元测试案例中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534390.5A CN114637692B (zh) | 2022-05-17 | 2022-05-17 | 测试数据生成及测试案例管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534390.5A CN114637692B (zh) | 2022-05-17 | 2022-05-17 | 测试数据生成及测试案例管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114637692A CN114637692A (zh) | 2022-06-17 |
CN114637692B true CN114637692B (zh) | 2022-08-19 |
Family
ID=81953167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210534390.5A Active CN114637692B (zh) | 2022-05-17 | 2022-05-17 | 测试数据生成及测试案例管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114637692B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201899A (zh) * | 2016-07-29 | 2016-12-07 | 普元信息技术股份有限公司 | 基于业务分析实现自动生成测试案例的系统和方法 |
CN108536595A (zh) * | 2018-04-09 | 2018-09-14 | 平安普惠企业管理有限公司 | 测试用例智能化匹配方法、装置、计算机设备及存储介质 |
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、系统、设备和存储介质 |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
CN112988601A (zh) * | 2021-04-29 | 2021-06-18 | 中国工商银行股份有限公司 | 测试脚本开发方法及装置 |
CN113672520A (zh) * | 2021-09-08 | 2021-11-19 | 京东科技控股股份有限公司 | 测试案例的生成方法、装置、电子设备及存储介质 |
CN114138659A (zh) * | 2021-12-07 | 2022-03-04 | 中国建设银行股份有限公司 | 一种测试案例处理方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5495571A (en) * | 1992-09-30 | 1996-02-27 | Microsoft Corporation | Method and system for performing parametric testing of a functional programming interface |
US20050278577A1 (en) * | 2004-06-01 | 2005-12-15 | Roongko Doong | Automatically generating observations of program behavior for code testing purposes |
US8752001B2 (en) * | 2009-07-08 | 2014-06-10 | Infosys Limited | System and method for developing a rule-based named entity extraction |
CN110704306B (zh) * | 2019-09-09 | 2024-03-22 | 武汉安辰鑫信息科技有限公司 | 测试中的断言处理方法、装置、设备及存储介质 |
CN114281680B (zh) * | 2021-12-03 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种web自动化测试方法及系统 |
-
2022
- 2022-05-17 CN CN202210534390.5A patent/CN114637692B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201899A (zh) * | 2016-07-29 | 2016-12-07 | 普元信息技术股份有限公司 | 基于业务分析实现自动生成测试案例的系统和方法 |
CN108536595A (zh) * | 2018-04-09 | 2018-09-14 | 平安普惠企业管理有限公司 | 测试用例智能化匹配方法、装置、计算机设备及存储介质 |
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、系统、设备和存储介质 |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
CN112988601A (zh) * | 2021-04-29 | 2021-06-18 | 中国工商银行股份有限公司 | 测试脚本开发方法及装置 |
CN113672520A (zh) * | 2021-09-08 | 2021-11-19 | 京东科技控股股份有限公司 | 测试案例的生成方法、装置、电子设备及存储介质 |
CN114138659A (zh) * | 2021-12-07 | 2022-03-04 | 中国建设银行股份有限公司 | 一种测试案例处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
一种针对单元测试框架的测试脚本重用方法;祁琳莹等;《计算机应用研究》;20130615(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114637692A (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021017679A1 (zh) | 地址信息解析方法、装置、系统及数据获取方法 | |
CN108256074B (zh) | 校验处理的方法、装置、电子设备和存储介质 | |
Goldin et al. | AbstFinder, a prototype natural language text abstraction finder for use in requirements elicitation | |
US9390084B2 (en) | Natural language parsers to normalize addresses for geocoding | |
CN108182972B (zh) | 基于分词网络的中文疾病诊断的智能编码方法及系统 | |
Pham et al. | Complete and accurate clone detection in graph-based models | |
JP2019502979A (ja) | 構造化されたマルチフィールドファイルのレイアウトの自動解釈 | |
US20120011073A1 (en) | Knowledge Extraction Methodology for Unstructured Data Using Ontology-Based Text Mining | |
WO2003012685A2 (en) | A data quality system | |
EP1297419A1 (en) | Method and apparatus for extracting knowledge from software code or other structured data | |
CN108664237A (zh) | 一种基于启发式和神经网络的非api成员推荐方法 | |
CN111125069A (zh) | 一种数据清洗融合系统 | |
CN114637692B (zh) | 测试数据生成及测试案例管理方法 | |
CN110866172B (zh) | 一种面向区块链系统的数据分析方法 | |
CN109933787B (zh) | 文本关键信息的提取方法、装置及介质 | |
CN114090722B (zh) | 查询内容自动补全的方法及装置 | |
US11573968B2 (en) | Systems and methods of creating and using a transparent, computable contractual natural language | |
CN116360794A (zh) | 数据库语言解析方法、装置、计算机设备及存储介质 | |
US20210342689A1 (en) | Computer-implemented method, and device for producing a knowledge graph | |
CN115130431A (zh) | 一种基于医学疾病和药品的编码方法和编码装置 | |
CN114741320B (zh) | 单元测试案例管理方法、装置及可读存储介质 | |
KR20230126578A (ko) | 데이터 활용을 위한 데이터 모델 설계 방법 | |
CA3092332A1 (en) | System and method for machine learning architecture for interdependence detection | |
CN114443803A (zh) | 一种文本信息挖掘方法、装置、电子设备和存储介质 | |
CN111339756A (zh) | 一种文本检错方法及装置 |
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 |