CN115391226A - 两两组合测试用例覆盖冗余的评价方法及其相关组件 - Google Patents
两两组合测试用例覆盖冗余的评价方法及其相关组件 Download PDFInfo
- Publication number
- CN115391226A CN115391226A CN202211121511.XA CN202211121511A CN115391226A CN 115391226 A CN115391226 A CN 115391226A CN 202211121511 A CN202211121511 A CN 202211121511A CN 115391226 A CN115391226 A CN 115391226A
- Authority
- CN
- China
- Prior art keywords
- matrix
- test case
- redundancy
- coverage
- target
- 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.)
- Pending
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/3676—Test management for coverage analysis
-
- 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
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)
- Hardware Redundancy (AREA)
Abstract
本申请公开了一种两两组合测试用例覆盖冗余的评价方法、装置、设备及介质,涉及软件测试技术领域,包括:基于获取到的测试用例集构建初始测试用例矩阵;对初始测试用例矩阵重新进行赋值编码得到目标测试用例矩阵,构建参数组合矩阵、覆盖冗余矩阵和测试用例冗余分布矩阵;利用目标测试用例矩阵和参数组合矩阵对覆盖冗余矩阵和测试用例冗余分布矩阵进行更新,并基于更新后的所述覆盖冗余矩阵得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;显示更新后的测试用例冗余分布矩阵以及覆盖冗余程度矩阵,并对测试用例集中两两组合测试用例的覆盖冗余进行评价。能够快速清楚的展示测试用例集的覆盖能力以及两两组合覆盖冗余的分布情况并进行评价。
Description
技术领域
本发明涉及软件测试技术领域,特别涉及一种两两组合测试用例覆盖冗余的评价方法、装置、设备及介质。
背景技术
软件测试是对软件系统进行的各种参数组合的系统全方位的覆盖测试。研究表明,程序的大部分缺陷是系统某两个参数取值时引起的。两两参数组合表示两两参数配对后形成的组合在测试用例集中至少出现一次,两两参数组合测试是对系统进行软件测试的有效方法。
两两组合测试用例是对系统开展测试的核心。目前,测试用例的生成工具和方法难以做到对不同系统组合均能生成最简化的两两参数组合测试用例集,算法或工具设计者大多根据其他寻优算法优化寻优过程或路径,而很少研究测试用例集的自身特点。其中,两两组合测试用例的自身特点可以包括其覆盖能力和覆盖冗余等,也即该测试用例中是否包括了不同参数两两组合的所有情况以及某种参数组合是否重复出现造成冗余等。
综上,如何确定测试用例集在两两组合测试中的覆盖能力以及覆盖冗余分布情况并进行评价,以便根据评价结果为优化测试用例提供一个可参考、可跟踪的测试用例冗余的度量值是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种两两组合测试用例覆盖冗余的评价方法、装置、设备及介质,能够确定测试用例集在两两组合测试中的覆盖能力以及覆盖冗余分布情况并进行评价,以便根据评价结果为优化测试用例提供一个可参考、可跟踪的测试用例冗余的度量值。其具体方案如下:
第一方面,本申请公开了一种两两组合测试用例覆盖冗余的评价方法,包括:
获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵;
按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵;
基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵;
利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;
显示更新后的所述测试用例冗余分布矩阵以及所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。
可选的,所述按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,包括:
确定所述初始测试用例矩阵的行数,并基于所述行数按照从小到大的顺序依次对所述初始测试用例矩阵中每一列的元素重新进行赋值编码得到更新后的目标测试用例矩阵。
可选的,所述基于所述行数按照从小到大的顺序依次对每一列中的元素重新进行赋值编码得到更新后的目标测试用例矩阵的过程中,还包括:
针对所述初始测试用例矩阵中的每一列,判断已编码元素的原始取值中是否存在与当前待编码元素取值一致的目标元素;
若存在,则利用所述目标元素的编码值对所述当前待编码元素进行赋值;
若不存在,则确定当前列中与所述当前待编码元素相邻的已编码元素的目标编码值,并基于所述目标编码值对所述当前待编码元素进行赋值。
可选的,所述基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,包括:
基于所述参数组合矩阵中的参数两两组合方式和所述目标测试用例矩阵中的参数取值范围确定出待构建矩阵的目标行列数;
基于所述目标行列数构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵。
可选的,所述利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,包括:
对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行初始化;
利用所述目标测试用例矩阵和所述参数组合矩阵对初始化后的所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新。
可选的,所述利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,包括:
基于所述参数组合矩阵的每一列依次读取所述目标测试用例矩阵的每一行以得到读取结果;
基于所述读取结果对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新。
可选的,所述基于所述读取结果对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,包括:
基于所述读取结果在所述覆盖冗余矩阵中确定出对应的第一目标位置,并将所述第一目标位置的当前取值增加预设单位数值得到更新后取值;
若所述更新后取值大于所述预设单位数值,则确定出所述测试用例冗余分布矩阵中的第二目标位置,并将所述第二目标位置的当前取值增加所述预设单位数值。
第二方面,本申请公开了一种两两组合测试用例覆盖冗余的评价装置,包括:
第一矩阵构建模块,用于获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵;
第二矩阵构建模块,用于按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵;
第三矩阵构建模块,用于基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵;
矩阵更新统计模块,用于利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;
覆盖冗余评价模块,用于显示更新后的所述测试用例冗余分布矩阵和所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的两两组合测试用例覆盖冗余的评价方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的两两组合测试用例覆盖冗余的评价方法的步骤。
可见,本申请获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵;按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵;基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵;利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;显示更新后的所述测试用例冗余分布矩阵以及所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。由此可见,本申请根据获取到的测试用例集构建相应的初始测试用例矩阵,并对初始测试用例矩阵进行重新赋值编码得到目标测试用例矩阵以及构建参数组合矩阵用于确定参数的两两组合方式;构建覆盖冗余矩阵用于确定两两组合被覆盖的次数,以及构建测试用例冗余分布矩阵用于确定单个测试用例两两组合的覆盖冗余分布;其次则利用目标测试用例矩阵和参数组合矩阵对覆盖冗余矩阵和测试用例冗余分布矩阵进行更新;再对更新后的覆盖冗余矩阵中的元素进行分析统计得到覆盖冗余程度矩阵,以用于确定两两组合覆盖冗余占比,最后对更新后的测试用例冗余分布矩阵和覆盖冗余程度矩阵进行显示,并对测试用例集中两两组合测试用例的覆盖冗余进行评价。如此一来,通过上述方案能够快速确定出测试用例集在两两组合测试中的覆盖能力以及覆盖冗余分布情况,并进行清楚直观的显示和评价,进而根据评价结果为优化测试用例提供一个可参考、可跟踪的测试用例冗余的度量值。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种两两组合测试用例覆盖冗余的评价方法流程图;
图2为本申请公开的一种具体的初始测试用例集矩阵TS示意图;
图3为本申请公开的一种具体的参数组合矩阵C示意图;
图4为本申请公开的一种具体的两两组合测试用例覆盖冗余的评价方法流程图;
图5为本申请公开的一种赋值更新后的目标测试用例矩阵TS’矩阵示意图;
图6为本申请公开的一种覆盖冗余矩阵和测试用例冗余分布矩阵的更新算法流程图;
图7为本申请公开的一种具体的覆盖冗余矩阵示意图;
图8为本申请公开的一种具体的测试用例冗余分布矩阵示意图;
图9为本申请公开的一种具体的覆盖冗余程度矩阵示意图;
图10为本申请公开的一种具体的测试用例冗余分布曲线图;
图11为本申请公开的一种具体的覆盖冗余占比柱状图;
图12为本申请公开的一种两两组合测试用例覆盖冗余的评价装置结构示意图;
图13为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,测试用例的生成工具和方法难以做到对不同系统组合均能生成最简化的两两参数组合测试用例集,算法或工具设计者大多根据其他寻优算法优化寻优过程或路径,而很少研究测试用例集的自身特点。为此,本申请实施例公开了一种两两组合测试用例覆盖冗余的评价方法、装置、设备及介质,能够确定测试用例集在两两组合测试中的覆盖能力以及覆盖冗余分布情况并进行评价,以便根据评价结果为优化测试用例提供一个可参考、可跟踪的测试用例冗余的度量值。
参见图1所示,本申请实施例公开了一种两两组合测试用例覆盖冗余的评价方法,该方法包括:
步骤S11:获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵。
本实施例中,首先获取到测试用例集,而为了更加直观的获取测试用例集的特点,本实施例中将测试用例表述成矩阵形式,以得到与测试用例集对应的初始测试用例矩阵:
其中,该矩阵包含m×n个ai,j元素,其中m表示该测试用例集中包含测试用例的个数,n表示该测试用例集中的参数个数。ai,j表示第i个测试用例的第j个参数的取值。也即,通过依次读取测试用例集TS中每一条测试用例T,并通过数学建模的方式将测试用例集TS描述成矩阵的表达形式,则可得到初始测试用例矩阵。例如一个具体的测试用例TS为:
TS={T1,T2,T3,T4,T5,T6,T7,T8,T9};
其中,T1={0.8,-1.3,1.7,0},T2={1.2,0.6,1.8,-5},T3={2.5,0.6,9,2},
T4={4,0,3,0.32},T5={1.2,-1.3,1.8,2},T6={0.8,0.6,1.7,0.32},
T7={4,0,3,0},T8={2.5,3,1.8,-5},T9={2.5,-1.3,9,0.32}。
那么与其对应的初始测试用例矩阵如图2所示,该矩阵为9×4个数ai,j排成的数表,其中ai,j表示第i个测试用例的第j个参数的取值,如a3,1=2.5表示该测试用例集中第三个测试用例的第一个参数取值为2.5。
步骤S12:按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵。
本实施例中,为了方便后续计算,需按照预设规则对初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵。其中,参数组合矩阵也可以理解为参数位置矩阵,用于表征参数两两组合方式,用来确定具体进行组合的两个参数以及具体的取值。
参数组合矩阵的大小为2×r,其中,n表示该测试用例集中的参数个数。矩阵中第1行表示第1个参数的位置,第2行表示第2个参数的位置,那么矩阵的每一列则表示参数的两两组合。例如,假设测试用例集中的参数个数为4,那么参数组合矩阵具体可以参见图3所示,图3中第1列则表示第1个参数与第2个参数的组合,第2列则表示第1个参数与第3个参数的组合,以此类推。
步骤S13:基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵。
本实施例中,基于目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵COV,其元素位置表示组合的参数来源,其取值表示该组合被覆盖的次数。并构建一个测试用例冗余分布矩阵R,用于表示每一测试用例中两两组合覆盖冗余分布,其大小为2×m,m表示该测试用例集中包含测试用例的个数。也即构造一个2×m的测试用例冗余分布矩阵用于储存单个测试用例两两组合冗余的覆盖信息,具体表示为:
其中,该矩阵第一行从1取到m,表示当前读取的测试用例T的在测试用例集TS中的位置。第二行为冗余度COVER的取值,每一个数字表示该测试用例与该测试用例前的所有测试用例在两两组合覆盖中冗余了多少个。
步骤S14:利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵。
本实施例中,上述利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,包括:对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行初始化;利用所述目标测试用例矩阵和所述参数组合矩阵对初始化后的所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新。也即,在构建出覆盖冗余矩阵和测试用例冗余分布矩阵后,需对其进行初始化,再利用目标测试用例矩阵和参数组合矩阵对初始化后的覆盖冗余矩阵和测试用例冗余分布矩阵进行更新。在得到更新后的覆盖冗余矩阵后,为了更清晰表达两两组合冗余次数的占比情况,将更新后覆盖冗余矩阵中的元素按照被覆盖的次数进行划分,并用一个矩阵进行储存冗余信息,也即覆盖冗余程度矩阵U。令e为两两组合中被覆盖次数最大的数+1即e=max(COVER)+1,创建一个3×e的矩阵用于储存两两组合冗余度的覆盖信息:
其中,该矩阵第一行表示该两两组合的覆盖冗余程度,如u1,2=1表示在该测试用例集中两两组合被覆盖了一次的集合;第二行用于表示两两组合的覆盖冗余次数,如u2,2=0表示在该测试用例集中两两组合被覆盖了一次的集合数量为0;第三行用于表示该冗余占所有两两组合的比例,如u3,2=0表示在该测试用例集中两两组合被覆盖了一次的集合数量所占所有两两组合集的比例为0。
也即通过统计更新后的覆盖冗余矩阵中不同次数取值的个数有多少个,并记录在U中的第二行,然后计算第二行中各个取值的占比再记录至第三行中。具体的,在根据COV中的所有元素冗余程度,计算U中第二行的值时,包括以下步骤:依次读取COV矩阵中的每一行,依次读取COV中每一行的每一个取值ci,j;从左至右对比当前读取的ci,j对应的U中第一行的取值u1,e,直到ci,j=u1,e,则令u2,e=u2,e+1,即将当前冗余为u1,e的两两组合数目加一;重复上述步骤直到处理完当前行的所有取值ci,j;重复上述所有步骤直到处理完COV中的所有行。在根据COV中的所有元素冗余程度,计算U中第三行的值时,包括以下步骤:将sum设置为所有两两组合的个数集合,依据从矩阵U中计算所有u3,e的取值。
步骤S15:显示更新后的所述测试用例冗余分布矩阵以及所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。
本实施例中,为了更直观地展示测试用例集的覆盖能力和覆盖冗余分布,将R的结果绘制曲线图;其中x轴为R的第一行,表示具体测试用例,y轴为R的第二行,表示当前测试用例相对前i个测试用例集的两两组合冗余程度;并将将U的结果绘制成柱状图。其中x轴为U的第一行,表示两两组合覆盖冗余,y轴为U的第三行,表示当前两两组合覆盖冗余所占所有两两组合集的比例。然后再根据曲线图和柱状图的结果对测试用例集中两两组合测试用例的覆盖冗余进行评价得到评价结果,进而根据评价结果为优化测试用例提供一个可参考、可跟踪的测试用例冗余的度量值。可以理解的是,组合测试用例覆盖冗余定义如下:在满足参数t-way组合被测试用例集合TS全覆盖的情况下,该测试用例集合TS重复覆盖t-way组合的程度。
可见,本申请获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵;按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵;基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵;利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;显示更新后的所述测试用例冗余分布矩阵以及所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。由此可见,本申请根据获取到的测试用例集构建相应的初始测试用例矩阵,并对初始测试用例矩阵进行重新赋值编码得到目标测试用例矩阵以及构建参数组合矩阵用于确定参数的两两组合方式;构建覆盖冗余矩阵用于确定两两组合被覆盖的次数,以及构建测试用例冗余分布矩阵用于确定单个测试用例两两组合的覆盖冗余分布;其次则利用目标测试用例矩阵和参数组合矩阵对覆盖冗余矩阵和测试用例冗余分布矩阵进行更新;再对更新后的覆盖冗余矩阵中的元素进行分析统计得到覆盖冗余程度矩阵,以用于确定两两组合覆盖冗余占比,最后对更新后的测试用例冗余分布矩阵和覆盖冗余程度矩阵进行显示,并对测试用例集中两两组合测试用例的覆盖冗余进行评价。如此一来,通过上述方案能够快速确定出测试用例集在两两组合测试中的覆盖能力以及覆盖冗余分布情况,并进行清楚直观的显示和评价,进而根据评价结果为优化测试用例提供一个可参考、可跟踪的测试用例冗余的度量值。
参见图4所示,本申请实施例公开了一种具体的两两组合测试用例覆盖冗余的评价方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
步骤S21:获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵。
步骤S22:确定所述初始测试用例矩阵的行数,并基于所述行数按照从小到大的顺序依次对所述初始测试用例矩阵中每一列的元素重新进行赋值编码得到更新后的目标测试用例矩阵,以及基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵。
本实施例中,创建一个用于存放重新编码赋值后的参数的TS’矩阵,该矩阵大小和初始测试用例集矩阵相同,在该矩阵中位置表示原始参数的位置,并基于行数按照从小到大的顺序依次对初始测试用例矩阵中每一列的元素重新进行赋值编码,也即使用0,1,2,3,4,5...m等自然数对测试用例TS重新赋值编码得到更新后的目标测试用例矩阵。上述基于所述行数按照从小到大的顺序依次对每一列中的元素重新进行赋值编码得到更新后的目标测试用例矩阵的过程中,还包括:针对所述初始测试用例矩阵中的每一列,判断已编码元素的原始取值中是否存在与当前待编码元素取值一致的目标元素;若存在,则利用所述目标元素的编码值对所述当前待编码元素进行赋值;若不存在,则确定当前列中与所述当前待编码元素相邻的已编码元素的目标编码值,并基于所述目标编码值对所述当前待编码元素进行赋值。也即依次读取测试用例集合TS矩阵中的每一行Ti,如果i=1,则令T1=[0],如果i不等于1,则判断该Ti中当前待编码元素的某一参数的取值在所在列中与前i个T中的该参数的取值是否有相同,如果相同则利用相同元素的编码值对当前待编码元素进行赋值;如果不同,则当前赋值为上一相邻参数最大赋值+1;重复上述步骤直到TS’中所有元素取值均已更新。以图2中的初始测试用例矩阵为例,相应的目标测试用例矩阵TS’可以如图5所示。
步骤S23:基于所述参数组合矩阵中的参数两两组合方式和所述目标测试用例矩阵中的参数取值范围确定出待构建矩阵的目标行列数,基于所述目标行列数构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵。
本实施例中,基于参数组合矩阵中的参数两两组合方式和目标测试用例矩阵中的参数取值范围确定出待构建矩阵COV的目标行列数s和q。其中,表示该测试用例中两个参数的组合方式,也即不同参数之间一个组合情况;q=max(ci,j)*max(ci',j'),为最多取值两个最大取值范围的参数的乘积。具体的,以图5中的目标测试用例矩阵为例,根据图3中的参数组合矩阵可知,其组合方式有6种,也即行数s取6,每个参数的取值范围均为0至3,也即其有4个取值范围,那么列数q=4×4=16。那么覆盖冗余矩阵即为一个6×16大小的一个矩阵并对其进行初始化后表示为:
该矩阵中,其坐标与参数在测试用例中的位置和取值均有关。每一行表示的含义与矩阵C中每一列相同。如矩阵中c1,1所在的当前一行表示第一个参数和第二个参数的所有排列组合情况。可以理解的是,第一个参数和第二个参数的取值范围均为0至3,那么c1,1表示第一个参数的第一个取值0和第二个参数的第一个取值0的组合;c1,2表示第一个参数的第一个取值0和第二个参数的第二个取值1的组合;c1,16表示第一个参数的最后一个取值3和第二个参数的最后一个取值3的组合。
步骤S24:基于所述参数组合矩阵的每一列依次读取所述目标测试用例矩阵的每一行以得到读取结果,基于所述读取结果对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵。
本实施例中,具体参见图6中的流程图所示,基于参数组合矩阵的每一列依次读取目标测试用例矩阵的每一行以得到读取结果,进一步的,上述基于所述读取结果对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,包括:基于所述读取结果在所述覆盖冗余矩阵中确定出对应的第一目标位置,并将所述第一目标位置的当前取值增加预设单位数值得到更新后取值;若所述更新后取值大于所述预设单位数值,则确定出所述测试用例冗余分布矩阵中的第二目标位置,并将所述第二目标位置的当前取值增加所述预设单位数值。也即,基于读取结果在覆盖冗余矩阵中确定出对应的第一目标位置,并更新第一目标位置的当前取值。具体的,上预设单位数值为1,也即如果当前位置的取值为0,则将当前位置取值+1;如果当前位置的取值不为0,则将当前位置取值+1,R矩阵第二行中对应的COVER取值+1。重复上述步骤,直到更新完所有的COV矩阵。以图3中的参数组合矩阵以及图5中的目标测试用例矩阵为例,更新后的覆盖冗余矩阵和测试用例冗余分布矩阵分别如图7和图8所示。图7中,第一行第一列的值为1,则表示第一个参数为0和第二个参数为0的组合在测试用例集中出现过1次;第一行第三列的值为0,则表示第一个参数为0和第二个参数为2的组合在测试用例集中未出现过。图8中第5列的值为5和1,则表示第5个测试用例相比前四个测试用例而言,重复覆盖的两两组合为1个,即目标测试用例矩阵中第二个测试用例中已经出现过第一个参数取1,第三个参数取1的组合情况。进一步的,对图7覆盖冗余矩阵的元素进行分析统计得到的用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵可以如图9所示。
步骤S25:显示更新后的所述测试用例冗余分布矩阵以及所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。
本实施例中,将图8中矩阵R的结果绘制成如图10所示的曲线图,其中x轴为R的第一行,表示具体测试用例,y轴为R的第二行,表示当前测试用例相对前i个测试用例集的两两组合冗余程度。将图9中矩阵U的结果绘制成如图11所示的柱状图,其中x轴为U的第一行,表示两两组合覆盖冗余,y轴为U的第三行,表示当前两两组合覆盖冗余所占所有两两组合集的比例。
其中,关于上述步骤S21更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,通过上述方案能够分别利用曲线图和柱状图清楚直观地展示出测试用例集在两两组合测试中的覆盖能力以及覆盖冗余分布情况,为优化测试用例提供一个可参考、可跟踪的测试用例冗余的度量值。
参见图12所示,本申请实施例公开了一种两两组合测试用例覆盖冗余的评价装置,该装置包括:
第一矩阵构建模块11,用于获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵;
第二矩阵构建模块12,用于按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵;
第三矩阵构建模块13,用于基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵;
矩阵更新统计模块14,用于利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;
覆盖冗余评价模块15,用于显示更新后的所述测试用例冗余分布矩阵和所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。
可见,本申请获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵;按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵;基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵;利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;显示更新后的所述测试用例冗余分布矩阵以及所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。由此可见,本申请根据获取到的测试用例集构建相应的初始测试用例矩阵,并对初始测试用例矩阵进行重新赋值编码得到目标测试用例矩阵以及构建参数组合矩阵用于确定参数的两两组合方式;构建覆盖冗余矩阵用于确定两两组合被覆盖的次数,以及构建测试用例冗余分布矩阵用于确定单个测试用例两两组合的覆盖冗余分布;其次则利用目标测试用例矩阵和参数组合矩阵对覆盖冗余矩阵和测试用例冗余分布矩阵进行更新;再对更新后的覆盖冗余矩阵中的元素进行分析统计得到覆盖冗余程度矩阵,以用于确定两两组合覆盖冗余占比,最后对更新后的测试用例冗余分布矩阵和覆盖冗余程度矩阵进行显示,并对测试用例集中两两组合测试用例的覆盖冗余进行评价。如此一来,通过上述方案能够快速确定出测试用例集在两两组合测试中的覆盖能力以及覆盖冗余分布情况,并进行清楚直观的显示和评价,进而根据评价结果为优化测试用例提供一个可参考、可跟踪的测试用例冗余的度量值。
图13为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的两两组合测试用例覆盖冗余的评价方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的两两组合测试用例覆盖冗余的评价方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由两两组合测试用例覆盖冗余的评价过程中执行的方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种两两组合测试用例覆盖冗余的评价方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种两两组合测试用例覆盖冗余的评价方法,其特征在于,包括:
获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵;
按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵;
基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵;
利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;
显示更新后的所述测试用例冗余分布矩阵以及所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。
2.根据权利要求1所述的两两组合测试用例覆盖冗余的评价方法,其特征在于,所述按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,包括:
确定所述初始测试用例矩阵的行数,并基于所述行数按照从小到大的顺序依次对所述初始测试用例矩阵中每一列的元素重新进行赋值编码得到更新后的目标测试用例矩阵。
3.根据权利要求2所述的两两组合测试用例覆盖冗余的评价方法,其特征在于,所述基于所述行数按照从小到大的顺序依次对每一列中的元素重新进行赋值编码得到更新后的目标测试用例矩阵的过程中,还包括:
针对所述初始测试用例矩阵中的每一列,判断已编码元素的原始取值中是否存在与当前待编码元素取值一致的目标元素;
若存在,则利用所述目标元素的编码值对所述当前待编码元素进行赋值;
若不存在,则确定当前列中与所述当前待编码元素相邻的已编码元素的目标编码值,并基于所述目标编码值对所述当前待编码元素进行赋值。
4.根据权利要求1所述的两两组合测试用例覆盖冗余的评价方法,其特征在于,所述基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,包括:
基于所述参数组合矩阵中的参数两两组合方式和所述目标测试用例矩阵中的参数取值范围确定出待构建矩阵的目标行列数;
基于所述目标行列数构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵。
5.根据权利要求1所述的两两组合测试用例覆盖冗余的评价方法,其特征在于,所述利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,包括:
对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行初始化;
利用所述目标测试用例矩阵和所述参数组合矩阵对初始化后的所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新。
6.根据权利要求1至5任一项所述的两两组合测试用例覆盖冗余的评价方法,其特征在于,所述利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,包括:
基于所述参数组合矩阵的每一列依次读取所述目标测试用例矩阵的每一行以得到读取结果;
基于所述读取结果对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新。
7.根据权利要求6所述的两两组合测试用例覆盖冗余的评价方法,其特征在于,所述基于所述读取结果对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,包括:
基于所述读取结果在所述覆盖冗余矩阵中确定出对应的第一目标位置,并将所述第一目标位置的当前取值增加预设单位数值得到更新后取值;
若所述更新后取值大于所述预设单位数值,则确定出所述测试用例冗余分布矩阵中的第二目标位置,并将所述第二目标位置的当前取值增加所述预设单位数值。
8.一种两两组合测试用例覆盖冗余的评价装置,其特征在于,包括:
第一矩阵构建模块,用于获取测试用例集,并基于所述测试用例集构建相应的初始测试用例矩阵;
第二矩阵构建模块,用于按照预设规则对所述初始测试用例矩阵重新进行赋值编码得到更新后的目标测试用例矩阵,并基于所述测试用例集的参数个数构建用于表征参数两两组合方式的参数组合矩阵;
第三矩阵构建模块,用于基于所述目标测试用例矩阵中的参数取值范围构建用于表征所述测试用例集中参数两两组合覆盖次数的覆盖冗余矩阵,以及构建用于表征每一测试用例中两两组合覆盖冗余分布的测试用例冗余分布矩阵;
矩阵更新统计模块,用于利用所述目标测试用例矩阵和所述参数组合矩阵对所述覆盖冗余矩阵和所述测试用例冗余分布矩阵进行更新,并对更新后的所述覆盖冗余矩阵的元素进行分析统计得到用于表征两两组合覆盖冗余占比的覆盖冗余程度矩阵;
覆盖冗余评价模块,用于显示更新后的所述测试用例冗余分布矩阵和所述覆盖冗余程度矩阵,并对所述测试用例集中两两组合测试用例的覆盖冗余进行评价。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的两两组合测试用例覆盖冗余的评价方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的两两组合测试用例覆盖冗余的评价方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211121511.XA CN115391226A (zh) | 2022-09-15 | 2022-09-15 | 两两组合测试用例覆盖冗余的评价方法及其相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211121511.XA CN115391226A (zh) | 2022-09-15 | 2022-09-15 | 两两组合测试用例覆盖冗余的评价方法及其相关组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115391226A true CN115391226A (zh) | 2022-11-25 |
Family
ID=84126466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211121511.XA Pending CN115391226A (zh) | 2022-09-15 | 2022-09-15 | 两两组合测试用例覆盖冗余的评价方法及其相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115391226A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662155A (zh) * | 2023-04-24 | 2023-08-29 | 西南科技大学 | 软件的组合测试用例优化方法和装置 |
-
2022
- 2022-09-15 CN CN202211121511.XA patent/CN115391226A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662155A (zh) * | 2023-04-24 | 2023-08-29 | 西南科技大学 | 软件的组合测试用例优化方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701250B (zh) | 数据定点化方法和装置 | |
JP7053995B2 (ja) | 最適化装置及び最適化装置の制御方法 | |
CN113570030A (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN116822803B (zh) | 基于智能算法的碳排放数据图构建方法、装置与设备 | |
CN115391226A (zh) | 两两组合测试用例覆盖冗余的评价方法及其相关组件 | |
CN114091655A (zh) | 神经网络量化方法、装置、存储介质以及终端 | |
CN113268485B (zh) | 数据表关联分析方法、装置、设备及存储介质 | |
CN115081613A (zh) | 生成深度学习模型的方法、装置、电子设备及存储介质 | |
CN113313304A (zh) | 一种基于大数据决策树的电网事故异常分析方法及系统 | |
CN114819168A (zh) | 一种矩阵特征值的量子比较方法及装置 | |
CN113128015B (zh) | 预估单振幅模拟量子计算所需资源的方法和系统 | |
CN115906863B (zh) | 基于对比学习的情感分析方法、装置、设备以及存储介质 | |
WO1996033473A1 (en) | Method and system for analyzing data | |
CN114679335B (zh) | 电力监控系统网络安全风险评估训练方法、评估方法及设备 | |
CN113961752B (zh) | 信息物理系统的基本可达图的分析方法和相关装置 | |
CN108875374A (zh) | 基于文档节点类型的恶意pdf检测方法及装置 | |
CN115495362A (zh) | 生成测试代码的方法、装置、存储介质及计算机设备 | |
US8031957B1 (en) | Rewritable lossy compression of graphical data | |
CN115017048A (zh) | 一种测试种子的确定方法及装置 | |
CN114741697A (zh) | 恶意代码分类方法、装置、电子设备和介质 | |
CN111767980A (zh) | 模型优化方法、装置及设备 | |
CN111767204A (zh) | 溢出风险检测方法、装置及设备 | |
CN116841650B (zh) | 样本构建方法、装置、设备以及存储介质 | |
CN116090183B (zh) | 一种面向scr需求模型的数字化模拟方法和系统 | |
CN111639520B (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 |