首页> 中国专利> 一种缺陷关联系数的度量方法

一种缺陷关联系数的度量方法

摘要

本发明公开了一种缺陷关联系数的度量方法,其特征在于,包括如下步骤:步骤一:从缺陷管理系统中抽象出来需要计算关联度的缺陷信息建立抽象的缺陷关联模型;步骤二:计算缺陷的数据相似度;步骤三:计算缺陷间的耦合度;步骤四:根据缺陷的数据相似度、缺陷间的耦合度计算缺陷关联系数;步骤五:根据缺陷传播特性更新缺陷关联系数矩阵。本发明计算出了两个直接关联缺陷间的缺陷关联系数,准确度高;设计了一种基于缺陷传递的缺陷关联系数的简单路径调整算法,实现对缺陷关联系数矩阵的动态更新。

著录项

  • 公开/公告号CN105677565A

    专利类型发明专利

  • 公开/公告日2016-06-15

    原文格式PDF

  • 申请/专利权人 浙江理工大学;

    申请/专利号CN201610010014.0

  • 发明设计人 包晓安;董萌;张娜;吴彪;郭炜杰;

    申请日2016-01-06

  • 分类号G06F11/36;

  • 代理机构杭州杭诚专利事务所有限公司;

  • 代理人尉伟敏

  • 地址 310018 浙江省杭州市下沙经济开发区2号大街928号浙江理工大学

  • 入库时间 2023-12-18 15:32:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-09

    专利实施许可合同备案的生效 IPC(主分类):G06F11/36 专利申请号:2016100100140 专利号:ZL2016100100140 合同备案号:X2023330000257 让与人:浙江理工大学 受让人:浙江灿宇纺织有限公司 发明名称:一种缺陷关联系数的度量方法 申请日:20160106 申请公布日:20160615 授权公告日:20180821 许可种类:普通许可 备案日期:20230424

    专利实施许可合同备案的生效、变更及注销

  • 2023-04-14

    专利实施许可合同备案的生效 IPC(主分类):G06F11/36 专利申请号:2016100100140 专利号:ZL2016100100140 合同备案号:X2023980034022 让与人:浙江理工大学 受让人:海宁乐众信息技术股份有限公司 发明名称:一种缺陷关联系数的度量方法 申请日:20160106 申请公布日:20160615 授权公告日:20180821 许可种类:普通许可 备案日期:20230328

    专利实施许可合同备案的生效、变更及注销

  • 2023-03-14

    专利实施许可合同备案的生效 IPC(主分类):G06F11/36 专利申请号:2016100100140 专利号:ZL2016100100140 合同备案号:X2023980032662 让与人:浙江理工大学 受让人:杭州东华链条集团有限公司 发明名称:一种缺陷关联系数的度量方法 申请日:20160106 申请公布日:20160615 授权公告日:20180821 许可种类:普通许可 备案日期:20230227

    专利实施许可合同备案的生效、变更及注销

  • 2023-03-10

    专利实施许可合同备案的生效 IPC(主分类):G06F11/36 专利申请号:2016100100140 专利号:ZL2016100100140 合同备案号:X2023980032589 让与人:浙江理工大学 受让人:海宁皮城数据信息服务有限公司 发明名称:一种缺陷关联系数的度量方法 申请日:20160106 申请公布日:20160615 授权公告日:20180821 许可种类:普通许可 备案日期:20230223

    专利实施许可合同备案的生效、变更及注销

  • 2023-02-24

    专利实施许可合同备案的生效 IPC(主分类):G06F11/36 专利申请号:2016100100140 专利号:ZL2016100100140 合同备案号:X2023330000039 让与人:浙江理工大学 受让人:温州格洛博电子有限公司 发明名称:一种缺陷关联系数的度量方法 申请日:20160106 申请公布日:20160615 授权公告日:20180821 许可种类:普通许可 备案日期:20230209

    专利实施许可合同备案的生效、变更及注销

  • 2023-01-06

    专利实施许可合同备案的生效 IPC(主分类):G06F11/36 专利申请号:2016100100140 专利号:ZL2016100100140 合同备案号:X2022330000827 让与人:浙江理工大学 受让人:象山强强软件开发工作室 发明名称:一种缺陷关联系数的度量方法 申请日:20160106 申请公布日:20160615 授权公告日:20180821 许可种类:普通许可 备案日期:20221222

    专利实施许可合同备案的生效、变更及注销

  • 2018-08-21

    授权

    授权

  • 2016-07-06

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20160106

    实质审查的生效

  • 2016-06-15

    公开

    公开

查看全部

说明书

技术领域

本发明涉及一种软件工程中系数度量方法,具体涉及一种缺陷关联系数的度量方 法。本发明属于软件工程中软件测试技术领域。

背景技术

计算机软件技术的发展不断促进着计算机应用领域的深入发展,尤其是一些关键 应用系统的开发和使用,软件已经逐步成为影响国计民生的重要因素,而软件质量已经成 为软件产品最重要的属性之一。随着应用软件规模不断扩大,复杂性也相应增强,进行软件 测试、评估软件可靠建立开发人员对软件的信心,已经成为软件开发过程中的主要目标。而 软件缺陷(Defect)普遍存在并具有极大危害性,会造成重大的经济损失,危及人身安全。在 实际测试过程中,很多软件缺陷并不是相互独立的,它们存在着某种关联关系,即失效关联 (FailureCorrelation)。从缺陷自身方面来分析,造成这种关联关系存在是因为它们之间 存在控制流和数据流所综合导致的。软件关联缺陷是一种普遍存在的现象,“传统可靠性理 论失效”的原因之一就是没有考虑到这种关联关系,其存在直接影响其它缺陷检测的效率, 缺陷的关联关系是造成软件失效的根源之一。

失效关联普遍存在而且直接影响其它缺陷检测效率,软件可靠性评估失真,但目 前仅有少数出版的论文中考虑到了失效关联。工程领域内关联缺陷的应用比较稀少,目前 只有上海微创软件有限公司的BMSXP中提供了关联缺陷管理功能,定义了5种关联(包括软 件缺陷的依赖关联、缺陷点修复后重新出现缺陷的重复关联、缺陷相关关联、重复出现导致 的关联以及缺陷相关的附件)来刻画缺陷之间和缺陷与其相关的文件间的关联。BMSXP整 个管理以“BUG”为中心,将所有未完成的任务均作为软件缺陷来进行开发修复,并将与此缺 陷所有的相关信息作为关联缺陷来进行管理。

关联缺陷的表现形式多种多样,可以是基于业务逻辑的关联缺陷,也可以是分布 在不同系统模块间具有共性的关联缺陷,此外程序员固有的编程风格也会导致产生的缺陷 具有相似性。研究表明,覆盖相同或相似测试需求的测试用例往往会检测出相同或相似的 软件缺陷。以上文献都是从关联缺陷对软件可靠性所带来的负面影响进行研究,其目的是 为了消除关联缺陷,从而减少由此发生的软件失效。软件缺陷数据的关联规则挖掘、统计分 析等对提高软件质量起到了一定的帮助作用。分析缺陷关联系数的目的就是为了找出某个 缺陷被触发时,其他缺陷被触发的可能性,作为缺陷管理和剔除的依据。利用缺陷关联记载 各缺陷之间的关联关系,可以通过关联关系快速查找和排除相关缺陷,提高缺陷排除效率 和质量。

总的来说,人们已经认识到了软件失效之间存在关联关系,但对这一现象还缺乏 深入的研究,没有从软件失效的根源,也就是软件缺陷的角度来分析关联的原因。研究测试 模型基本上是假设关联系数矩阵已知,缺陷间关联则系数值为1,否则值为0。但是在实际的 测试环境中,不同软件的缺陷关联特性是不同的,对于缺陷排除的准确性和效率都有不同 的影响,因此需要更准确的估计关联缺陷系数方法。

发明内容

为解决现有技术的不足,本发明的目的在于提供一种缺陷关联系数的度量方法, 以解决现有技术缺陷关联系数的度量方法。

为了实现上述目标,本发明采用如下的技术方案:

一种缺陷关联系数的度量方法,其特征在于,包括如下步骤:

步骤一:从缺陷管理系统中抽象出来需要计算关联度的缺陷信息建立抽象的缺陷 关联模型;

步骤二:计算缺陷的数据相似度;

步骤三:计算缺陷间的耦合度;

步骤四:根据缺陷的数据相似度、缺陷间的耦合度计算缺陷关联系数;

步骤五:根据缺陷传播特性更新缺陷关联系数矩阵。

前述的一种缺陷关联系数的度量方法,其特征在于,所述缺陷关联模型包括:与缺 陷管理系统对应的ODC属性、缺陷所在组件属性以及缺陷之间的调用关系。

前述的一种缺陷关联系数的度量方法,其特征在于,包括如下步骤:

步骤2a:提取缺陷的基本属性;

步骤2b:建立缺陷的特征维度;

步骤2c:实现缺陷数据相似性的计算,并基于该相似值来建立缺陷关联。

前述的一种缺陷关联系数的度量方法,其特征在于,所述步骤2c包括:步骤2c1:将 缺陷特征集数据进行量化处理;

步骤2c2:计算缺陷间数据相似度;

步骤2c3:建立缺陷的数据相似度关联,当发现某个缺陷时,将与该缺陷关联的缺 陷按照缺陷数据相似度由高到低逐个列出,由测试人员进一步测试并排除对应的缺陷。

前述的一种缺陷关联系数的度量方法,其特征在于,所述步骤2c1包括量化方法如 下:

其中,x,为缺陷特征向量X中某个特征的类标识,y缺陷特征向量Y中某个特征的类 标识。

前述的一种缺陷关联系数的度量方法,其特征在于,所述步骤2c2包括缺陷间数据 相似度的计算方法如下:

dsim(X,Y)=Σj=1dδ(x,y)

dsim(x,y)=Σj=1d[1-δ(x,y)]Σj=1d[1-δ(x,y)]+Σj=1dδ(x,y)

其中,dsim(X,Y)表示两个缺陷向量之间缺陷特征不相同的个数,dsim表示两个缺 陷间的数据相似度。

前述的一种缺陷关联系数的度量方法,其特征在于,步骤三包括:

步骤3a:利用面向对象的继承性将缺陷间耦合度的度量转换为组件之间耦合度的 度量;

步骤3b:通过量化组件之间的类之间的需求和提供的程度,来计算组件之间耦合 度。

前述的一种缺陷关联系数的度量方法,其特征在于,所述步骤3b包括量化方法如 下:

其中,c向外提供的方法集为MP(c),c需求外界的方法集为MR(c),P(a,b)表示组件 b需要接口交互的组件a提供方法集合,对于一个组件c∈C,则有

前述的一种缺陷关联系数的度量方法,其特征在于,步骤四包括:根据实际情况来 调整缺陷间数据相似度、缺陷间耦合度的权重,使得适应不同情况下的应用;缺陷间数据相 似度、缺陷间耦合度的权重分别用α,β表示,缺陷关联系数DCC计算公式为:

DCC(x,y)=α·dsim(x,y)+β·Depd(x,y),其中0≤α≤1,0≤β≤1且α+β=1。

前述的一种缺陷关联系数的度量方法,其特征在于,所述步骤五包括:

步骤5a:将缺陷关联系数矩阵转化为带权的无向连通网,得到各个缺陷节点的父 节点和子节点;

步骤5b:利用缺陷传播性,计算非直接关联缺陷之间的缺陷关联系数;

步骤5c:针对两个缺陷节点之间有多条可达路径的情况,计算得到两者的缺陷关 联系数,并实时更新缺陷关联矩阵。

前述的一种缺陷关联系数的度量方法,其特征在于,所述步骤5b包括量化方法如 下:

DCC(X,Y)=DCC(X,X)×DCC(X,Y)=DCC(X,X)Σj=1kΠi=1nj-1DCC(i,i+1)

其中,X为节点X'的同级节点j,k为节点X,Y’之间简单路径的条数,nj为第j条简单路径 经过的节点数,j为简单路径序号,i为简单路径中的节点序号,DCC(i,i+1)为第j条路径中 节点i与节点i+1之间的关联系数,DCC(X,X')为节点X'与节点X之间的关联系数;DCC(X', Y')为祖先节点(设为X')与其非直系的后代节点(设为Y')之间的关联系数。

前述的一种缺陷关联系数的度量方法,其特征在于,所述步骤5c包括:

步骤5c1:根据缺陷关联矩阵建立有向图网络.求缺陷节点的父节点、子节点;

步骤5c2:采用递归和链式队列从指定的节点开始,逐级搜索各个缺陷节点的所有 父节点,并将搜索结果依次入列,按先进先出顺序将队列中的节点出队列,搜索当前队列的 节点的所有缺陷的父节点并入队列,依次循环,直至队列为空时停止;

步骤5c3:根据上述搜索结果,采用结构体链表来表达缺陷节点的父子关系,链表 的缺陷节点采用结构体变量;结构体中包含三个变量Data,Parent和No.;其中,Data存放缺 陷节点的代号,Parent存放该缺陷节点的父节点入队列时的顺序号,No.存放该节点本身入 队列时的顺序号;

步骤5c4:搜索上述结构体链表中Data值不为路径终点的元素;利用递归算法依次 搜索各节点的父节点,直至父节点为终点时为止;搜索完整个链表中Data值不为终点的元 素,得到其它节点至终点的所有简单路径;

步骤5c5:根据公式(4)计算出相邻两节点间的关联系数,更新缺陷关联矩阵,再计 算出各节点之间的关联系数,更新缺陷关联矩阵;

步骤5c6:反复步骤5c5直至计算出所有节点间的关联系数,更新缺陷关联矩阵。

本发明的有益之处在于:本发明计算出了两个直接关联缺陷间的缺陷关联系数, 准确度高;设计了一种基于缺陷传递的缺陷关联系数的简单路径调整算法,实现对缺陷关 联系数矩阵的动态更新。

附图说明

图1是本发明的一种流程图;

图2是本发明的缺陷传递图;

图3是带权简单路径算法;

图4是缺陷关联系数计算示例;

图5是缺陷关联系数计算示例;

图6是与其他方法的对比试验数据图。

具体实施方式

以下结合附图和具体实施例对本发明作具体的介绍。

参照图1所示,本发明利的总体思路是利用计算机领域的系数度量方法,对由缺陷 管理文档中采集到的缺陷关联信息进行分析处理,来计算缺陷关联系数。本实施例以Space 软件为例来进行说明。

实施例:本实施例的一种缺陷关联系数的度量方法,如图1所示,包括以下步骤:

S1:从缺陷管理系统中抽象出来需要计算关联度的缺陷信息建立抽象的缺陷关联 模型,缺陷关联模型包括与缺陷管理系统对应的ODC属性、缺陷所在组件属性以及缺陷之间 的调用关系;

S2:计算缺陷的数据相似度。在缺陷关联模型的基础上,利用IBM提出的ODC正交缺 陷分类技术提取缺陷的8种基本属性。需要注意的是,基本属性的数量本发明并不加以限 制,8种只是一个优选。这些属性两两正交,分别从不同方面描述了缺陷的特征,而且具有软 件生命周期内一致性和产品间一致性等特点,其中缺陷类型属性在缺陷的定位分析和排除 分析上尤为重要。这些特征维度与缺陷类型对应确定了缺陷类型便可锁定缺陷所在对象的 特征维度,缺陷特征维度建立后,通过聚类分析计算方法来实现缺陷数据相似性的计算,并 基于该相似值来建立缺陷关联。

在本实例中,用A表示缺陷特征集,即用A1,A2,…,An对应表示正交缺陷分类中的一 个缺陷属性。

设Dk(i)={d1,…,dj,…,dm}是缺陷Oi在特征Ak上的描述集合,那么dj就是缺陷Oi在 特征Ak上的一个描述元素。例如缺陷在数据结构上的集合是(int,string,list,classl, class2,class3),可以更准确的描述缺陷在缺陷特征上的类型。在计算机研究中,聚类作为 一种无监督学习方式,得到了来自统计学、计算机科学等领域研究者的广泛关注,聚类是一 种在没有任何先验信息条件下,将现有无标记数据进行归类的数据分析过程,其结果是使 得同一类中任意两个数据对象之间的距离要小于属于不同类的两个数据对象之间的距离。 换句话说,聚类的目标就是要挖掘出数据的内在结构,为进一步的数据分析提供有意义的 信息。由于很多聚类算法需要首先知道任意两个数据对象之间的相似关系值,采用相似矩 阵作为数据集的表示也很常见。因此,本发明中设d维模式向量X,Y为离散型数据,向量中每 个特征值对应一种类别标识,设x,y分别为向量X,Y中某个特征的类标识,则可以定义

则两个向量间相似数据个数可以用简单匹配距离表示为

dsim(X,Y)=Σj=1dδ(x,y)---(2)

由公式(2)计算,缺陷间数据相似度可以用匹配系数表示为

dsim(x,y)=Σj=1d[1-δ(x,y)]Σj=1d[1-δ(x,y)]+Σj=1dδ(x,y)---(3)

通过上述计算方法计算出相似度后,建立缺陷的数据相似度关联,当发现某个缺 陷时,将与该缺陷关联的缺陷按照缺陷数据相似度由高到低逐个列出,由测试人员进一步 测试并排除对应的缺陷。

S3:计算缺陷间的耦合度。在软件开发过程中,常采用面向对象的分析和设计方 法,面向对象的继承性也决定了缺陷传播的继承性,如果在对象开发设计中产生了缺陷,则 继承或调用该对象的类产生缺陷的概率也会很大。组件是软体系结构的基本单位,也是缺 陷度量的最小单位。通过度量组件之间的耦合度来间接得到缺陷间的耦合度。

组件内进行通信的最小单位为类和类外的方法,因此度量组件的耦合性应考虑类 的耦合性。组件间的类有需求类和供应类,分别由关键字provided和require标识。对于一 个组件c(c∈C),c向外提供的方法集为MP(c),c需求外界的方法集为MR(c)。组件A的需求类 是需要其它组件向组件A提供服务,才能实现组件A的功能。组件A的供应类,是组件向外提 供的服务,其它组件可以利用组件A提供的类,使用组件A的功能。所以,类在组件的实现中 扮演重要的角色。由于软件开发中,将每个对象的相互转化关系构建出来,自上而下就形成 了一种树状关联,树中每个子节点都是由其父节点转化而来。因此,我们定义一个系统是由 一个组件集合C和组件外的方法集合M组成的。若组件a包含组件b,则a是b的父组件,b是a的 子组件。用逻辑运算符表示为,对于一个组件c∈C,则有定义P (a,b)表示组件b需要接口交互的组件a提供方法集合。

将树状结构中每个节点以及节点之间的关联管理起来,就可以通过分析树状结构 追踪缺陷。对应的,组件间也存在父子依赖关系。如果组件a是由组件b复合而成,考虑组件a 依赖于组件b的依赖度最大时应该是组件b中的所有提供的类都成为组件A的提供类,组件 B依赖于组件a的依赖度最大时应该是组件a中的所有与组件b功能相关的需求的类都成为 组件b的需求类。通过这种树状关联去查找相关组件,来提高缺陷排除的效率与准确性。

由此得到组件Ci,Cj之间的耦合度,间接的计算出在组件Ci,Cj中缺陷之间的耦合 度的值。

S4:计算缺陷关联系数。在本发明中,影响缺陷关联系数的是缺陷间数据相似度、 缺陷间耦合度两个主要因素。两者在不同软件环境中有不同权重比例,根据实际情况来调 整权重,使得适应不同情况下的应用。缺陷间数据相似度、缺陷间耦合度的权重分别用α,β 表示,其中0≤α≤1,0≤β≤1且α+β=1。因此缺陷关联系数DCC可以由公式DCC(x,y)=α· dsim(x,y)+β·Depd(x,y)计算得到。

S5:根据缺陷传播特性更新缺陷关联系数矩阵。缺陷之间存在直接关联和非直接 关联。在S1-S4中我们求解的是两个直接关联缺陷之间的缺陷关联系数,而缺陷的传递性导 致缺陷之间并不都是直接关联的。若缺陷X与Y非直接关联,但X经若干模块可达Y,则认为从 X到Y有一条可达路径P[X~Y],这两个缺陷就被认为是非直接关联的。

在缺陷传播过程中,由于关联缺陷的存在,使得缺陷之间可以形成一张无向连通 网,因此,我们将缺陷关联系数传递看作带权路径的传递问题,那么就可以利用简单路径求 解的优化问题,将直接关联和非直接关联转化成父节点子节点的关系。在进行缺陷关联系 数传递时,我们需要计算祖先节点与其直系后代节点之间的关联系数。由关联系数的物理 意义,可以得到如下的前辈节点(设为X)与其直系晚辈节点(设为Y)之间的关联系数DCC(X, Y)。

除了计算祖先节点与其直系后代节点之间的关联系数外,有时还需要计算祖先节 点(设为X')与其非直系的后代节点(设为Y')之间的关联系数

DCC(X,Y)=DCC(X,X)×DCC(X,Y)=DCC(X,X)Σj=1kΠi=1nj-1DCC(i,i+1)---(5)

上式中,X为节点X'的同级节点,k为节点X,Y'之间简单路径的条数,nj为第j条简 单路径经过的节点数,j为简单路径序号,i为简单路径中的节点序号,DCC(i,i+1)为第j条 路径中节点i与节点i+1之间的关联系数,DCC(X,X')为节点X'与节点X之间的关联系数。比 如,从节点1到节点7的简单路径有两条,分别为1,2,7和1,3,7。如果知道节点1与节点2,节 点2与节点7,节点1与节点3,节点3与节点7之间的关联系数依次为DCC(1,2),DCC(2,7),DCC (1,3),DCC(3,7),则可根据上述关联系数的传递计算公式,求得节点1与节点7之间的关联 系数为DCC(1,7)=DCC(1,2)*DCC(2,7)+DCC(1,3)*DCC(3,7)。

在缺陷传播过程中,由于关联缺陷的存在,使得缺陷之间可以形成一张无向连通 网,并通过简单路径算法求边权值的极值,进而达到对资源的优化。因此,我们将缺陷关联 系数传递看作带权路径求解问题,那么就可以利用简单路径求解的优化问题。其基本思路 是:

1.根据缺陷关联矩阵建立有向图网络.求缺陷节点的父节点、子节点等。

2.采用递归和链式队列从指定的节点(有向路径的终点)开始,逐级搜索各个缺陷 节点的所有父节点,并将搜索结果依次入列,按先进先出顺序将队列中的节点出队列,搜索 当前队列的节点的所有缺陷的父节点并入队列,依次循环,直至队列为空时停止。

3.根据上述搜索结果,采用结构体链表来表达缺陷节点的父子关系,链表的缺陷 节点采用结构体变量。结构体中包含三个变量Data,Parent和No.。其中,Data存放缺陷节点 的代号,Parent存放该缺陷节点的父节点入队列时的顺序号,No.存放该节点本身入队列时 的顺序号。

4.搜索上述结构体链表中Data值不为路径终点的元素。利用递归算法依次搜索各 节点的父节点,直至父节点为终点时为止。搜索完整个链表中Data值不为终点的元素,可得 其它节点至终点的所有简单路径。

5.根据公式(4)计算出相邻两节点间的关联系数,更新缺陷关联矩阵,再根据公式 (5)、(6)关联系数的传递性计算出各节点之间的关联系数,更新缺陷关联矩阵。

6.反复步骤5、6直至计算出所有节点间的关联系数。更新缺陷关联矩阵。

本实例为了检验方法的有效性,我们选用Space软件的测试数据进行研究,space 是一个计算机研究领域公认的典型测试对象,Space软件中存在183个关联缺陷对(不考虑 与自身关联)。在缺陷排除效率上和传统方法进行比较。

本发明提出的一种缺陷关联系数的度量方法,从软件缺陷关联的原因出发,建立 了缺陷之间数据相似度、缺陷间耦合度与软件缺陷关联系数之间的关系,得到相应的关联 系数,综合考虑缺陷间数据相似度、缺陷间耦合度两个影响因素在缺陷关联系数中不同权 重,计算出两个直接关联缺陷间的缺陷关联系数。最后根据缺陷的传播过程,建立了缺陷传 播关联规则。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号