一种基于测试用例与语句重要性的软件故障定位方法技术

技术编号:45996927 阅读:9 留言:0更新日期:2025-08-01 18:57
本发明专利技术涉及一种基于测试用例与语句重要性的软件故障定位方法,属于软件测试技术领域,解决了现有软件故障定位不准确的问题。包括:根据程序谱中测试用例覆盖的程序语句,以及测试用例的执行结果构建事务数据,通过Jaccard度量方法计算各事务数据的权重;从各事务数据中获取原子关联规则,将每条程序语句作为节点,计算节点与失败的执行结果之间的相关性作为节点权重;计算节点之间的相关性作为边权重;构建加权关联规则网络;计算加权关联规则网络中各节点的特征向量中心性作为节点重要性,根据节点重要性和所述节点权重,得到节点的加权怀疑度;按加权怀疑度从大到小输出各节点对应的程序语句,依次进行软件故障定位。实现了软件故障的准确定位。

【技术实现步骤摘要】

本专利技术涉及软件测试,尤其涉及一种基于测试用例与语句重要性的软件故障定位方法


技术介绍

1、随着软件系统的复杂性和规模与日俱增,软件故障的存在可能会带来不可挽回的损失,尤其是对于安全关键软件。然而软件测试工作是一项公认的耗时耗力的严峻挑战,开发商不得不将大量成本花费在这项工作上,使得软件测试人员消耗许多时间与精力进行手动检查程序元素来寻找准确的故障位置。

2、基于频谱的故障定位(spectrum-based fault localization,简称sbfl)技术由于易用性和高效性被研究人员广泛关注。其主要应用统计分析或者机器学习等技术评估语句存在故障的可能性,语句在不通过的测试用例中出现的频率相比其在通过的测试用例出现的频率更高,则该语句更值得被怀疑。这也表示每一条语句的怀疑度。怀疑度的值越高,则语句发生故障的可能性越大。然而,基于统计分析的方法主要依赖语句覆盖信息与用例执行结果之间的相关性计算,因此同一程序块的代码会共享相同的怀疑度,也被称为元素绑定。

3、现有基于深度学习的sbfl将语句作为特征,通过增加语句的区分度并评估本文档来自技高网...

【技术保护点】

1.一种基于测试用例与语句重要性的软件故障定位方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于测试用例与语句重要性的软件故障定位方法,其特征在于,所述通过Jaccard度量方法计算出各事务数据的权重,包括:各事务数据根据测试用例的执行结果分为失败事务和通过事务,通过Jaccard度量方法计算每个失败事务分别与每个通过事务之间的Jaccard距离,取最长的Jaccard距离对应的失败事务为最重要的失败事务;分别计算每个通过事务与最重要的失败事务之间的Jaccard相似系数,作为通过事务的权重;每个失败事务的权重设置为1。

3.根据权利要求2所述的基于测...

【技术特征摘要】

1.一种基于测试用例与语句重要性的软件故障定位方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于测试用例与语句重要性的软件故障定位方法,其特征在于,所述通过jaccard度量方法计算出各事务数据的权重,包括:各事务数据根据测试用例的执行结果分为失败事务和通过事务,通过jaccard度量方法计算每个失败事务分别与每个通过事务之间的jaccard距离,取最长的jaccard距离对应的失败事务为最重要的失败事务;分别计算每个通过事务与最重要的失败事务之间的jaccard相似系数,作为通过事务的权重;每个失败事务的权重设置为1。

3.根据权利要求2所述的基于测试用例与语句重要性的软件故障定位方法,其特征在于,每个所述失败事务和所述通过事务包括至少一条程序语句,以及一个对应的执行结果;计算所述jaccard距离和jaccard相似系数时,去除失败事务和通过事务中的执行结果。

4.根据权利要求1所述的基于测试用例与语句重要性的软件故障定位方法,其特征在于,从各事务数据中获取原子关联规则是通过采用数据挖掘算法,设置最小支持度阈值和最小置信度阈值均为0而得到长度为2的关联规则。

5.根据权利要求2所述的基于测试用例与语句重要性的软件故障定位方法,其特征在于,基于各事务数据的权重,计算原子关联规则的支持度或者事务数据中的任意一项的支持度时,...

【专利技术属性】
技术研发人员:武文韬王世海刘斌
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1