【技术实现步骤摘要】
一种基于网络节点重要度的测试序列生成方法
[0001]本专利技术涉及软件可信性、软件测试
,尤其涉及一种基于网络节点重要度的测试序列生成方法。
技术介绍
[0002]集成测试是软件测试中的重要阶段,旨在将不同的软件模块按某种逻辑进行增量集成以测试不同模块间的接口和交互是否正常,集成测试中的一个核心问题就是确定集成的顺序,即测试序列。面向对象和面向切面编程等类型的软件模块间的依赖交互类型复杂,且没有明显的层次结构,往往呈现出一种网状的依赖关系网络,且几乎必然会出现依赖环路,这导致确定集成顺序必须考虑破除环路,同时模拟某些依赖,即构建测试桩。集成测试序列生成本质上是一个多目标的组合优化问题,当前的集成测试序列生成方法几乎全部致力于寻找测试成本最小的测试序列,即找到测试桩数量或者测试桩复杂度最小的集成测试序列。但对于一个复杂的软件系统而言,不同模块的重要性是不一样的,比如与其他模块交互较多的模块,一旦出错会造成严重的影响。受测试资源的限制或者为了提高测试的效率,集成测试时应当优先集成重要的模块,而不是仅考虑测试桩模拟的复杂程度。
[0003]当前仅有基于图论的测试序列生成方法考虑了软件模块的重要性,该类方法首先对被测软件进行网络化建模,而后基于软件网络模型确定重要节点,并将节点的重要度融入到环路边的权重计算中去,从而使得删边破除环路时内在的考虑了节点的重要性,使得重要度高的节点尽可能的在序列前端,这表明从软件网络角度寻找重要节点并将其融入测试序列生成是可行且有效的。然而,该类方法存在图论方法存在的普遍问题,即 ...
【技术保护点】
【技术特征摘要】
1.一种基于网络节点重要度的测试序列生成方法,其特征在于,包括如下步骤:步骤1、收集待测软件源代码并基于源码建立软件网络;步骤2、从不同角度计算网络节点的重要度,获取重要节点序列;步骤3、计算综合重要节点序列;步骤4、设计考虑节点重要性的适应度函数;步骤5、设计种群老化因子;步骤6、采用重生多目标优化算法生成测试序列。2.根据权利要求1所述的一种基于网络节点重要度的测试序列生成方法,其特征在于,步骤1中所述的收集待测软件源代码并基于源码建立软件网络,其构建方法如下:获取需要进行测试的软件的源程序文件,而后解析软件源码获取软件模块集合V={v1,v2,
…
,v
n
}及其逻辑关系集合E={e1,e2,
…
,e
m
},以此建立软件网络G,则G中网络节点为软件模块,边为模块间的交互依赖关系。3.根据权利要求2所述的一种基于网络节点重要度的测试序列生成方法,其特征在于,步骤2中所述的从不同角度计算网络节点的重要度,获取重要节点序列,其构建方法如下:借鉴复杂网络理论中的重要节点计算方法,分别采用度中心性C
D
(v
i
)、介数中心性C
B
(v
i
)、接近中心性C
C
(v
i
)和特征向量中心性C
E
(v
i
)作为节点重要度指标,计算软件网络每个节点的重要度;然后分别将G中每个节点按其C
D
(v
i
)、C
B
(v
i
)、C
C
(v
i
)和C
E
(v
i
)值降序排序,得到特征向量中心性重要节点序列度中心性重要节点序列ImpSeq
DC
、介数中心性重要节点序列ImpSeq
BC
、接近中心性重要节点序列ImpSeq
CC
、特征向量中心性重要节点序列ImpSeq
EC
。4.根据权利要求3所述的一种基于网络节点重要度的测试序列生成方法,其特征在于,步骤3中所述的计算综合重要节点序列,其构建方法如下:计算网络G的每个节点v
i
在上述每个序列中的位置,分别记为每个序列中的位置,分别记为和而后计算节点v
i
的排序和最后,依据节点v
i
的排序和将所有节点升序排序,得到软件网络的综合重要节点序列ImpSeq。5.根据权利要求4所述的一种基于网络节点重要度的测试序列生成方法,其特征在于,步骤4中所述的设计考虑节点重要性的适应度函数,其构建方法如下:假定任一测试序列为TestOrder,序列长度与ImpSeq一致,为被测软件的模块数,软件网络的节点数n;首先采用余弦相似度ImpCov(o)衡量ImpSeq与TestOrder的相似程度,也称为重要节点覆盖率,而后计算余弦距离ImpDiff(o)以衡量测试序列与综合重要节点序列的差距,越大意味着生成的测试序列质量越差;计算测试序列测试复杂度,使用属性复杂度ACplx(o)和方法复杂度MCplx(o)衡量测试序列的测试成本;适应度函数则为f
fitness
=[ImpDiff(o),ACplx(o),MCplx(o...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。