2. 中国核动力研究设计院 核反应堆系统设计技术重点实验室, 成都 610041
2. Key Laboratory of Nuclear Reactor System Design Technology, Nuclear Power Institute of China, Chengdu 610041, China
开放科学(资源服务)标志码(OSID):
随着核电产业的不断发展,核电厂的安全问题引起众多业内人士的关注。核电数字化仪控系统(Digital Instrument and Control System,DCS)用于监测和控制核电厂热能和电能生产,负责完成系统数据计算、处理等任务,是整个核电厂仪控系统的神经中枢和控制中枢。如何确保DCS系统运行时的安全性和可靠性是测试者必须考虑的问题[1-2]。
DCS系统由一系列已开发好的基础组件搭建而成,通过将基础组件接收到的不同输入信号与其内部参数进行逻辑运算产生相应的输出信号,从而控制相关设备工作,保证反应堆安全可靠运行。由于DCS系统所含基础组件数量庞大,在工作过程中不同组件参与其运行的参数以及它们之间相互作用往往不同。例如,阈值检测组件THC中所含参数包括输入信号、输出信号、组件设定参数、信号状态等,其中每类参数对应的取值与其他参数均能组成不同的组件工作模式,如报警产生、报警状态、报警恢复等。参数之间的不同交互关系会产生不同的输出信号。如何针对目标待测组件所具有的交互关系,设计出相应的测试数据集是本文要解决的问题。
组合测试是通过参数组合的方式来检测由各参数以及它们之间相互作用所引起软件故障的一种测试方法[3]。在保证测试质量的前提下,采用尽可能少的测试数据覆盖尽可能多的影响参数。待测软件模型生成测试数据是近年来组合测试的重点研究方向之一[4-5]。根据方法思想不同,组合测试主要分为数学方法[6-7]、启发式搜索算法[8-10]、贪心算法[11-13]、随机方法。相比其他方法,贪心算法的处理速度较快、适用范围广,故在工业界中应用最广泛[14]。贪心算法是通过从空矩阵开始,不断扩展初始矩阵以得到目标覆盖矩阵,按扩展方式不同可分为一维扩展和二维扩展。一维扩展的代表性工具为美国贝尔实验室的COHEN和DALAL等[15]开发的自动化高效测试生成器(Automation Efficient Test Generator,AETG),是一种基于启发式的两两组合测试数据生成工具,每次生成的测试数据最多覆盖当前未被覆盖的组合测试数据,直至未覆盖组合全部被覆盖;二维扩展的代表性算法是LEI和TAI等[16]提出的逐参数扩展(In-Parameter-Order,IPO)方法,主要从重复水平扩展和垂直扩展步骤来实现待测软件所有参数取值的两两组合覆盖。
将传统基于贪心算法的组合测试数据生成方法应用于实际系统测试,系统中存在的实际参数交互关系根据人为选定组合覆盖标准来确定[17]。在众多软件系统中,不同参数间所存在的交互关系往往千差万别,对其一概而论会带来极大的测试成本。文献[18]也证明了这一点。BACH等[19]提出成功应用组合测试方法的关键条件是能够准确获取待测软件的交互关系。针对DCS系统基于组件开发的特性,传统组合测试方法很难寻找一个合适的正整数n来确定其所含的交互关系,若n值选取太大,则会导致测试数据过度冗余,增加测试成本;若n值选取太小,系统组件中某些关键参数间的交互关系将难以进行全面检测,从而降低测试数据的错误检测能力[20]。由于贪心算法的本质缺陷,即易导致局部最优解的大量产生,从而可能造成数据集规模较大、检错能力降低等一系列问题。
本文是基于高安全应用开发环境(Safety-Critical Application Development Environment,SCADE)平台上对核电DCS系统进行研究,采用组件式软件开发方法开发软件系统。根据仪控系统自身需求及其特点,在原有IPO算法基础上提出一种具有可变力度机制的IPO_VD算法。该算法综合考虑目标待测系统存在的实际交互关系,并在水平扩展过程中对参数取值选择策略进行改进,从而应用在核电DCS系统堆芯测量时有效减小测试数据规模,同时实现对组件间实际交互关系的全覆盖。
1 问题定义本文所述的组件是DCS系统中实现数据和信号处理的算法单元,只能通过组件接口与外界交互。其接口的具体组成可被视为一个三元组 < 输入信号,输出信号,组件参数 > 。
1)输入信号:由一个n元向量(x1,x2,···,xn)来表示,每个分量xi可视为一个二元组 < value,state > ,“value”代表输入信号的具体取值,其来源情况分为外部传感器数据输入和系统内部组件间信号传递,“state”代表“value”的状态,有真、假两种状态。
2)输出信号:由一个m元向量(y1,y2,···,ym)来表示,每个分量yi和输入分量也通过一个二元组 < value,state > 表示。
3)组件参数:是一个k元向量(p1,p2,···,pk),代表组件所含内部参数集合,此参数集内所含参数值通过对输入信号进行相应逻辑运算,决定组件的工作模式。
DCS系统测试需保证在正常或异常操作下其功能是否正常且稳定。针对各基础组件所含参数各异、交互力度不一致等情况,通过分析单一输入信号只得到复杂多样的测试数据,不能体现系统组件间的交互性,导致测试数据的检错能力低,无法检测由两个及两个以上参数相互作用产生的故障。对所有基础组件进行笼统固定维度组合测试忽略其实际存在的相互作用,导致测试效率低。DCS系统测试的难点是对不同待测组件所包含不同相互作用的具体分析,以及针对各待测组件的实际情况,在保证测试覆盖度的情况下采用较少的测试数据对该组件进行较全面测试。
假设某待测组件c的k个参数间具有m条交互关系:r1,r2,···,rm,每条交互关系中所包含的参数具有若干个取值。由于待测组件具有不同交互关系的不同取值会产生N种不同工作情景,设计出相应的测试数据集对其进行覆盖,即:
T =
为满足组件功能覆盖的充分性与有效性,矩阵T需满足对任意m个交互关系r1,r2,···,rm均能实现符合其各自的组合覆盖标准。
2 变力度组合测试模型在DCS系统中,假设其待测组件共有n个相关参数p1,p2,···,pn参与运行,这些参数共同构成一个有限集合P={p1,p2,···,pn};对于每个参数Pi,令Vi为Pi的一系列合理取值集合(0 < i≤n),其中Vi含有k个元素(|Vi|=k),记为Vi={Vi1,Vi2,···,Vik},k为参数Vi的水平数。
定义1(测试数据) 一个n元组test=(x1,x2,···,xn),其中(x1∈V1,x2∈V2,···,xn∈Vn),称为待测组件的一条测试数据。由多个这样的n元组构成的集合为待测组件的一个测试数据集。
定义2(组合覆盖矩阵) 假设A=(xij)m×n为m×n的矩阵,其中第i行表示每条测试数据,第j列表示待测组件的参数Pj(j=1,2,···,n)。若矩阵A中任意两列参数Pi,Pj全部取值的两两组合至少一次出现在第i行和第j列形成的测试数据中,则称A是二维组合覆盖矩阵;同理,如果任意选择N个参数(1≤N≤n),若矩阵A中任意N列,即参数P1,P2,···,PN均满足集合V1,V2,···,VN中元素所形成的N元组合均在矩阵A中至少出现一次,则称A为N维组合覆盖矩阵。
根据参数覆盖程度不同,组合测试可分为单参数覆盖标准、二维组合覆盖标准、n维组合覆盖标准、可变强度覆盖标准。其中不同的组合覆盖标准所对应的检错能力有很大的不同,据美国国家标准和技术协会的一项研究表明[21],单参数覆盖标准能检出42%的缺陷,二维组合覆盖标准可检测出70%的缺陷,覆盖强度达到六维则能检测出所有缺陷。
定义3(参数交互关系) 假设组件参数集合P中存在一组具有相互作用的参数,将这些参数纳入到一个子集r中,其中r⊆P,子集r中所包含的参数间将存在一个交互力度均为|r|的相互作用。类似地,将系统中所存在所有参数的交互作用提取出来形成集合R={r1,r2,···,rk},集合R为待测系统的参数交互关系集合。
定义4 给定一个N维组合覆盖矩阵A,对于定义3中所述的参数交互关系集合R={r1,r2,···,rk},其中ri(i=1,2,···,k)含有的|ri|元取值组合所构成的集合CombSeti={(xi1,xi2,···,xin)|xi,1∈Vi1,xi2∈Vi2,···,xin∈Vin},均能被这些取值所对应的参数列构成m×|ri|的子矩阵Ai覆盖,则称A为变力度组合覆盖矩阵。
定义5 对某含n个参数的待测组件,每个参数Pi的水平数为k[i],i=1,2,···,n,其中某m个参数Pi1,Pi2,···,Pim(0 < m < n)的各种取值组合数为Cm=k[i1]×k[i2]×···×k[im]。若test为该系统的测试数据集,被它覆盖的m个参数组合数为Cm-T,测试数据表Test覆盖m个参数的组合数Cm-T与所有组合数Cm的比值为测试数据表Test对m个参数的组合覆盖率,即实际覆盖工作模式的数据数量/待测组件所含的所有工作模式数量,记为p=(Cm-T)/Cm。
3 基于IPO策略的测试数据生成 3.1 IPO策略IPO策略最初由北卡罗来纳大学的LEI和TAI提出[13],是一种基于参数顺序渐进扩充的成对组合测试数据生成方法。IPO算法是以待测软件的参数为对象,以参数水平数为依据进行递减排序,针对前两个参数及其取值构造初始覆盖矩阵,进而向这个测试集逐个添加未覆盖的参数,每加入一个参数Pi,同时构造一个未覆盖集合UnderCover,此集合包含当前参数与已有覆盖矩阵中所有其他参数的二维取值组合。通过不断重复水平扩展和垂直扩展直至扩展完未覆盖集合中所有组合。
3.2 IPO算法影响因子分析及改进将IPO算法应用在DCS系统的测试过程中,DCS系统所特有的一些因素会对IPO算法产生影响。例如,针对不同的基础组件进行测试时,不同组件所含的参数交互关系各不相同,笼统地对其进行固定维度组合测试是不可行的。由于贪心算法不会从整体上考虑各参数取值情况,仅在当前状态下做出最好选择,易存在陷入局部最优的问题。
针对上述问题,本文在原有IPO算法的基础上,提出一个具有可变力度机制的IPO_VD算法以应用于DCS系统测试领域。IPO_VD算法的核心思想是先通过解析系统组件开发文档来获取待测组件的相关信息,并按组件所含参数的实际交互关系生成不同覆盖力度的初始组合覆盖矩阵,进而利用“临时数组”记录算法水平扩展过程出现的局部最优解,并在垂直扩展时从未覆盖组合集合中取值来替换。最终垂直扩展综合考虑已有覆盖数组和未覆盖集合里的元素,得到最终测试数据集。IPO_VD算法流程如图 1所示。
![]() |
Download:
|
图 1 IPO_VD算法流程 Fig. 1 Procedure of IPO_VD algorithm |
原IPO算法在构造初始组合覆盖矩阵时,采用随机方法任意选择两个待扩展参数生成初始组合覆盖矩阵,并未考虑其间的相互作用以及后续扩展过程的复杂性,导致测试数据集检错能力降低和算法性能较差。本文通过解析DCS系统组件开发文档的方式获取组件的参数交互关系集R。由于集合R中所含交互关系各异,因此需对其所含具体参数进行分析,选择一个合适的交互关系子集rk构造初始覆盖表。针对其生成一个为|CombSetk|×n的初始组合覆盖矩阵。选择合适的交互关系子集对于提高传统组合测试效能具有重要意义,在R中确定一个合适的交互关系子集rk,本文提出以下两种策略:
1)选取一个包含参数个数及其取值数量最多的子集ri。通过扩大初始测试数据矩阵规模以及降低一定的算法时间性能,以减少水平扩展和垂直扩展步骤的复杂度,但此策略忽视了与其他待扩展交互关系子集所含参数间存在的相互作用,会出现较为严重的组合冗余现象,从而导致最终的测试数据集检错能力降低。
2)选取所含交集参数最多的一个子集rj。该策略的出发点是防止测试数据集产出冗余测试数据,通过优先处理与其他交互关系子集参数间存在相互作用最多的子集,在满足交互关系覆盖率的同时达到控制测试数据的规模。针对核电DCS系统测试中对组合覆盖率的严格要求,本文将采用该策略生成初始组合覆盖矩阵。
算法1 初始变力度组合覆盖矩阵构造算法
输入 交互关系R,参数集P及其取值集合{Vi1,Vi2,···,Vin}
输出 变力度组合测试数据集TC
1.Select rk from R;//从R中选择一个交互关系
2.Initialize TC[0···0][1,2,···,n];//初始化矩阵
3.根据rk所含参数及其交互关系生成CombSetk,并加入初始组合覆盖表TC;
4.If |Pi|= 2 then return TC;
5.While(R);//R中存在尚未扩展的交互关系
6.do{
7.Initialize Temp[]//构造临时数组Temp存放待扩展交//互关系
8.将rk与其他r1,2,···,k-1和rk+1,k+2,···,n交互关系存在的交集参数填入数组Temp中;
9.select Pj∉rk & & Pj∈{R-rk} fromTemp[]//取其Pj所在交//互关系集合rj所包含参数作为待扩展参数
10.Method_H(TC,Pj,Temp);//水平扩展
11.Return TC_temp;
12.End if
13.Method_V(TC,Pj,UnderCover);//垂直扩展
14.End function;
3.2.2 水平扩展与垂直扩展在水平扩展时,原IPO算法根据贪心算法选取当前状态下UnderCover集合里出现次数最多的一个t元组来确定当前待扩展参数的取值,将待扩展参数Pi的k[i]个取值依次扩展到已有矩阵中,若此时UnderCover集合不为空,则将其所含剩余取值通过新增行向当前矩阵进行垂直扩展;反之,继续通过贪心算法进行赋值,直至完成水平扩展。
1)水平扩展
依次为待扩展参数列中的每个待赋值项按矩阵行顺序计算其参数值对应的重复组合数量ReComb。选择最小ReComb值进行取值并填充,若发生取值相等则通过“临时数组”的方式来记录当前扩展行中重复组合数量,将扩展后存在的局部最优解进行重置。不断进行水平扩展直至所有待扩展参数均已被添加入矩阵,然后进行垂直扩展。
2)垂直扩展
针对水平扩展后得到的不完整矩阵,寻找UnderCover中是否存在相应配对确定已有矩阵中的未赋值项。若不存在,则新增一行选择其中出现次数最多的参数作为覆盖数组中新的一行中首个待扩展参数,进而逐一考虑当前待扩展参数与其余参数的组合情况,选择能覆盖UnderCover中最多组合的参数,得到最终测试数据集TC。
算法2 水平扩展算法
输入 初始变力度覆盖矩阵TC,Temp
输出 水平扩展完的临时数据集TC_temp
1.Method_H(TC,Pi){//Pi∈{R-rk}
2.UnderCover={Pi与前(i-1)个参数的所有取值形成的t维组合};
3.S=min(|Pi|,|TC|);
4.If s= |TC|//若现有覆盖数组大小小于等于待扩展参数//水平数
5.For j=1 to s do {
6.TC[j][i] = Pi.vj;//将参数Pi的第j个可选值添加到//TC的第j行的第i列上
7.UnderCover = UnderCover-{当前已被覆盖的组合}
8.} End for
9.If s = | Pi |;
10.For j = s+1 to | Pi | do {
11.选择参数Pi的一个能覆盖最多UnderCover中未被覆盖组合的取值;
12.If(TC[i][s+1] = TC[i-1][s+1]);
13.将第一次出现重复组合的覆盖数组中第i-1行的第j列参数项取值置为“-”;并将该行所覆盖组合重新放入UnderCover中;
14.End if
15.Return TC_temp;
算法3 垂直扩展算法
输入 水平扩展后的覆盖矩阵TC、UnderCover
输出 变力度组合测试数据集TC
1.Method_V(TC,UnderCover){
2.While(UnderCover)do
3.If二维组合对i=(参数Pk的取值w,参数Pm的取值u) & TC中有这样一条测试数据T1,其参数Pk的取值为“-”,参数Pm的取值为u;
4.Then将“-”改为w;//替换无关值
5.Else Initialize new line[1,2,···,n];//新增一行
6.通过遍历集合找出UnderCover中出现次数最多的参数值Piv,加入对应参数列中;}
7.If(若在全部扩充过程结束后仍有“-”)
8.Then从该参数的取值集合中选择一个值进行替换;
9.Return TC;
4 实验 4.1 堆芯测量系统反应堆堆芯测量系统是核电DCS系统中重要的安全子系统,其主要功能是通过对反应堆堆芯的实时工况参数进行监测,防止堆内温度热分布不均衡而发生安全事故。堆芯温度测量系统共分为4个区域,由外围的3个区域P1、P2、P3和中心区域C共同组成。每个区域均设置不同数量的传感器。其中P1区域设置了5个温度传感器,P2区域设置7个温度传感器,P3区域设置6个温度传感器,中心区域C设置4个温度传感器。具体结构如图 2所示。
![]() |
Download:
|
图 2 堆芯测量区域 Fig. 2 Core measurement area |
当某个区域内传感器的最大和最小温差大于阈值时,将产生该区域的报警信号。该区域报警功能的实现过程实质上是温度测量信号到报警信号的信号转换。信号处理过程如图 3所示。
![]() |
Download:
|
图 3 信号处理过程 Fig. 3 Signal processing |
1)输入信号去噪过程:温度采样信号采用FI1一阶低通滤波组件进行去噪处理,防止噪声数据对其他组件模块的正常运行造成干扰。
2)温度值求差过程:通过分析去噪模块传来的温度数值信号,利用MAX、MIN组件求出温度最大、最小值,再通过SUM组件得到温度最大和最小值之间的差值。
3)阈值检测过程:通过比较温差模块传来的温差信号值与报警信号阈值,当温差超过监测阈值时产生报警信号。
通过分析和研究区域C的工作流程、功能模块组成结构、组件接口协议、内部参数配置等信息,从测试数据规模和安全性角度考虑,该区域模块的参数信息如表 1~表 3所示。
![]() |
下载CSV 表 1 FI1组件参数信息 Table 1 FI1 component parameters information |
![]() |
下载CSV 表 2 SUM组件参数信息 Table 2 SUM component parameters information |
![]() |
下载CSV 表 3 THC组件参数信息 Table 3 THC component parameters information |
本文从生成测试数据规模、交互关系覆盖率、检错能力对上述3个模块进行不同维数组合测试,以验证IPO_VD算法在DCS系统堆芯测量模块测试数据生成方面的充分性、有效性和实用性。选取堆芯测量模块作为实验对象,通过静态分析获取其相关待测组件所包含的组件参数集、取值集合、参数交互关系集合等信息。基于本文方法生成初始变力度覆盖矩阵,根据改进IPO策略,通过不断进行水平扩展得到最终的测试数据集。测试数据规模比较如表 4所示,各算法覆盖率比较如表 5所示。
![]() |
下载CSV 表 4 测试数据规模比较 Table 4 Comparison of test data scale |
![]() |
下载CSV 表 5 不同算法覆盖率比较 Table 5 Comparison of coverage rate between different algorithms |
从表 4和表 5可以看出,在满足待测组件测试覆盖准则的前提下,具有可变力度机制的IPO_VD算法可以保证交互关系所含任意n个参数取值间的所有组合都能被覆盖,并且与固定力度下的相应维度组合测试相比,有效减小了数据集的规模。
4.2.2 测试数据检错能力比较针对待测组件的参数交互关系和目前已知组件的故障类型,本文将组件故障类型分为两类,反应堆堆芯测量系统可能存在的故障及其故障描述如表 6所示。
![]() |
下载CSV 表 6 组件故障类型 Table 6 Component failure type |
按照表 6故障定义可知,符合单参数覆盖标准的测试数据仅能发现单体故障类别的故障,利用更高维度的覆盖标准才能发现产生原因更复杂的交互故障。如表 6中I/O信号状态不一致的故障需利用能同时覆盖输入信号状态和输出信号状态的测试数据才能检出。对交互关系中所含参数组合的覆盖能力是决定测试数据检错能力的主要原因。为了证明变力度组合测试算法在检错能力上的优势,本文通过将测试数据作为输入以此检测THC组件的实际检出故障数量。上述4种算法的故障检测能力对比如图 4所示。
![]() |
Download:
|
图 4 不同算法故障检测能力比较 Fig. 4 Comparison of fault detection capabilities between different algorithms |
本文通过对DCS系统组件进行分析,对原有IPO策略中目标待测组件间实际交互关系和水平扩展过程中的参数取值选择策略进行改进,提出具有可变力度机制的IPO_VD算法。实验结果表明,IPO_VD算法在保证参数组合覆盖率的同时,其产生的测试数据集检错能力与测试数据规模优于固定力度下的IPO算法。后续将对IPO_VD算法的复杂度进行简化,提高算法在测试交互关系复杂组件情况下测试数据的生成效率。
[1] |
XIA D Y. The establishing of V & V system used for domestication DCS software of nuclear power plants[J]. Nuclear Safety, 2014, 13(3): 27-32. (in Chinese) 夏丹阳. 核电厂国产化DCS软件验证和确认体系的建立[J]. 核安全, 2014, 13(3): 27-32. DOI:10.3969/j.issn.1672-5360.2014.03.006 |
[2] |
ZHENG P Y, ZHONG B, MA X R. Analysis of the standard system for software verification and validation of digital control system in nuclear power plant[J]. Process Automation Instrumentation, 2017, 38(3): 13-17. (in Chinese) 郑骈垚, 钟柏, 马象睿. 核电厂DCS软件验证与确认标准体系分析[J]. 自动化仪表, 2017, 38(3): 13-17. |
[3] |
JUN Y, JIAN Z. Combinatorial testing: principles and methods[J]. Journal of Software, 2009, 20(6): 1393-1405. (in Chinese) 严俊, 张健. 组合测试: 原理与方法[J]. 软件学报, 2009, 20(6): 1393-1405. |
[4] |
NIE C, LEUNG H. A survey of combinatorial testing[J]. ACM Computing Surveys, 2011, 43(2): 1-29. |
[5] |
GRINDAL M, OFFUTT J, ANDLER S F. Combination testing strategies: a survey[J]. Software Testing Verification & Reliability, 2010, 15(3): 167-199. |
[6] |
MANDL R. Orthogonal latin squares: an application of experiment design to compiler testing[J]. Communications of the ACM, 1985, 28(10): 1054-1058. DOI:10.1145/4372.4375 |
[7] |
KOBAYASHI N, TSUCHIYA T, KIKUNO T. A new method for constructing pair-wise covering designs for software testing[J]. Information Processing Letters, 2002, 81(2): 85-91. DOI:10.1016/S0020-0190(01)00195-8 |
[8] |
QI R Z, WANG Z J, HUANG Y H, et al. Generating combinatorial test suite with Spark based parallel approach[J]. Chinese Journal of Computers, 2018, 41(6): 1284-1299. (in Chinese) 戚荣志, 王志坚, 黄宜华, 等. 基于Spark的并行化组合测试用例集生成方法[J]. 计算机学报, 2018, 41(6): 1284-1299. |
[9] |
ZENG M F, CHEN S Y, ZHANG W X, et al. Generating covering arrays using ant colony optimization: exploration and mining[J]. Journal of Software, 2016, 27(4): 855-878. (in Chinese) 曾梦凡, 陈思洋, 张文茜, 等. 利用蚁群算法生成覆盖表: 探索与挖掘[J]. 软件学报, 2016, 27(4): 855-878. |
[10] |
LIANG Y L, NIE C H. The optimization of configurable genetic algorithm for covering arrays generation[J]. Chinese Journal of Computers, 2012, 35(7): 1522-1538. (in Chinese) 梁亚澜, 聂长海. 覆盖表生成的遗传算法配置参数优化[J]. 计算机学报, 2012, 35(7): 1522-1538. |
[11] |
NIE C H, JIANG J. Optimization of configurable greedy algorithm for covering arrays generation[J]. Journal of Software, 2013, 24(7): 55-69. (in Chinese) 聂长海, 蒋静. 覆盖表生成的可配置贪心算法优化[J]. 软件学报, 2013, 24(7): 55-69. |
[12] |
LIANG F, SONG X Q. Method of generating pair-cover test cases based on AETG algorithm[J]. Computer Engineering and Design, 2014, 35(11): 3850-3854. (in Chinese) 梁凡, 宋晓秋. 基于AETG算法的两两组合测试用例生成方法[J]. 计算机工程与设计, 2014, 35(11): 3850-3854. DOI:10.3969/j.issn.1000-7024.2014.11.027 |
[13] |
LI L S, WANG Y T. Generation algorithm of pairwises combinatorial test case set with weighted parameter[J]. Computer Engineering, 2015, 41(4): 284-287, 293. (in Chinese) 李龙澍, 王雅婷. 带权值参数的两两组合测试用例集生成算法[J]. 计算机工程, 2015, 41(4): 284-287, 293. DOI:10.3969/j.issn.1000-3428.2015.04.054 |
[14] |
HUANG L, YANG Y H, LI H. Research on algorithm of parameter pairwise and n-way combinatorial coverage[J]. Chinese Journal of Computers, 2012, 35(2): 257-269. (in Chinese) 黄陇, 杨宇航, 李虎. 参数配对及n-way组合覆盖算法研究[J]. 计算机学报, 2012, 35(2): 257-269. |
[15] |
COHEN D M, DALAL S R. The AETG system: an approach to testing based on combinatorial design[J]. IEEE Transactions on Software Engineering, 1997, 23(7): 437-444. DOI:10.1109/32.605761 |
[16] |
TAI K C, LEI Y. A test generation strategy for pairwise testing[J]. IEEE Transactions on Software Engineering, 2002, 28(1): 109-111. DOI:10.1109/32.979992 |
[17] |
KUHN D R, REILLY M J. An investigation of the applicability of design of experiments to software testing[C]//Proceedings of the 27th Annual NASA Goddard/IEEE Software Engineering Workshop. Washington D.C., USA: IEEE Press, 2002: 91-95.
|
[18] |
KUHN D R, WALLACE D R, GALLO A M. Software fault interactions and implications for software testing[J]. IEEE Transactions on Software Engineering, 2004, 30(6): 418-421. DOI:10.1109/TSE.2004.24 |
[19] |
BACH J, SCHREODER P J. Pairwise testing: a best practice that isn't[EB/OL]. [2020-06-02]. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.159.5244&rep=rep1&type=pdf.
|
[20] |
WANG Z Y, QIAN J, CHEN L, et al. Generating variable strength combinatorial test suite with One-test-at-a-time strategy[J]. Chinese Journal of Computers, 2012, 35(12): 113-124. (in Chinese) 王子元, 钱巨, 陈林, 等. 基于One-test-at-a-time策略的可变力度组合测试用例生成方法[J]. 计算机学报, 2012, 35(12): 113-124. |
[21] |
WALLACE D R, KUHN D R. Failure modes in medical device software: an analysis of 15 years of recall data[J]. International Journal of Reliability Quality and Safety Engineering, 2001, 8(4): 351-371. DOI:10.1142/S021853930100058X |