黑盒测试的测试用例设计方法
上一篇 / 下一篇 2007-01-21 21:01:29 / 个人分类:测试管理
等价类划分
lW)T4Mj1if Y0
F"ux2Sc0 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.
%Smx Z8W1j*c051Testing软件测试网zm%^$Z^a-n+ht t
1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.51Testing软件测试网:y t0W Q.^ HB
51Testing软件测试网 c'^q9po wL
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.
9Uq%CT|8\V051Testing软件测试网JBQyf7M
无效等价类:与有效等价类的定义恰巧相反.51Testing软件测试网D*M2t h'Es(ol]
51Testing软件测试网#d T)u fAh ^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+f B
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
u&at4BH{*u%X8R8RM\0
J"_!p#k8~Y(A*k0 ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.51Testing软件测试网%y:r`/uedo
\kcrc6y%ND0 ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.51Testing软件测试网Xn2H1}6p6i
51Testing软件测试网Qs&NS+}-{K-? O
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).51Testing软件测试网u)V%\7_sK|H
51Testing软件测试网L9J cx+p
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.51Testing软件测试网~a)V a^9T
51Testing软件测试网9I"[W|'I
3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
S@3p'GVf9Gd0
0} ^(H"t5RXno:wS5U0 输入条件 有效等价类 无效等价类51Testing软件测试网h9Cp7Rp]
... ... ...
l+j-o1CN"Tr0 ... ... ...
Q(|#W/uIy\)M6m7nK051Testing软件测试网J2S_ TM,{9d|$B:BF
然后从划分出的等价类中按以下三个原则设计测试用例:
\VZ#biDP'Q0
?_ @m3O Mq0 ①为每一个等价类规定一个唯一的编号.51Testing软件测试网Me"LMu3U!fK8^
,o!d n!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
(fHegD/|+L%V5L0 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
;g2@?m6Cy051Testing软件测试网w n.y h%H.r2B:o iQz6`
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.51Testing软件测试网-HQ2a/R;Au?
hHEL0@F9k0(2)基于边界值分析方法选择测试用例的原则:
bBAHoyUF051Testing软件测试网 _tzDn"x9B b
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/zU6zOX
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.51Testing软件测试网3M+toVk:pY0J
51Testing软件测试网(myH+R.p*^!U(y n8E|
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.
7N [:_"WO@0
3c#TRnR;n)o\+e4z0 7)分析规格说明,找出其它可能的边界条件.51Testing软件测试网;ru }7[?&O;x
lW)T4Mj1if Y0
F"ux2Sc0 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.
%Smx Z8W1j*c051Testing软件测试网zm%^$Z^a-n+ht t
1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.51Testing软件测试网:y t0W Q.^ HB
51Testing软件测试网 c'^q9po wL
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.
9Uq%CT|8\V051Testing软件测试网JBQyf7M
无效等价类:与有效等价类的定义恰巧相反.51Testing软件测试网D*M2t h'Es(ol]
51Testing软件测试网#d T)u fAh ^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+f B
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
u&at4BH{*u%X8R8RM\0
J"_!p#k8~Y(A*k0 ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.51Testing软件测试网%y:r`/uedo
\kcrc6y%ND0 ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.51Testing软件测试网Xn2H1}6p6i
51Testing软件测试网Qs&NS+}-{K-? O
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).51Testing软件测试网u)V%\7_sK|H
51Testing软件测试网L9J cx+p
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.51Testing软件测试网~a)V a^9T
51Testing软件测试网9I"[W|'I
3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
S@3p'GVf9Gd0
0} ^(H"t5RXno:wS5U0 输入条件 有效等价类 无效等价类51Testing软件测试网h9Cp7Rp]
... ... ...
l+j-o1CN"Tr0 ... ... ...
Q(|#W/uIy\)M6m7nK051Testing软件测试网J2S_ TM,{9d|$B:BF
然后从划分出的等价类中按以下三个原则设计测试用例:
\VZ#biDP'Q0
?_ @m3O Mq0 ①为每一个等价类规定一个唯一的编号.51Testing软件测试网Me"LMu3U!fK8^
,o!d n!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
(fHegD/|+L%V5L0 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
;g2@?m6Cy051Testing软件测试网w n.y h%H.r2B:o iQz6`
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.51Testing软件测试网-HQ2a/R;Au?
hHEL0@F9k0(2)基于边界值分析方法选择测试用例的原则:
bBAHoyUF051Testing软件测试网 _tzDn"x9B b
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/zU6zOX
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.51Testing软件测试网3M+toVk:pY0J
51Testing软件测试网(myH+R.p*^!U(y n8E|
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.
7N [:_"WO@0
3c#TRnR;n)o\+e4z0 7)分析规格说明,找出其它可能的边界条件.51Testing软件测试网;ru }7[?&O;x