利用分类树方法设计测试用例

上一篇 / 下一篇  2007-10-21 20:49:00 / 个人分类:测试设计

b;`7uM+kN j8~.k&v0利用分类树方法设计测试用例

:gM5~6nE!xb0

'i4K3}*wk*VZ0陈能技51Testing软件测试网&{J5[{:_,v
2007-10-21

VlK!q2U1MQ%b4F051Testing软件测试网(zh{K!BpN

什么是分类树?
)Dl(CZ5R/u-]I4P,HR0什么是分类树?设想你希望设计出一个系统用于把一堆的美金硬币分成不同的类别(例如:一分币、五分币、一角币、二角五分币)。假设通过一些测量手段可以区别这些硬币,例如可以用直径来分类。你可以把硬币倒入一个槽,槽的直径恰好能让一角的硬币通过,如果能通过,那么它就被划分为一角的硬币;否则就继续倒入另外一个槽,槽的直径恰好能让一分币的硬币通过,如果能通过,则被分类成一分币;否则又继续下一个槽,这个槽的直径只容五分币大小的通过,如此类推。这样的过程实际上就是在构造一棵分类树。用于构造分类树的判断过程提供了一种有效的方法用于把一堆的硬币归类,而这种方式可以用于更广泛的各种各样的分类问题。51Testing软件测试网(k\HIz*?{(dU xC C
 
Z5K;`@&F8G7B9lLy+_ z0分类树被广泛应用于各种学科,例如医疗诊断、计算机数据结构、植物分类、心理学的决策论等。我们现在要讨论的是分类树在测试用例的设计方面的应用。51Testing软件测试网x EffU-d
 51Testing软件测试网JC x7\)C e\*J|Q:ry
分类树方法用于测试用例的设计
x.m?:fp&@3L%[M0测试用例的设计是对测试质量而言非常关键的软件测试活动,因为测试用例集合的选择对测试的深度和测试范围的影响非常大。
0` |'~3A8}&d c O0 51Testing软件测试网!Y,un0s/S$cZ
分类树方法是由Grochtmann和Grimm在1993年提出的,是在软件功能测试方面一种有效的测试方法,通过分类树把测试对象的整个输入域分割成独立的类。
&N"AQpL0 
5\/MYb|/gS9y0按照分类树方法,测试对象的输入域被认为是由各种不同的方面组成并且都与测试相关。对于每个方面,分离和组成各种类别,而分类结果的各类又可能再进一步地被分类。这种通过对输入域进行层梯式的分类表现为树状结构。随后,通过组合各种不同分类的结果来形成测试用例。51Testing软件测试网+`(`s0eS^!m
 51Testing软件测试网wMdp't*b(_*g*z
使用分类树方法,对于测试人员来说最重要的信息来源是测试对象的功能规格说明书。使用分类树方法的一个重要的好处是:它把测试用例设计转变成一个组合若干结构化和系统化的测试对象组成部分的过程 - 使其容易把握,易于理解,当然也易于文档化。51Testing软件测试网BM O^T
 51Testing软件测试网6FCa;U$OR,D}
如何使用分类树方法设计测试用例?51Testing软件测试网%n&A!z1v!a0^i T
分类树方法的基本原理是:首先把测试对象的可能输入按照不同的分类方式进行分类,每一种分类要考虑的是测试对象的不同的方面。然后把各种分开的输入组合在一起产生不冗余的测试用例,同时又能覆盖测试对象的整个输入域。51Testing软件测试网&DA$V%g JN%Ye'Q$P
 51Testing软件测试网6Z [/m6rK2Wm
因此,可以把使用分类树方法设计测试用例的过程分为3大步骤:
h5dF^n9A01、  识别出测试对象并分析输入空间。51Testing软件测试网@%_gj Gsl,m2A.o
2、  对测试对象的输入空间进行分类。51Testing软件测试网;b `*S,D4}o\
3、  画出分类树、组合成测试用例。51Testing软件测试网4G;i.Bs+p?

1v{#b5A%N051Testing软件测试网K gI6XG N8d

51Testing软件测试网Y%gTpa8U9O*~
在第一个步骤中,测试人员需要确定与测试相关的方面。每个方面应该有精确的限制,从而可以清晰地区别测试对象的可能输入。例如,上图中的大小(Size)、颜色(Colour)、形状(Shape)共同组成了测试对象的可能输入的方面。51Testing软件测试网L%p7xX3a$M0^
 
F s0f-I E:d0在接下来的步骤,依据测试对象的每个方面对可能的输入进行划分,这个划分就是数学上说的"分类"。分类的结果就形成了各种"类"。因此一个"分类"的结果代表了测试对象的某个方面的输入。例如,大小(Size)方面的可能输入是大(Large)或者小(Small);颜色(Colour)方面的可能输入是红色(Red)、绿色(Green)、蓝色(Blue)等。
U(Q2M ]UO |0 51Testing软件测试网a3Q A$v1Ih,|0xP_
最后一个步骤是形成测试用例。测试用例是由不同分类的类组合形成,在组合类的时候需要注意逻辑兼容性,也就是说交集不能为空。测试人员组合类形成需要的测试用例,以便覆盖测试对象的所有方面并充分考虑它们的组合。例如,测试用例1就考虑了大尺寸、红颜色、圆形的输入。
&L6y iL!ym2Wx/C*lc(B0 
%?\*rZ P L0分类树方法测试用例设计的工具51Testing软件测试网's x4G,S9{v]
如果测试用例是依据软件功能规格来设计的,那么我们叫这种类型的测试为功能测试。虽然功能测试对于验证系统非常重要并且广泛应用在测试中,但是只有很少的方法和工具可以系统地产生相应的测试用例。
Y+Z&fu/h A9L*N0 51Testing软件测试网!N TE$T4o0H2F1q
CTE XL(Classification Tree Editor eXtended Logics)是为数不多的工具之一。它是一个语法控制的、图形化的编辑器。帮助我们更加有效地使用分类树方法进行测试用例的设计。51Testing软件测试网QBlxbM:~n
 
.t*u Y'g-|D7k0工具的使用方法比较简单,下面作简要的介绍。51Testing软件测试网 |N A*QWXO
1、首先创建测试对象,如下图所示,创建一个测试对象Block,并开始进行分类。51Testing软件测试网U-tK.GL(D9U~3rr `

l/i ZtvN)]051Testing软件测试网LNW/w,BV(?'C2X

51Testing软件测试网,P7JaSp{xn$~
51Testing软件测试网.w&K5lJ S ea0g
2、对测试对象进行分类:添加类别元素Size、Colour、Form,如下图所示。51Testing软件测试网jdR:W)z!Y.yE ]wp;W
 

N&[]M ~5f051Testing软件测试网QGMP-ir1M


Oa@ d eB!]6J+J4K?]03、向各种类别添加类,形成分类树,如下图所示。51Testing软件测试网q ca.u.RO'J,b[R)IE
 

OCi wX(y3WA051Testing软件测试网8c'p:{V{1~8pWw

51Testing软件测试网 e gz7EI;\cgX7E
4、添加测试用例,如下图所示。51Testing软件测试网*O&?_idg6xB

H1p!@eo051Testing软件测试网3L,\#OL5| C


Yy@q-E(m \05、对于添加的每个测试用例,通过选择并标注各类的组合,形成需要的测试用例,如下图所示。
M](R;S6z'i051Testing软件测试网`T&~8z&g'ytC,\

.rzaE n.{b0C06、最后把测试用例输出到文档,以便将来测试人员按照测试用例文档执行测试。51Testing软件测试网-mgB&t8W
 
1A:k kj/w5z3b0分类树方法测试用例设计工具的扩展思路
2_3`L.]9q0f0虽然CTE XL在应用分类树方法进行测试用例设计方面已经很出色,而且考虑到了与测试用例管理、需求管理的整合,考虑到了测试用例组合的自动化,也考虑到了测试用例组合的规则问题。但是我认为在分类树方法的测试用例设计工具的开发上还可以考虑实现更多有用的功能特性。
J}^9\n(mxs0 
r5pHb5EA4Ec{0首先,可以考虑分类树与软件设计的整合。目前大部分软件企业在软件设计方面都遵循了UML的方式进行设计,能对系统进行详细和深入的分析。而测试用例的设计也是一个由粗到细的设计过程,有些细节不能在需求阶段考虑清楚的,可以在设计阶段借鉴详细设计的结果来指导测试用例的设计。因此如何把UML类图、顶层用例图等直接转换成分类树是一个值得我们考虑的方向。51Testing软件测试网npI*?!Yg1k v
 
oy [E"vO R0其次,在测试用例的自动产生方面可以把正交表设计和均匀表设计考虑进去。正交表和均匀表也是很多测试人员使用的测试用例设计方法。正交表的整齐可比性、均匀表的均匀分散性为测试用例的选择筛选提供了有效的途径。它们能使测试用例的设计既不失完整覆盖性,又能有效控制和减少测试用例个数,从而使测试用例的可执行性更强。51Testing软件测试网9v'|R\&a.F#_a`

51Testing软件测试网 dxCuV

 51Testing软件测试网1o8z,V*VF


TAG: 测试用例 测试工具 测试设计 分类树 CTE

のDream的个人空间 引用 删除 violet0214   /   2013-02-22 14:58:37
5
测试职业生涯规划 引用 删除 我不叫涓涓   /   2012-08-28 09:05:01
原帖由独角兽妹妹于2011-01-06 16:57:53发表
请教:CTE XL中 twowisw(a,b,c..)是怎么组合出来用例的?望指点,我是看了你写的书,才知道有这个工具.

我在用 twowisw(a,b,c..)的时候出问题了,不知道怎么回事。。。陈老大啊,快点冒个泡吧。。。
独角兽妹妹的测试之路 引用 删除 独角兽妹妹   /   2011-01-06 16:57:53
请教:CTE XL中 twowisw(a,b,c..)是怎么组合出来用例的?望指点,我是看了你写的书,才知道有这个工具,谢谢您。
引用 删除 cheasea   /   2009-11-30 17:00:50
seeing is not believing ,testing is believing !
偶像啊
guori008的个人空间 引用 删除 guori008   /   2009-03-04 09:42:18
原来的等价数据,分析后加入了覆盖和组合的概念,图形化的设计更能让测试分析人员一目了然。
jhxhlj的个人空间 引用 删除 jhxhlj   /   2008-02-03 00:06:30
这种方法是不是和全对偶组合差不多?
tails82的个人空间 引用 删除 tails82   /   2007-11-02 11:13:56
很好的思路。其实就是帮助划分出等价类。然后用最少的用例,覆盖正常等价类。每个异常等价类,用一个用例覆盖。使用树状结构,可以有效帮助我们分析出哪些等价类被覆盖了,哪些没有。如果引入了正交分析等技术后,那更能节省很多分析排列组合的时间:)
 

评分:0

我来说两句

Open Toolbar