白盒测试之基本路径测试法(转)
白盒测试之基本路径测试法
白盒
4F]mJJc)H85282 其中运用最为广泛的是基本路径测试法。
$V?jw-xw`*Jj Jb852827k~"i,[Q!U Q85282
j3^3k)y$p:N%b85282 设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。
g uq*Gt?$@s85282wSQr\"O A)l2[y%n85282
},K4A"]-Z5o85282
t8oBZ1rxJ\du85282 4. 准备测试用例:确保基本路径集中的每一条路径的执行。
#_1y,s } W`VF85282z-z3PqfE+c85282 工具方法:51Testing软件测试网'eU"Yx`&eW!kU
.^_7u{y*R$|%b/\N6Y85282 图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。51Testing软件测试网&WbA'Ft&T-YI
O} U i,u85282 程序的控制流图:描述程序控制流的一种图示方法。
3^,v3B(jJ1Bh85282P9I+|1Z-K#M,Swom R!~85282 圆圈称为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句
K|)SUi @_*|85282iK@XHWi8528251Testing软件测试网fP[vD Np流图只有二种图形符号:51Testing软件测试网:_$?&P^/z7\e
51Testing软件测试网%g fmXvVC.C^w图中的每一个圆称为流图的结点,代表一条或多条语句。
y {5m"x8WX'h85282q$hv G R2\85282 流图中的箭头称为边或连接,代表控制流
[K{s1P/J[8A85282.G!ffB#^85282 任何过程设计都要被翻译成控制流图。
*y4Fgfpj8528251Testing软件测试网s2KU6m5}~~f
在将程序流程图简化成控制流图时,应注意:
Br7x7ya8528251Testing软件测试网wzV9f*E2j@5M+^n 在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。
6ehZ-s;EE8528251Testing软件测试网0y Hun1}q{5Kun 边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。51Testing软件测试网7N2O s1R[&Y%l{*r
4I0K/p&A!{-Ci85282 如下页图所示
+g `1u0az*E.w:p85282'M6KCd;UObT+r%f |85282n 如果判断中的条件表达式是由一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。51Testing软件测试网s%u1aB_cBE
51Testing软件测试网 _K)f2Be,[{例如:51Testing软件测试网 y[~/q8^#Aw;\j0n
t)F-XZUO |wXZkD"r85282 1 if a or b
g`6t\1of852823_F7tN|)wh+[}85282 2 x51Testing软件测试网/U#H2^"Ea6B+V.h
51Testing软件测试网H{Jg l}X$W6^3 else51Testing软件测试网9a3ToW%N5N
hat T ty;[_-~85282 4 y51Testing软件测试网4Dk)g@)V2wIF$D
5yWfE&JkC85282 对应的逻辑为:51Testing软件测试网/p6CO&Ei2B&s
51Testing软件测试网M"h&CgP Ee#jZ
l#r(B1c`\ Z)e85282 独立路径:至少沿一条新的边移动的路径51Testing软件测试网@&c*PA9nCk x"Ns+is
eGC K*}-}I.\,oq85282o 第一步:画出控制流图51Testing软件测试网:Q1Vdu\C`
51Testing软件测试网!g"F8sU v流程图用来描述程序控制结构。可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。在流图中,每一个圆,称为流图的结点,代表一个或多个语句。一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:if-else-then结构)。由边和结点限定的范围称为区域。计算区域时应包括图外部的范围。
\6H KI9V:d$D'a8528251Testing软件测试网 D;D|z Hh? h
51Testing软件测试网Nu {aU1K9t1W画出其程序流程图和对应的控制流图如下51Testing软件测试网JV2m{0X;X/h U Z(W
51Testing软件测试网,hD][/{v^3FiCb/Kt,D
)n$B'GK n:v85282 o 第二步:计算圈复杂度51Testing软件测试网8{.P%{0c'd
.{2HxL4{W;J85282 圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。
];UG6TD8EVr)r+c85282{6T,CI4K]4z:R3x85282 有以下三种方法计算圈复杂度:
j U&n s5Az+_v8528251Testing软件测试网d L \\7Ek流图中区域的数量对应于环型的复杂性;
h%dW6g,u4dI8528251Testing软件测试网!J.t#w6UJ:xyz给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;
O,A4u$V(J*rd85282ZW/rB,B)f lO85282 给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。
_ Yt&}P2x C8528251Testing软件测试网5kH h#{@l pd @2y
o 第三步:导出测试用例51Testing软件测试网)NkIyuV z
QVAfwq^i\N85282 根据上面的计算方法,可得出四个独立的路径。(一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。)51Testing软件测试网V ^ Q,\7i#A+_
51Testing软件测试网 z m[jy+J#oü 路径1:4-14
c,_bL|:Uy~8528251Testing软件测试网-DDkM/@ o*Z)|Rnü 路径2:4-6-7-14
hMH*p$g5w8528251Testing软件测试网,d:VTV#sü 路径3:4-6-8-10-13-4-1451Testing软件测试网.u,HhD-h|\y
%KEF.I.? E4HR2^85282 ü 路径4:4-6-8-11-13-4-14
YW8d6n6Ag4B85282XQ(e9^ Ix{s85282 根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。51Testing软件测试网d,AnM,DGC/r3p
5|&R!l]:? ok85282 o 第四步:准备测试用例
Y ABI%_8528251Testing软件测试网^I:\@:c#`为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是:51Testing软件测试网Z!e;f d RKm d
51Testing软件测试网@_4B/IE4G9E"o
举例说明:51Testing软件测试网_7v E}Q~V;M N*vi
;@9Tf*{.u]z85282
9H||-J u]85282 步骤1:导出过程的流图。
:dNk4chxqt85282kTK3A%Jc2[8528251Testing软件测试网"{ {)h(M C@8x步骤2:确定环形复杂性度量V(G):51Testing软件测试网 }l |&U"Q T)k
l{p8KiL,I85282 1)V(G)= 6 (个区域)
A8CQ ?%Pn4r8528251Testing软件测试网i6BL ?1cb r v|2)V(G)=E–N+2=16–12+2=6
;ix#O-TI@2gp85282{f&i'}A85282 其中E为流图中的边数,N为结点数;
@"M;q/Vvx852821h3MILS(I4X!P85282 3)V(G)=P+1=5+1=651Testing软件测试网Vm/D8~"r/Z+rn8V/X
51Testing软件测试网f i7o6D j!Xc"F*\其中P为谓词结点的个数。在流图中,结点2、3、5、6、9是谓词结点。51Testing软件测试网q,WL T D
51Testing软件测试网AK Y)V @N$}g步骤3:确定基本路径集合(即独立路径集合)。于是可确定6条独立的路径:
;s k-F/tFt6ai8528251Testing软件测试网r:`7j/V^T&C1IA1D路径1:1-2-9-10-1251Testing软件测试网ie*sTw#g5goG
"y7Za}}1m5n0s85282 路径2:1-2-9-11-12
QF0\:F[5Q2j.J5Il8528251Testing软件测试网7XJq0Hws路径3:1-2-3-9-10-12
Flg1Jl4f{#P7s85282Hz I qD#hw2y8j'?85282 路径4:1-2-3-4-5-8-2…
-?u? T0V| jr$Y85282-]5vh3z,_1k!S#g85282 路径5:1-2-3-4-5-6-8-2…51Testing软件测试网XU0c5C1|5e
'f SM|v%fx85282 路径6:1-2-3-4-5-6-7-8-2…
5K\O SIIx uF8528251Testing软件测试网]'mTt%?/\"^l1v%^&cT8zs)^9@C$m85282 1)路径1(1-2-9-10-12)的测试用例:51Testing软件测试网 b3y#Qe"H4Z8h
51Testing软件测试网8H^&N@0OS(Escore[k]=有效分数值,当k < i ;
X {5Mf*[;j'g7f"K8528251Testing软件测试网 vs)UL.s#l#yscore[i]=–1, 2≤i≤50;51Testing软件测试网|a-HG l:lm
51Testing软件测试网t(r:uv}8|do;c.jay4Lch85282 2)路径2(1-2-9-11-12)的测试用例:51Testing软件测试网B\ }0H3`$W4n
51Testing软件测试网 WKY!]bc1aoscore[ 1 ]= – 1 ;
'L7U1fX.c5o3wO*N"\s8528251Testing软件测试网(V ot}c.yb:[.w_w6pW Z+VS85282 3)路径3(1-2-3-9-10-12)的测试用例:
'G8Jf@P^85282J{4`-P;B5Nz Z)`B{85282 输入多于50个有效分数,即试图处理51个分数,要求前51个为有效分数;51Testing软件测试网%} T p9jW5Z r
0L8Jh v j6y85282 期望结果:n1=50、且算出正确的总分和平均分。
E:Z;jnY"FP5i852824`(dN0P/E _)x85282 4)路径4(1-2-3-4-5-8-2…)的测试用例:51Testing软件测试网F.kk&Y7d0DSi#l
`"I$m+_w-{.R'_9T H.o85282 score[i]=有效分数,当i<50;
3`7}atB w852821]MEN0?u&`85282 score[k]<0, k< i ;
iy js#@852828z4wM(ho.T85282 期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average
,`6I}/a{ V85282:p"d,t$p!j-G{85282 score[i]=有效分数, 当i<50;51Testing软件测试网"Qr2n6s z-UF i_Yg
51Testing软件测试网Z$A } |0g7c7JZ,Qscore[k]>100, k< i ;
Lfo-S#HbS85282W+] Q5z f$?85282
6)路径6(1-2-3-4-5-6-7-8-2…)的测试用例:51Testing软件测试网x g5L'dJ \'_3~
51Testing软件测试网x(\})n-d RYscore[i]=有效分数, 当i<50;
@f}+t7V9@85282L:O6Zd F*\85282 期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。51Testing软件测试网J$pNSKCL\
Hm I`2B85282 注意事项:
{X'Fgccv85282!j&U5N;q;a85282
^&g ET7fXoV85282 方法工具:图形矩阵51Testing软件测试网%_\`2O5M3e H8S
q-sI V6{'m'n&x85282
J"`)Af SIS85282
O"J5t2GB L+XjK85282
执行连接(边)的概率。51Testing软件测试网3Y6T&Ol9r"U8A#f
51Testing软件测试网#JG_Gn;D$e穿越连接的处理时间。
/RZX-j!UP6Q\8528251Testing软件测试网&N)Hz.KD2Q+l穿越连接时所需的资源。51Testing软件测试网MN2C*oN2r!e
FiFRTa$Y85282 根据上面的方法对例4画出图形矩阵如下:
S U*}DnU%^P#Dq,B8528251Testing软件测试网!l_0e g:Ixne-I
51Testing软件测试网 ~'Ju&w\!KTAG:
- 引用 删除 tatalovely / 2012-05-16 11:40:21
- 很好,收藏啦
- 引用 删除 xiao_chongqing / 2012-03-06 16:56:07
-
评 1 分