System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及测试代码生成,尤其涉及一种基于参数相关和组合约束的测试代码自动生成方法。
技术介绍
1、随着软件系统日益复杂和多样化,传统的测试用例生成方法面临着越来越大的挑战,这些方法往往依赖于对源代码的详细分析和复杂的计算过程,导致测试用例生成效率低、适用范围有限,同时,随着新技术和新应用的不断涌现,对测试的需求也越来越高,要求能够快速、准确地生成有效的测试用例。因此,迫切需要一种更加高效、灵活的测试用例生成方法来应对这些挑战。
2、公开号为cn108959056a的专利文献公开了一种测试用例生成方法和测试用例生成装置,使用该装置生成测试用例的方法包括,针对用不同编程语言编写的源代码,分别构建相应源代码中的函数之间的关系图;检测所述用不同编程语言编写的源代码之间的连接信息;根据所述连接信息将所述关系图连接以生成连接图;遍历所述连接图以生成组合路径约束表达式;符号执行所述源代码中的每一个函数,以根据所述组合路径约束表达式生成具体组合路径约束;以及对具体组合路径约束进行求解,以生成测试用例。可见,该方法依赖于对用不同编程语言编写的源代码进行关系图构建和符号执行,增加了对编程语言的依赖性和复杂性。对不同语言的支持需要更复杂的解析和转换过程,且符号执行技术本身比较复杂,对计算资源和时间的要求较高,且主要针对源代码的函数关系和路径约束,可能不适用于非代码级别的测试场景或输入参数级别的测试。
技术实现思路
1、为此,本专利技术提供一种基于参数相关和组合约束的测试代码自动生成方法,
2、为实现上述目的,本专利技术提供一种基于参数相关和组合约束的测试代码自动生成方法,包括:
3、以预设的提取范围实时提取待测试模块中的全部输入参数并计算各输入参数之间的相关系数;
4、根据相关系数和预设的标准相关度确定全部输入参数中的若干第一目标参数;
5、根据预设的组合约束库确定全部第一目标参数中的若干第二目标参数;
6、根据全部第二目标参数生成若干测试用例集;
7、执行全部测试用例集,根据全部执行结果和预设的标准执行结果确定异常执行结果;
8、根据异常执行结果的数量和预设的标准异常数量进行判定,根据判定结果生成全部测试用例集的测试代码,或,计算异常执行结果和预设的标准执行结果的差异度;
9、根据差异度和预设的容差范围进行判定,根据判定结果记录异常执行结果并发出提示,或,根据异常执行结果中的字符数量和预设的标准字符数量范围增大或减小修正提取范围,并以修正后的提取范围提取待测试模块中的全部输入参数直至生成全部测试用例集的测试代码。
10、进一步地,所述以预设的提取范围实时提取待测试模块中的全部输入参数并计算各输入参数之间的相关系数包括:
11、计算全部输入参数的平均值,根据全部输入参数的平均值和任意两个输入参数,使用皮尔逊相关系数计算公式计算所述两个输入参数之间的相关系数。
12、进一步地,所述根据相关系数和预设的标准相关度确定全部输入参数中的若干第一目标参数包括:
13、在相关系数的绝对值小于标准相关度时,确定对应的两个输入参数均为第一目标参数。
14、进一步地,所述根据预设的组合约束库确定全部第一目标参数中的第二目标参数包括:
15、根据组合约束库中的约束条件对全部第一目标参数进行筛选,得到若干第二目标参数
16、进一步地,所述执行全部测试用例集,根据全部执行结果和预设的标准执行结果确定异常执行结果包括:
17、在各执行结果不是预设的标准执行结果时,判定执行结果为异常执行结果。
18、进一步地,根据异常执行结果的数量和预设的标准异常数量进行判定,根据判定结果生成全部测试用例集的测试代码包括:
19、在异常执行结果的数量小于标准异常数量时,直接根据判定结果生成全部测试用例集的测试代码。
20、进一步地,在异常执行结果的数量大于或等于标准异常数量时,使用均方差计算公式计算异常执行结果与标准执行结果之间的平方差的平均值,得到差异度。
21、进一步地,在差异度不处于容差范围内时,记录异常执行结果并发出提示。
22、进一步地,在异常执行结果中的字符数量小于标准字符数量范围的最小值时,根据字符数量、标准字符数量范围的最小值以及预设的范围修正系数增大修正提取范围的最大值。
23、进一步地,在异常执行结果中的字符数量大于标准字符数量范围的最大值时,根据字符数量、标准字符数量范围的最大值以及范围修正系数减小修正提取范围的最大值。
24、与现有技术相比,本专利技术的有益效果在于,通过计算参数相关系数和利用组合约束库进行筛选,有效地生成高覆盖率和有效性的测试用例,通过实时提取和动态调整参数提取范围,保证了测试用例的全面性和适应性,在执行测试用例后,通过分析异常执行结果,及时发现和修正问题,提高了测试代码的准确性和可靠性,通过根据差异度进行智能调整,进一步优化测试用例,有效解决了因依赖编程语言和源代码导致测试用例生成效率低和灵活性不足引起的测试代码生成速度慢和准确度低的问题。
25、进一步地,通过量化输入参数之间的线性关系,有助于识别出那些高度相关或独立的参数组合。
26、进一步地,通过筛选相关性较低的参数组合,有助于识别出那些具有较低依赖性的输入参数。
27、进一步地,通过应用组合约束库确保了测试用例中选取的参数组合符合实际应用中的限制和要求,提高了测试结果的有效性。
28、进一步地,通过对比实际执行结果与标准结果,可以迅速定位系统中的异常或不符合预期的行为。
29、进一步地,通过设置一个标准异常数量,能够有效地控制测试结果的异常水平,当异常数量在可接受范围内时,直接生成测试代码能够节省时间和资源。
30、进一步地,通过计算均方差并得到差异度,能够精确量化异常执行结果与标准结果之间的差异,有助于评估测试用例集的表现是否符合预期。
31、进一步地,通过记录异常结果并发出提示,能够及时发现和响应测试中的问题。
32、进一步地,通过扩大提取范围,确保测试能够覆盖更多的输入条件。异常执行结果中的字符数量小于标准范围的最小值,说明当前的提取范围可能不足以涵盖所有可能的测试场景,增大最大值能够帮助包含更多的可能输入条件,从而提高测试的全面性。
33、进一步地,通过在字符数量超出标准范围的情况下减小修正提取范围的最大值,能够使测试更加精准和有效,缩小提取范围能够集中在更有可能出现异常的条件上,从而避免了测试中不必要的复杂性和不相关的数据。
本文档来自技高网...【技术保护点】
1.一种基于参数相关和组合约束的测试代码自动生成方法,其特征在于,包括:
2.根据权利要求1所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,所述以预设的提取范围实时提取待测试模块中的全部输入参数并计算各输入参数之间的相关系数包括:
3.根据权利要求2所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,所述根据相关系数和预设的标准相关度确定全部输入参数中的若干第一目标参数包括:
4.根据权利要求3所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,所述根据预设的组合约束库确定全部第一目标参数中的第二目标参数包括:
5.根据权利要求4所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,所述执行全部测试用例集,根据全部执行结果和预设的标准执行结果确定异常执行结果包括:
6.根据权利要求5所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,根据异常执行结果的数量和预设的标准异常数量进行判定,根据判定结果生成全部测试用例集的测试代码包括:
7.根据权利要求
8.根据权利要求7所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,在差异度不处于容差范围内时,记录异常执行结果并发出提示。
9.根据权利要求8所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,在异常执行结果中的字符数量小于标准字符数量范围的最小值时,根据字符数量、标准字符数量范围的最小值以及预设的范围修正系数增大修正提取范围的最大值。
10.根据权利要求9所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,在异常执行结果中的字符数量大于标准字符数量范围的最大值时,根据字符数量、标准字符数量范围的最大值以及范围修正系数减小修正提取范围的最大值。
...【技术特征摘要】
1.一种基于参数相关和组合约束的测试代码自动生成方法,其特征在于,包括:
2.根据权利要求1所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,所述以预设的提取范围实时提取待测试模块中的全部输入参数并计算各输入参数之间的相关系数包括:
3.根据权利要求2所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,所述根据相关系数和预设的标准相关度确定全部输入参数中的若干第一目标参数包括:
4.根据权利要求3所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,所述根据预设的组合约束库确定全部第一目标参数中的第二目标参数包括:
5.根据权利要求4所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,所述执行全部测试用例集,根据全部执行结果和预设的标准执行结果确定异常执行结果包括:
6.根据权利要求5所述的基于参数相关和组合约束的测试代码自动生成方法,其特征在于,根据异常执行结果的数量和预设的标准异常数量...
【专利技术属性】
技术研发人员:张世通,赵亚舟,陈梦晖,郭鑫,闫卫杰,冯智,魏满红,
申请(专利权)人:北京关键科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。