本站文章除标题中注明“原”以外,其他均来自网络或书籍,如果我的引用侵犯了您的权力,请与我联系,我将及时处理;如果任何人想转载这些文章,则请保留原始的出处信息,或者直接与原作者联系。

黑盒测试的测试用例设计方法

上一篇 / 下一篇  2007-01-21 21:01:29 / 个人分类:测试管理

等价类划分
lW)T4M j1if Y0
F"ux2Sc0  是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.
%Smx Z8W1j*c051Testing软件测试网zm%^$Z^a-n+ht t
   1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.51Testing软件测试网:y t0W Q.^HB
51Testing软件测试网 c'^q9p owL
  有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.
9Uq%CT |8\V051Testing软件测试网JBQyf7M
  无效等价类:与有效等价类的定义恰巧相反.51Testing软件测试网D*M2t h'Es(ol]
51Testing软件测试网#dT)u fA h^b6x
  设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.  
v:l({a Us0
*]9~(Yg'?4c0  2)划分等价类的方法:下面给出六条确定等价类的原则.
'\gMQ.l H.m/Y051Testing软件测试网H(@xr.K-k%aC{+r-`
  ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.
`0aXqG ?:?M051Testing软件测试网$JV |/uA&{8WD+fB
  ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
u&at4BH{*u%X8R8RM\0
J"_!p#k8~ Y(A*k0  ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.51Testing软件测试网%y:r`/uedo

\kcrc6y%N D0  ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.51Testing软件测试网Xn2H1}6p6i
51Testing软件测试网Q s&NS+}-{K-? O
  ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).51Testing软件测试网u)V%\7_sK| H
51Testing软件测试网L9J c x+p
  ⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.51Testing软件测试网~a)V a^9T
51Testing软件测试网9I"[W|'I
  3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
S@3p'GVf9Gd0
0} ^(H"t5RXno:wS5U0   输入条件 有效等价类 无效等价类51Testing软件测试网h9Cp7Rp]
  ... ... ...
l+j-o1C N"T r0  ... ... ...
Q(|#W/uIy\)M6m7nK051Testing软件测试网J2S_ T M,{9d |$B:BF
   然后从划分出的等价类中按以下三个原则设计测试用例:
\VZ#bi DP'Q0
? _ @m3O Mq0  ①为每一个等价类规定一个唯一的编号.51Testing软件测试网Me"LMu3U!fK8^

,o!dn!v+q_0  ②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.
)RV#x\ };p3i Z%V`051Testing软件测试网[#^DM5@"JR b"^
  ③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.51Testing软件测试网} `` S:kHw1J
51Testing软件测试网 N1l%F)mn*aCW$]
边界值分析法51Testing软件测试网1w t#y:Qw

,lU.a:[ f7m?6x0nh0  边界值分析方法是对等价类划分方法的补充.51Testing软件测试网0c#d|L7Cl)yBWb'l

rd9| ^Fe0(1)边界值分析方法的考虑:
'B4K?g O%M0
(fH egD/|+L%V5L0  长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
;g2@?m6Cy051Testing软件测试网w n.y h%H.r2B:o iQz6`
  使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.51Testing软件测试网-HQ2a/R;Au ?

hHEL0@F9k0(2)基于边界值分析方法选择测试用例的原则:
bBAHoyUF051Testing软件测试网 _tzDn"x9Bb
  1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.
Hb+V*~O1\I0
h,k@n9|@+K,X0  2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.
DU k,Wds&W(P051Testing软件测试网 V2hq&c0A*w+X
  3)根据规格说明的每个输出条件,使用前面的原则1).51Testing软件测试网g)Ok `Gr\#R
51Testing软件测试网M4X/z+NM$`;N
  4)根据规格说明的每个输出条件,应用前面的原则2).51Testing软件测试网s/~D"HI x`
51Testing软件测试网*B/zU6zO X
  5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.51Testing软件测试网3M+to Vk:pY0J
51Testing软件测试网(myH+R.p*^!U(y n8E|
  6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.
7N[:_"WO@0
3c#TRn R;n)o\+e4z0     7)分析规格说明,找出其它可能的边界条件.51Testing软件测试网;ru }7[?&O;x

d @:J y%Tl&S0错误推测法51Testing软件测试网 B,xhLp O+]

'i/] wY,D|0  基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.51Testing软件测试网WaR&a0_#n-F"^t [

/p5uj0n'Z!r&G0  错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.51Testing软件测试网 DWQZ9P-L [

c;~ t7~$y/QI0因果图方法51Testing软件测试网$U [ be }bnNPC

#IeRs"Ms;x8b,P0  前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).  51Testing软件测试网N-}j.c%B5z.IC
  因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.  
!D U8a*PG/P+@0
-S'To#B/ft-r8G0  利用因果图生成测试用例的基本步骤:  51Testing软件测试网4R]W$v#T

$G1k E~ZCE8_6F0  (1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.  
n"sEhPb#Q0
3s#q1u JIz!_$G0  (2) 分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.51Testing软件测试网4Gv6O,Ghr(\Q
51Testing软件测试网'?A%Xn1I'Rh
  (3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.51Testing软件测试网!HpK!oI
51Testing软件测试网({F K ru2hS
  (4) 把因果图转换为判定表.51Testing软件测试网:o2g%u(ZJ jiFEav

t,hldAZ^#j0  (5) 把判定表的每一列拿出来作为依据,设计测试用例.
]e8Ah*V&h051Testing软件测试网[p?1w_
  从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.51Testing软件测试网}IEd)GR0L
51Testing软件测试网4s\?~.o Q$Si
  前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.
x3}?0W,A0
;^ wP1S1BG5Zq1L0  判定表通常由四个部分组成.
a F|0a |3N,]0
+|r"|y6G1z0  条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.
PQl:T:n1`%uL0
T3I)jZ"`@0  动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.51Testing软件测试网#{7`^N5^p
51Testing软件测试网n:k1S'@qr&qb;Z!h
  条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.51Testing软件测试网$q&Ww2U0\d7a LU[6]]
51Testing软件测试网*px A m.o b
  动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.51Testing软件测试网ov-J+o A:c

;r[%h/z Y2w7@0  规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.51Testing软件测试网7ZT.i/]i\9e

QC;Sp6a0  判定表的建立步骤:(根据软件规格说明)
K)i@$R5U,L0
#RI ]@9gzg [0  ①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有 种规则.  51Testing软件测试网9Fu?w e

/s h.n?:R$m{z0  ②列出所有的条件桩和动作桩.
#`6jEpt-f7A051Testing软件测试网)_&lKa2R(Drd
  ③填入条件项.51Testing软件测试网s8l{k.B1D~6P
51Testing软件测试网 v!M#K/e_
  ④填入动作项.等到初始判定表.51Testing软件测试网XZm2hR.~i

kH-Q,u%O&L\0  ⑤简化.合并相似规则(相同动作).
$WzHux,{5p0
l:@P4}-S$t:r0  B. Beizer 指出了适合使用判定表设计测试用例的条件:
;dY3r]"p Q:w4{051Testing软件测试网8_'\MjcF.zW~,T
  ①规格说明以判定表形式给出,或很容易转换成判定表.
'N1k0Vt#{Av6W[ @ `0
{AB$h7h zF0  ②条件的排列顺序不会也不影响执行哪些操作.
.cDs)}pOr:G9O051Testing软件测试网dN-Sd$L _9Yk
  ③规则的排列顺序不会也不影响执行哪些操作.51Testing软件测试网&k(U3D4b(c$z
51Testing软件测试网6HHU S T W
  ④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.51Testing软件测试网i'OFf?_
51Testing软件测试网1[1?}!gSdL8nS8b
  ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.
(W/C2^,yw2KOlA d0

TAG: 测试管理

hellowang123的个人空间 引用 删除 hellowang123   /   2012-07-05 10:42:00
zhujiejun1314的个人空间 引用 删除 zhujiejun1314   /   2011-07-22 19:08:53
zhujiejun1314的个人空间 引用 删除 zhujiejun1314   /   2011-07-22 19:05:24
 

评分:0

我来说两句

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 40423
  • 日志数: 50
  • 建立时间: 2006-12-25
  • 更新时间: 2007-02-06

RSS订阅

Open Toolbar