一种基于网络节点重要度的测试序列生成方法技术

技术编号:35293542 阅读:21 留言:0更新日期:2022-10-22 12:40
本发明专利技术公开了一种基于网络节点重要度的测试序列生成方法,包括如下步骤:收集待测软件源代码并基于源码建立软件网络;从不同角度计算网络节点的重要度,获取重要节点序列;计算综合重要节点序列;设计考虑节点重要性的适应度函数;设计种群老化因子;采用重生多目标优化算法生成测试序列。本发明专利技术通过上述步骤,可以完成对基于网络节点重要度的测试序列生成方法的构建。本发明专利技术适用于解决实际软件测试的集成测试阶段的测试序列生成问题,可以帮助软件测试人员设计满足要求的测试测序列,降低测试成本,提高测试效率,具有较高的实际应用价值。价值。价值。

【技术实现步骤摘要】
一种基于网络节点重要度的测试序列生成方法


[0001]本专利技术涉及软件可信性、软件测试
,尤其涉及一种基于网络节点重要度的测试序列生成方法。

技术介绍

[0002]集成测试是软件测试中的重要阶段,旨在将不同的软件模块按某种逻辑进行增量集成以测试不同模块间的接口和交互是否正常,集成测试中的一个核心问题就是确定集成的顺序,即测试序列。面向对象和面向切面编程等类型的软件模块间的依赖交互类型复杂,且没有明显的层次结构,往往呈现出一种网状的依赖关系网络,且几乎必然会出现依赖环路,这导致确定集成顺序必须考虑破除环路,同时模拟某些依赖,即构建测试桩。集成测试序列生成本质上是一个多目标的组合优化问题,当前的集成测试序列生成方法几乎全部致力于寻找测试成本最小的测试序列,即找到测试桩数量或者测试桩复杂度最小的集成测试序列。但对于一个复杂的软件系统而言,不同模块的重要性是不一样的,比如与其他模块交互较多的模块,一旦出错会造成严重的影响。受测试资源的限制或者为了提高测试的效率,集成测试时应当优先集成重要的模块,而不是仅考虑测试桩模拟的复杂程度。
[0003]当前仅有基于图论的测试序列生成方法考虑了软件模块的重要性,该类方法首先对被测软件进行网络化建模,而后基于软件网络模型确定重要节点,并将节点的重要度融入到环路边的权重计算中去,从而使得删边破除环路时内在的考虑了节点的重要性,使得重要度高的节点尽可能的在序列前端,这表明从软件网络角度寻找重要节点并将其融入测试序列生成是可行且有效的。然而,该类方法存在图论方法存在的普遍问题,即面对复杂软件时的计算复杂度较高,且生成的测试序列几乎是唯一的,难以保证可以获得最优解,尤其是在目标不只一个的情况下,无法提供足够数量的相对最优解以供决策。而已有的基于优化算法的集成测试序列生成方法只考虑了测试桩构建的方法复杂度、属性复杂度等测试成本目标,而没有考虑软件不同模块重要性不同的问题。

技术实现思路

[0004]本专利技术目的是提供了一种基于网络节点重要度的测试序列生成方法,以解决上述问题。
[0005]本专利技术解决技术问题采用如下技术方案:
[0006]一种基于网络节点重要度的测试序列生成方法,包括如下步骤:
[0007]步骤1、收集待测软件源代码并基于源码建立软件网络;
[0008]步骤2、从不同角度计算网络节点的重要度,获取重要节点序列;
[0009]步骤3、计算综合重要节点序列;
[0010]步骤4、设计考虑节点重要性的适应度函数;
[0011]步骤5、设计种群老化因子;
[0012]步骤6、采用重生多目标优化算法生成测试序列。
[0013]进一步的,步骤1中所述的收集待测软件源代码并基于源码建立软件网络,其构建方法如下:获取需要进行测试的软件的源程序文件,而后解析软件源码获取软件模块集合V={v1,v2,

,v
n
}及其逻辑关系集合E={e1,e2,

,e
m
},软件模块可以是函数、类、方法等不同层次的软件实体,以此建立软件网络G,则G中网络节点为软件模块,边为模块间的交互依赖关系。
[0014]进一步的,步骤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

[0015]进一步的,步骤3中所述的计算综合重要节点序列,其构建方法如下:计算网络G的每个节点v
i
在上述每个序列中的位置,分别记为在上述每个序列中的位置,分别记为和而后计算节点v
i
的排序和最后,依据节点v
i
的排序和将所有节点升序排序,得到软件网络的综合重要节点序列ImpSeq。
[0016]进一步的,步骤4中所述的设计考虑节点重要性的适应度函数,其构建方法如下:假定任一测试序列为TestOrder,序列长度与ImpSeq一致,为被测软件的模块数,软件网络的节点数n;首先采用余弦相似度ImpCov(o)衡量ImpSeq与TestOrder的相似程度,也称为重要节点覆盖率,而后计算余弦距离ImpDiff(o)以衡量测试序列与综合重要节点序列的差距,越大意味着生成的测试序列质量越差;计算测试序列测试复杂度,使用属性复杂度ACplx(o)和方法复杂度MCplx(o)衡量测试序列的测试成本;适应度函数则为f
fitness
=[ImpDiff(o),ACplx(o),MCplx(o)],在进化生成测试序列过程中,进化方向为最小化f
fitness
中的每一个目标函数;其中o代表测试序列。
[0017]进一步的,步骤5中所述的设计种群老化因子,其构建方法如下:使用超体积(Hypervolume,HV)衡量生成的测试序列集的质量,对于多目标优化测试序列生成而言,算法趋于收敛后HV值会小幅波动;假定当前进化代数为t,HV值为HV
t
,t代往前1至Δt代(即t

1,

,t

Δt代),种群对应的HV值分别为HV
t
‑1,

,HV
t

Δt
,将种群老化定义为从第t

Δt代到t代种群的HV值曲线不再显著表现出显著的增长趋势,则种群老化;采用曼

肯德尔趋势检验法对序列[HV
t

Δt
,

,HV
t
‑1,HV
t
]进行趋势检验,得到HV序列的变化趋势及对应的p值,当且仅当趋势为非增长趋势,且p值小于0.05时,种群老化;故老化因子q
aging
相应的定义为Δt与最大进化代数之比,用于确定判断种群老化的代数长度Δt;由于种群在进化初期一般不会发生老化现象,且采用的老化判断方式是通过分析Δt代种群的变化趋势来判断。
[0018本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:杨顺昆苟晓冬
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1