【技术实现步骤摘要】
基于错误传播建模和缺陷特征增强的软件错误定位方法
[0001]本专利技术属于软件测试
,涉及到软件错误定位,具体涉及一种基于错误传播建模和缺陷特征增强的软件错误定位方法。
技术介绍
[0002]早期的软件错误定位大多采用设置断点等人工分析的方法,人工定位错误不仅难度大,而且极其耗时。自动化软件错误定位可以帮助开发人员节约错误定位成本,根据是否需要执行测试用例可以分为基于静态分析的错误定位和基于动态分析的错误定位。基于静态分析的方法不运行待测程序,仅静态的对被测程序的内在程序结构、界面或者文档进行分析,以确定错误语句在被测程序中的可能出现的位置。而基于动态分析的软件错误定位通过执行测试用例分析程序运行过程中产生的运行时状态,根据程序运行中的观测结果的变化确定缺陷位置,生成缺陷报告,为开发人员快速有效地定位软件错误提供参考。
[0003]在动态错误定位方法中,基于程序频谱的错误定位被证明是低成本且有效的方法之一。因为它独立于程序模型且易于实现。程序频谱表示程序运行时的覆盖信息,反应程序运行某一代码剖面的特征信息。程序频谱与程序行为之间存在着一定的关系,通过对比失败测试用例和成功测试用例之间代码覆盖的差异为软件错误定位提供帮助。对于任意一个程序实体s
i
在测试用例下的覆盖特征可以用一个四元组表示即N(s
i
)=(N
cf
,N
uf
,N
cp
,N
up
),其中这四个元素分别代表执行失败且覆盖s
i ...
【技术保护点】
【技术特征摘要】
1.基于错误传播建模和缺陷特征增强的软件错误定位方法,其特征包括如下步骤:步骤1:对源程序进行插桩,执行测试用例,收集测试用例的程序频谱,包括执行结果和执行覆盖信息;步骤2:降低偶然性正确测试用例对错误定位的负面影响;步骤3:分别使用成功和失败测试用例的执行覆盖信息建立两个有向无权复杂网络模型G
P
和G
F
;3
‑
1.根据程序频谱建立测试用例和语句节点之间的连接,如果测试用例t
i
覆盖语句s
j
则节点t
i
与s
j
之间存在双向边;3
‑
2.根据测试用例执行上下文建立语句和语句节点之间的连接,单向逆序连接测试用例执行轨迹中的语句节点;步骤4:通过TrustRank排名算法分别计算复杂网络模型G
P
和G
F
中每个节点的重要性,并通过节点重要性给成功和失败测试用例分配权重,计算加权后的语句执行四元组信息;4
‑
1.构造转移矩阵表示网络模型中节点之间的随机游走跳转概率,对G
P
和G
F
构造转移矩阵方法相同;对于G
F
,构造一个大小为N
s
×
N
t
的矩阵S2T,其中N
s
表示失败测试用例执行语句向量的并集,N
t
表示失败测试用例的数量;如果语句s
i
覆盖t
j
,t
j
执行条语句,表示t
j
执行的语句数量,分配因为t
j
执行条语句时每条语句对t
j
的TR贡献值为构造一个大小为N
t
×
N
s
的矩阵T2S,如果t
j
执行s
i
,s
i
覆盖个失败测试用例,分配因为s
i
执行个失败测试用例时,每个测试用例对s
i
的TR贡献值为构造一个表示语句之间错误传播的N
s
×
N
s
的转移矩阵S2S,当语句s
i
与s
j
之间有边时,s
ij
=1/N
s
,并将S2S按列归一化;4
‑
2.构造信任传播向量,选择测试用例节点作为种子节点,添加测试用例提供的额外信息来控制节点在网络模型中的游走行为;让复杂网络在随机游走过程中对该种子节点集合具有更高的偏向性;信任传播向量的形式设置为v
s
表示语句的信任传播向量,v
t
表示测试用例的信任传播向量;因为只选择测试用例节点作为种子节点,...
【专利技术属性】
技术研发人员:陈滨,曾鸿艳,邵艳利,魏丹,王兴起,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。