工程技术
计算机光盘软件与应用
Computer CD Software and Applications 2012年第 2期
探析白盒测试之基于路径测试
刘若华,
(周 口职业技术学院,
楚书来
河南周口 466001)
摘 要:软件测试的目标是发现尽可能多的错误,提高软件质量和可靠性,对于规模相对较小,结构相对简单的软件,
采用基于路径测试的白盒测试 不失为一种很好的测试方法。
关键词:白盒测试;路径测试;程序图;DD一路径;用例
中图分类号:TP31 1 文献标识码:A 文章编号:1007—9599(2012)02—0098—02
Analysis of W hite-box Testing Based on Path Testing
Liu Ruohua,Chu Shulai
(Zhoukou Vocational and Technical College,Zhoukou 466001,China)
Abstract:The goal of software testing is finding bug and improving the quality and reliability of software product.For a
relatively minor and simple software,path—based White—Box Testing is a good testing method.
Keywords:White—-Box Testing;Path Testing;Program chart;DD--Path;Testing Case
随着计算机技术不断的发展,计算机已经广泛的渗透到了我
们的日常生产生活之中,软件作为计算机的灵魂和支柱,在日常
的生产生活中担当着重要的角色。然而,随着软件规模和复杂度
的不断增加,使得软件的质量和可靠性受到了很大的威胁,软件
中隐藏的一些错误或缺陷如不能在发布之前被发现或排除,将很
有可能给我们的生产生活造成巨大的损失和威胁。
软件测试是发现软件中的错误或缺陷、保证软件质量和可靠
性的最主要手段,其重要性已经引起了人们的广泛关注。软件测
试的原理是利用有代表性的数据运行程序,对程序运行结果进行
分析并判断该结果是否符合预期。对于规模较小、结构相对简单
的软件来说,采用基于路径测试也是一种很好的测试方法。
一
、 路径测试概述
白盒测试是一种通过考察并测试实现外部功能的程序代码,
测试代码的外部功能的一种方法,也叫透明盒测试、玻璃盒测试
或开放盒测试。自盒测试只考虑程序代码、代码结构和内部设计
流程,是基于内部视角的测试。白盒测试中可分为 “静态测试”
和 “结构测试”,路径测试是基于结构的测试。
二、路径测试中几个基本概念
(一)程序图。所谓程序图就是按照一定的准则将传统的流
程图或控制流表转换而来,转换以后程序图可以计算程序复杂度。
(二)DD一路径 。
定义 5.1:改进的程序图。给定采用命令式程序设计语言编
写的一段程序,其程序图是一种有向图,图中的节点表示语句片
段,边表示控制流。(完整语句是 “默认”的语句片段)。
如果 i和 J是程序图中的节点,从节点 i到节点 j存在一条
边,当且仅当对应节点 J的语句片段可以在对应节点 i的语句片
段之后立即执行 。
我们将通过有向图中的节点路径定义 DD一路径,可以叫做路
径链,其中链是一条起始和终止节点不同的路径,并且每个节点
都满足入度=1、出度=l。请注意,初始节点与链中的所有其他节
点 2一连接,不会存在 卜连接或 3一连接,如图 5-6所示。图 5-6
中的链长度 (边的数量)是 5。有一种长度为 0的退化链情况,
即链有一个节点和0条边组成。
定义 5.2:叩一路径。DD一路径是程序图中的一条链,使其满
足以下准则:
准则 1:由一个节点组成,入度=O。
准则 2:由一个节点组成 ,出度=O。
准则3:由一个节点组成,入度≥2或出度≥2。
准则4:由一个节点组成,入度=1并且出度=1。
准则5:长度≥l的最大链。
定义 5.3:DD一路径图。给定采用命令式语言编写的一段程序,
其 DD-路径图是有向图。其中,节点表示其程序图的DD一路径,边
表示连续 D 路径之间的控制流。
(三)基本路径测试。所谓基本路径测试,是以以下几个方
面展开的:
1.数学上的 “基”的概念。2.该空间中的任何其他向量都可
以用基向量表示。3.基本路径测试是由Thomas McCabe首先提出
的一种白盒测试技术。4.基本路径测试方法使测试用例设计者产
生一种 过程 设计 (procedural design)的逻辑 复杂 性测度
(1ogical complexity measure),这种测度为执行路径的基本集
的定义提供指导。5.执行该基本集所生成的测试用例保证程序中
的每一条语句至少执行一次。
(四)独立程序路径。独立路径是任何贯穿程序的、至少引
入一组新的处理语句或一个新的条件的路径。当按照程序图进行
描述时,独立路径必须沿着至少一条边移动。这条边在定义该路
径之前未被遍历。
(五)圈(cyclomatic)复杂度。圈复杂度的值是用基本集合
定义程序的独立路径数,它为我们提供了保证所有语句被执行一
次所需测试数量的上限。
三、基于路径测试的具体实施过程
基本路径测试步骤:
1.以设计或源代码为基础,画出相应的程序图。2.确定所得
DD-路径图的圈复杂度。3.确定线性独立路径的基本集合。4.准备
测试用例,强制执行基本集合中每条路径。
四、基于路径测试的案例分析
(一)案例描述。计算不超过 100个数字的平均值,同时计
算总和与有效数字个数,具体实现代码如下:
intaverage(int value[],int min,int max)
int I;
int average,input,valid,sum:
i=O:
input=val id=O;
sum=0:
while(value[i]!=一999&&input<1OO)
{
input++;
if(value[i]>:min&&value[i]<=max)
{
val id=val id+l;
sum=sum+value[i];
)
i++:
}
if(valid>O)
average=sum/val id;
e]se
Average=一999;
return average;
l
(二)以设计或源代码为基础,画出相应的程序图。按照叻一
路径的准则,可得出语句与节点对应关系表,如表 I所示。
2012年第 2期
计算机光盘软件与应用
Computer CD Software and Applications 工程技术
表 I 程序语句与DD-路径图节点对应关系表
语句号 DD一路径图 准则
节点号
5 1 DD一路径的准则l
6,7 2 DD-路径的准则5
8 3,4 复合条件中,每个条件对应一个节点
9。 1O 5 DD一路径的准则5
1l 6,7 复合条件中,每个条件对应一个节点
12,l3,14,l5 8 DD一路径的准则5
16 9 DD一路径的准则4
17 10 DD一路径的准则 3
l8 1l DD_路径的准则3
19 12 加一路径的准则4
20 13 DD一路径的准则4
2l 14 叻一路径的准则3
22 15 DD一路径的准则2
依照上述代码的流程图及表 I中语句与节点对应关系,可得
出其程序图,也就是其 DD一路径图 (如图 I所示)。
图 I DD-路径图
(三)计算 DD一路径图的圈复杂度。通过下面三种方式均能
计算机其圈复杂度为6。
1.V(G)=6(域数)。2.V(G)=19(边数)一15(结点数)+2=6。
3.V(G)=5(判定结点数)+1----6
(四)确定线性独立路径的基本集合。首先选择一个基线路
径,应该对应某个 “正常案例”程序执行。这种方法有一定的随
意性,McCabe建议选择都有尽可能多的判断节点的路径。
接下来重新回溯基线路径,依次 “翻转”每个判断点,即当
节点的出度≥2时,必须取不同的边。
路径 1:1—2—3—1 l一12—14-15
选择路径 1作为基线后,
这条路径上的第一个判断节点 (出度≥2)是节点3,因此对
于下一个基路径应该经过节点3到节点4的边,而不是节点3到
节点l1的边,路径 卜2—3—4一l1—12—14—15,由此得到的基路径集
合可能与原基路径不同。这没有问题,因为不要求唯一基。
路径 1:卜2—3-1卜12-14—15
路径 2:1—2—3—1l一13-14一l5
路径 3:1—2—3—4—1 l一12-14—15
路径 4:1—2—3-4—5—6-9—10—3-...
路径 5:1—2—3—4—5-6-7—9—10—3一⋯
路径 6:l一2—3—4—5—6-7-8—9—10—3一...
路径 4、5和6后面的省略号 (⋯)表示可加上控制结构其余
部分的任意路径。
(五)准备测试用例,强制执行基本集合中每条路径
表II 基本路径测试选择的测试用例
测试路径
编号 测试用例描述 预期结果
路径 1 value[k]=有效值(k<i) 基于k的正确平均值
value[i]一999(1<i<lO0)
路径 2 value[1]:一999 average=一999
试图处理 101个或更多值, 路径 3 基于k的正确平均值
前面 100个数有效
value[k]<min(k<i) 路径 4 基于k的正确平均值
value[i]=有效值 (i<lO0)
value[k]>max)(k>=i) 路径 5 value[i]=有效值(i<lO0) 基于k的正确平均值
路径6 value[i]=有效值(i<100) 基于k的正确平均值
五、结语
软件测试是软件开发周期的一个必备环节,同时它也是一项
非常复杂的过程,在时间上可能会大大延长软件的开发周期,对
于复杂软件更是如此。基于路径的测试有时并不能完成全部测试
要求,需要配合其他测试技术一起来实现。
参考文献:
【1】孙晓东,黄松.用于软件测试的路径测试方法卟指挥信息系
统与技术,2011,4
[2]张自鲁.基于路径覆盖的测试数据 自动生成方法研究Ul,中
国石油大学,2010
【3]赵狲,孙宁.软件测试技术:基于案例的测试【M】.北京:机械
工业出版社.2011
[4JSrinivasan Diskan,Gopalaswamy IKamesh.Software Testing
Pfinc~les and Pracetices[M],2009
[作者简介]刘若华 (1982一),女,河南沈丘县人,周口职业
技术学院讲师,研究方向:软件工程与网络;楚书来 (1982一),
男,河南沈丘县人,周口职业技术学院讲师,研究方向:软件工
程与网络。
(上接第 112页)
备相对不广泛的带宽要求,大多数用户接入带宽的需求是比较低
的,作为汇聚设备,多个局域网交换机聚集最多的 PON,作为一
个经济体系的可行性一个强大的过渡方案。用户对带宽需求的进
一 步增长,你就可以慢慢增加分流单级,一个ONU的光纤接入点
的部署,进一步扩展,逐步发展为FTTH/FTTO模式。
(三)FTTO模式
这种模式的应用和 FTTH、FTTB/FTTC等模式相互重叠,并没
有绝对的区分。在 FTTO模式中,可以将 ONU部署在企业园区或者
办公室内中,其通过UNI侧接口的种类进行功能的区分。通常PON
系统要可以提供完备的V5、POTS以及其它的普通数据业务和数据
专线业务的接入能力,并且要具备相应的保护倒换功能。对于
FTTO商务客户模式,在应用PON的过程中,难免要和已有的多业
一 99一
务传送平台形成竞争关系,而且多业务传送平台的应用已经得到
的广泛的应用。不过PON具备2O公里的传输距离以及灵活的组网
能力,因此在大容量的带宽需求或者地理覆盖较为稀疏的应用场
所,FTT0模式的优势仍是非常明显的。
参考文献:
【1】崔开建.基于PON技术的光接入网应用模式探讨U】技术广
场周刊,2009,5
【2】吴佳 宁,唐雄燕.基于 PON 技术的光接入 网络应用模式【I]
电信科学,2010,5
f3J北京西门子通信网络股份有限公司.基于户PON技术的光
接入网应用模式探讨【I1.电信 网技术,2011,7
【4】谢和平.PON技术及其应用模式分析 电信快报,2009,4