一种基于复杂网络理论的软件测试用例生成方法

文档序号:9349863阅读:463来源:国知局
一种基于复杂网络理论的软件测试用例生成方法
【技术领域】
[0001] 本发明涉及软件测试领域,尤其是一种软件测试用例的生成方法。
【背景技术】
[0002] 随着计算机软件的快速发展,软件的计算模式、应用模式、产品形态以及盈利模式 都在发生着巨大的变化,软件的系统结构变得越来越复杂,软件开发和维护的复杂性在不 断上升,而软件系统的可控性却在下降。以将系统化、规范化、可度量的方法应用于软件的 开发、运行和维护为目标的软件工程,也已很难应对软件系统的具大复杂性,因此软件的复 杂性已成为当前"软件危机"的重要特点。
[0003] 随着近年来复杂网络理论研究的兴起,复杂网络这门学科正在为软件工程的研究 提供了新的数据基础和方法。复杂网络研究中,网络的拓扑性质是指不依赖于节点的具体 位置和边的具体形态而表现出来的性质,相应的结构叫做网络的拓扑结构。复杂网络理论 指明,系统的整体性能取决于系统的结构,要想理解整个系统就必须先理解系统的拓扑特 性、成因、演化及应用。复杂网络理论给人们展示出研究软件工程的新平台。
[0004] 利用复杂网络理论,可以用网络表示复杂的软件系统的拓扑结构,根据不同的标 度,软件系统的组成元素可以是数据对象、服务、操作、模块、类、包、属性、子系统等。软件通 过这些元素之间的信息交互和协作,完成预定的功能。将软件系统中的模块、子程序、对象、 类、包、属性等元素看作节点,将其间错综复杂的交互关系(如调用、聚合、继承)看作边,那 么就可以将软件系统结构抽象为一个软件结构关系网,这种从软件系统中通过关系抽取而 得到的网络模型就被称为软件网络。
[0005] 近几年国内外的相关工作己经通过建立软件系统的拓扑特征,揭示软件网中的一 些普遍性的拓扑特性,但软件工程与复杂网络相结合的研究工作正处于起步阶段。目前研 究方向大多集中在软件网络的拓扑结构分析、具有"小世界"和"无标度"特性的软件系统 的形成机理和演化规律、基于复杂网络的软件系统复杂性度量和评估三个方面。但是,复杂 网络对于实际指导和应用于软件开发、测试的研究与应用较少,进而无法通过提高测试效 率实现软件可靠性的提高和软件质量控制。
[0006] 随着软件开发需求的增加和软件复杂程度的提高,如何用尽量少的测试用例覆盖 尽量多的测试路径,以提高测试效率成为急需开展的一项十分重要的课题。前文介绍了软 件系统的复杂网络特性并说明了网络模型的构建,为将复杂网络理论应用于软件测试提供 了有力的理论支撑。
[0007] 虽然目前已有研究学者将复杂网络网络理论用于软件测试用例的生成,但这些方 法虽然都以意识到基于软件关键部分产生测试用例能有效降低测试量,减少测试时间。但 他们存在的共性问题是:
[0008] (1)大多方法采用单一网络特性参数作为评价节点重要性的指标;
[0009] (2)即使采用多网络参数的综合评价,但在参数选取上往往依赖主观判断,忽略了 参数间的相关性。
[0010] 上述问题造成一定程度的节点重要性丢失,降低了关键节点识别的合理性和准确 性。故有效整合各指标,设计依赖客观权重和考虑参数关联信息的方法就成为一个亟需解 决的问题。

【发明内容】

[0011] 本发明所要解决的技术问题是为了提高软件测试的可靠性和效率,将复杂网络理 论运用到软件测试中形成一种新的测试用例生成方法。
[0012] 为实现上述目的,本发明采用的技术方案为:
[0013] -种基于复杂网络理论软件测试用例生成方法,其包括如下步骤:
[0014] (1)针对被测软件,基于类层次网络模型,构建出类层次的软件网络,并提取软件 网络的特征参数;
[0015] (2)对步骤(1)提取的软件网络的特征参数进行归一化处理;再基于主成分分析 法,计算各特征参数的权重;再基于灰色关联分析方法,利用根据主成分分析法计算得到的 权重,计算各节点的关键性取值并进行排序;
[0016] (3)根据步骤(2)得到的各节点的排序,将各节点的点权设置为关键性取值,计算 软件网络的关键路径,则每条关键路径就对应一个软件测试用例。
[0017] 上述步骤(1)的具体过程为,基于类层次网络模型,对被测软件的源代码进行分 析,统计出类名和类间依赖关系,其中类名即为类层次网络模型的节点,类间依赖关系即为 类层次网络模型的有向边;随后将类名和类间依赖关系这些原始数据进行转化,得到用于 生成软件网络的邻接矩阵;再利用网络图形化工具对该矩阵信息进行处理,生成直观可视 的软件有向网络;之后,计算网络特征参数,得到步骤(2)中关键节点识别所需的所有特征 参数。这一步主要是为后续的关键节点识别提供基础。前述网络特征参数包括统计度和度 分布、接近度、偏心度、最大邻居连通度、最大邻居连通密度、平均路径长度。
[0018] 上述步骤(2)中对软件网络的特征参数进行归一化处理的过程为;
[0019] 假设待分析的样本数为n,即网络节点数为n ;每个样本包含q个网络特征参数,那 么关键节点识别算法的原始数据集合则采用矩阵R来表示,为

[0025] 上述步骤(2)中利用利用灰色关联分析法计算评价对象关联度的过程为:
[0026] 首先,确定评价对象和理想对象,本方法中待评价对象是R',理想对象为
[0028] 其中,Ws表示在n个节点中第s个网络特征参数指标最大值;
[0029] 其次,计算节点i关于第j个网络特征参数的灰色关联系数與^的公式如下:
R , e ((Xl]的参数,这里取〇. 5 ;r' u为节点i的第j个网络特征参数值的归一化结果。
[0032] 再次,根据〇^的值计算各节点的灰色关联度:
[0033]
[0034] 其中幾/表示节点i关于第j个网络特征参数的灰色关联系数,表示第j个网 络特征参数的权重值。
[0035] 最后,将各节点根据计算得到的灰色关联度进行排序,对应的就是节点的重要性 排序,关联度越大的对象评价越佳。
[0036] 通过步骤(1)收集的各类网络特征参数信息在取值范围和表述含义上存在差异, 因此首先需对原始特征参数数据进行以归一化处理为核心的数据格式化;随后,为简化数 据,减少数据处理量,基于主成分分析法,计算各网络特征参数的权重。该权重值反映了对 应指标对节点关键性影响的大小,权重值越大,说明该指标对反映节点的关键性能力越强, 反之越弱;最后,基于灰色关联分析方法,利用根据主成分分析法计算得到的权重,计算各 节点的关键性取值。其中,灰色关联度的排序对应的就是节点的关键性排序。
[0037] 上述步骤(3)的具体过程为:
[0038] (3-1)依据关键节点的灰色关联度值对其进行排序,并将关联度值设置为关键节 点的点权,不属于关键节点的节点点权为〇 ;
[0039] (3-2)从根节点出发,对软件网络进行深度优先遍历,计算每条路径的点权之和;
[0040] (3-3)将第(3-2)步中找到的路径依据权值之和进行排序,并以从大到小的顺序, 对其进行白盒测试,直到达到预先设定的停止条件。
[0041] 有益效果:本发明通过对软件系统建立有向复杂网络模型,综合分析度、聚集系 数、介数、接近度等参数对软件系统节点关键性的影响,结合主成分分析法进行参数的权重 计算,采用灰色关联分析方法计算各节点的灰色关联度,作为节点重要性的评价数据(灰 色关联度越大的节点越重要),提出综合考虑多特征参数的关键节点识别算法,并根据识别 的关键节点得到关键路径,进而对软件测试路径进行压缩,减少测试数据,达到节约测试时 间,提高测试效率的目的。
【附图说明】
[0042] 图1是本发明的流程图;
[0043] 图2是面向对象软件Junit的类层次软件网络示意图;
[0044] 图3是基于灰色关联分析和主成分分析的关键节点的识别流程图。
【具体实施方式】
[0045] 下面结合附图对本发明作更进一步的说明。
[0046] 图1所示为基于复杂网络的软件测试用例生成方法的流程图,为了详细、清晰说 明本发明的建模、描述与分解过程,本例以一个基于Java语言实现的面向对象软件Junit 作为研究对象和实例进行相关说明。
[0047] 第一步,针对被测软件,构建其软件网络,提取网络特征参数,具体为:
[0048] (1-1)依据软件的源代码,以类层次依赖关系为研究对象,通过分析源码提取出软 件系统中基于类的基本属性信息和类间依赖关系(如继承关系、调用关系),该步骤中面向 对象软件Ju
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1