测试之家淘宝店:主营软件测试定制服务 http://shop71136398.taobao.com/ 软件评测试考试论坛:http://www.testdao.com/forum-113-1.html 2012软件评测师考试群:28388329

从用例到测试用例的追踪

上一篇 / 下一篇  2007-06-14 12:53:02 / 个人分类:Rational

yzc3u)jZ+|/d0

[关键字]Rational RequisitePro
本文阐述了一种从用例产生功能测试用例的正式方法,包括如何创建一个用例,产生所有场景,并且创建合理的测试用例,以及使用IBMRationalRequisitePro进行从用例到场景和测试用例的追踪。
51Testing软件测试网Ou },C;fz\(}

需求类型概览

2@E7m6{@Nc051Testing软件测试网U;[5V3OI~

一个需求被定义成 "系统必须遵从的条件或能力"。

-`7q*@S}4X0

W%}1D2d6U1Y l.c q0它可以是:

  • 一个顾客或用户所需要的,用以解决一个问题或达成一个目标的能力
  • 一个必须被一个系统所满足和拥有的,用以满足一个合同、标准、规格、规则或其它正式强制文档的能力
  • 一个被涉众所强加的限制

4buBU MF*e h051Testing软件测试网QN4[+rn$Rp p

51Testing软件测试网Z#c X6Q5nC

图1显示了带有不同需求级次的需求金字塔

h9GRa:W2\0

1Gu6@?q051Testing软件测试网F!\#i3c4sO
图1. 需求金字塔51Testing软件测试网9Mo@+XPW n ISpNQ?

,V`6h5]D+bTX%|@051Testing软件测试网t!bk(z0ubq

51Testing软件测试网u$m k S!_"k7[C
51Testing软件测试网b\.K"d_7UA D

m'[*v:B ux1I0最高层的是涉众需求。通常,一个项目包含五到十五个这样的高层需求。较低层次的是特性,用例和补充规约。不同层次的需求有不同的细节。越低的层次需要越多的细节。例如,一个需求可以是:"数据必须是持久的"。特性可以将此需求精化为:"系统应当使用一个关系数据库"。在补充规约层次,需求会更加详细:"系统应当使用ORACLE9i数据库"。层次越低,需要越详细的需求。

ua*f K#\\051Testing软件测试网CZfL1f+H*GU+x'f

需求之间的追踪关系51Testing软件测试网 RQ3xlcS3kzC X

9jm;t,agg1qCf5xQ0追踪是这样一种技术,在系统中它能为不同层次的需求之间提供关联。这个技术帮助你确定任何需求的起源。图 2 阐述了从高层次到低层次需求是如何被追踪的。每一个需求通常映射到几个特性,然后这几个特性映射到用例和补充需求。

g6H^+i.x3W/|0

1CqoX8V!N0
?x"W2J E/i0图2. 追踪需求金字塔51Testing软件测试网Ups}6R7a1Hj1L?

p/`E,k{#Qi0

-s V$D7I1G;qM[ h"G0[;~051Testing软件测试网[x!qP"k(Vhm
51Testing软件测试网Ie_'_$Z2tzVa

Y| o^ v0用例描述了功能性的需求,补充规约描述了非功能性的项目。另外,每个用例映射到许多场景。映射用例到场景,是一对多的关系。 场景映射到测试用例也是多对一的关系。另一方面,在需要与特性之间,是多对多的映射。51Testing软件测试网U9?FY_Z

q6}G'L4]M0追踪起到了几个重要的作用:

"S6N'c7of6~&q0
  • 验证一个实现是否完成了所有的需求:用户要求的每一件事情都被实现了
  • 验证应用程序只做了所要求的事情:不会去实现用户从未要求的事情
  • 有助于变更管理:当一些需求变更后,我们想知道哪些测试用例应当被重新执行以测试这个变化
51Testing软件测试网~d`Kt H

一个追踪项是一个项目元素,其需要从另一个元素进行追踪。按照IBM Rational RequisitePro,它是一个需求型的实例所表示的任何事情。在RequisitePro中一些需求类型的例子是涉众需求,特性,用例,参与者,和术语条款。51Testing软件测试网F;[oER Y

,u4B-Tc'\(Y@0在RequisitePro中,有一种按照特定视图展示追踪性的便利方法。图3 显示了将特性映射到用例的一个例子。51Testing软件测试网 ]lG H*e3D ?m9t!aH,C

)E7v T5GA"vaOa6s0
kFhs}0图3. 在RequisitePro中的追踪关系51Testing软件测试网.pLr5TB%I
51Testing软件测试网(br+C}#r-Rn'M

-oC!K`X"C:e4Q0
^R%_9f6Q!f U051Testing软件测试网d-ck.e(a hT

51Testing软件测试网5D`+? j3a"}IcZ

这里有一些问题,这些箭头应指向哪里:是从更低的层次到更高的层次,还是从更高的层次到更低的层次。甚至在RequisitePro中的两个例子使用了两个不同的方法。答案是没有关系,只要你在项目中始终如一地使用它们就可以了。

p EF1DG;p8uZ~0

5Mp&{T*Ds0参与者和用例51Testing软件测试网*r ZDj u!]GQ

51Testing软件测试网9z { ]Mf"J.n

参与者是与系统交互的某人或某事。用例是根据操作顺序的一个系统描述。它为参与者产生了一个看的见的结果或数据值。以下是用例的一些特征:51Testing软件测试网fu6}6G;w:@j3x

  • 被参与者初始化
  • 模拟参与者和系统之间的交互
  • 描述操作的序列
  • 获取功能需求
  • 为参与者提供数据值
  • 表示完整的和有意义的事件流
51Testing软件测试网5\9o g.bTq

用例的目的是促使开发者、顾客和用户之间对系统应做些什么达成一致。用例在开发者和顾客之间达成了某种契约。它同时也是用例实现的基础,它在程序设计中起到了非常重要的作用。另外,你可以从用例中产生序列图协作图类图。此外,你可以从用例产生用户文档。用例可能还在计划迭代的技术内容方面有帮助,并且使系统开发者更好地了解系统的意图。最后,你可以使用它们作为测试例程的输入。

$vF!P,m/hTo8t#D-B0

!Uzt&pIi0用例图显示了参与者和用例之间的关系。在本文我们使用一个在线书店作为项目的一个例子。图4 展示了这个项目的用例图。51Testing软件测试网3rT3U Uc9a

51Testing软件测试网v(F3cI'r7J.C

51Testing软件测试网S'P6`"VE4zB
图4. 用例图51Testing软件测试网[(W(wxDd#}2EB q

.of;j}{u(|051Testing软件测试网&B2c*R.y)g0|


L!sm5Bd:F051Testing软件测试网Y rg9\yvb

6Z)K8dM9K~+h*s9O0用例的通用格式是:

S7I8}DXzB0
  1. 简要描述
  2. 事件流
    • 基本流程
    • 可选流程 1
    • 可选流程 2
  3. 特殊需求
  4. 前提条件
  5. 后置条件
  6. 扩展点
  7. 环境图
  8. 活动图
51Testing软件测试网E2SR v*| T*T p0\

基本流程包括最通常的一系列行为,此步骤发生在每件事正确运转的时候。可选流程表现了流程的变更,包括不很普遍的情况和错误条件。环境图是用例图的一部分,向参与者和其它用例显示了特殊用例之间的关联。活动图是一个解释用例的流程图。环境图和活动图不是必须的,但是可以帮助你可视化用例和它在项目中的位置。51Testing软件测试网*~8M/L6`L

51Testing软件测试网X:rV#L~w.x1G

在我们的在线书店项目中,用例的基本流程的安置顺序也许像这样:51Testing软件测试网z n ULf:J"qrRZ

  1. B1 用户在浏览器输入网站的地址。

    +bQ#Hts M#u0系统显示登陆界面。

    Tj&Zug8fqj0
  2. B2 用户输入电子邮件地址和密码。51Testing软件测试网nu6m^Xb0H x#bz X

    系统确认正确的登陆,显示主页,并且提示输入搜索字符串51Testing软件测试网c!{"v/`x:e

  3. B3 用户输入搜索字符串—书名的一部分。

    sbs\c0}-bA c0系统返回与搜索标准匹配的全部书籍。

    O5K3Y5?9k Cp t0
  4. B4 用户选择一本书。51Testing软件测试网0?bF#j,gJKL

    系统显示这本书的详细信息。51Testing软件测试网 ^_4{:Q \ Bf

  5. B5 用户把这本书放在购物车中。51Testing软件测试网,^;Jn*BR,Z!lO

    购物车中的货物显示给用户51Testing软件测试网,cj z:T5k7S:V

  6. B6 用户选择"进入到结帐" 选项。

    s[Z7p}*ks%b(N0系统索要送货地址。

    1R4t.ocoXm0
  7. B7 用户确认送货地址。

    O8I a%R8LoVM0系统显示送货选项。

    V Qy`#]n4y0
  8. B8 用户选择送货选项。51Testing软件测试网CC_F*T2rxE~

    系统询问使用哪种信用卡。51Testing软件测试网yi6}S-z_]P0K

  9. B9 用户确认储存在系统中的信用卡。51Testing软件测试网9a_-?|H\

    系统请求最终确认此次订购。51Testing软件测试网:T.b.y$S9uKJ3a

  10. B10 用户订购。

    k0g:x2vQitI0系统返回确认数量。51Testing软件测试网;KNH8y?bW8S0u

51Testing软件测试网UW,SP;]2q.O;x:c

除了基本流程以外,还有许多可选流程。例如,第一个可选流程描述了当用户是一个新的用户时所发生的事情(不是在线书店的已注册用户)。在基本流程中,用户经常拥有一个用户ID和密码。相反,可选流程 1 描述了当第一次用用户需要注册并提供顾客数据时的情况。可选流程的另一个例子是无效的密码。用户输入了错误的密码,系统显示错误信息。51Testing软件测试网4`-yW ]L;T

51Testing软件测试网;^Y `O7q:}5w
表 1 显示了"安置顺序"用例中的可选流程:
3{;G(~8m^0
表 1: 可选流程
A1未注册用户
A2无效密码
A3没有找到匹配搜索标准的书
A4下架书籍
A5在购物车中放入一本书后继续购物
A6输入新的地址
A7输入新的信用卡
A8取消订单

@a+yJ#r"}0下列约定用于为事件流命名:

,xS2c;b/[d\V0

9}W!}cOe0基本流程:B51Testing软件测试网-W"r8QeO.a7hi

1vG2GR*i6q+dG0可选流程:A1,A2, A3,...

&of0Mwa"J eM*j hD0

:P UP*a+x9S;q0在基本流程中的步骤:B1,B2, B3, ...

KH!v ht&^$VY051Testing软件测试网WL3S f9iS

在可选流程1中的步骤:A1.1, A1.2, A1.3, ...

S2y0_3T-`?&W t%b0

,bcQh'q9W)O0在可选流程2中的步骤: A2.1, A2.2, A2.3, ...

,wZ? Hok"B)H3MF051Testing软件测试网N;\4qB ~iUR

为得到可选流程,使用活动图 5。图 5显示了描述用例的活动图。

VTeg ]K2Q4u051Testing软件测试网 b`ifY6lX^7J


d xuc@0图5. 活动图51Testing软件测试网2Fn$VP,YL^
51Testing软件测试网P s(mJcy

51Testing软件测试网F&y*{Y g g [


1e;MsPp/` o051Testing软件测试网h%X5YvT]?

jP.M3N:K0基本流程是一条向下的直线,然而可选流程可以是向前或向后的循环线。51Testing软件测试网"z1Hevw[A

4l`d"qg.D v9Df0如何从用例创建测试用例51Testing软件测试网U:h;c"j(d1Ry

51Testing软件测试网5sF-Q~C)|/|

在创建一个测试用例之前,你需要为所给用例确定全部的场景。一个场景是用例的一个实例。它描述了一个贯穿事件流的特殊路径。图 6是一个假设的图表,它描绘了一个拥有基本流程B和可选流程A1, A2, A3, A4的用例。为了找到全部的场景,我们需要画出贯穿于此图的所有场景。

'c`eU L0j5]F9S0

v$|/}@(O1Q;Rk#P051Testing软件测试网+@^C){$RA7B
图6. 在用例中找到场景51Testing软件测试网3Q)yz7kM v)q
51Testing软件测试网k8H kS)B-I4i

51Testing软件测试网7S v7b{r7g

51Testing软件测试网 ]G1Cm7Z]o

A%e,O$n*|)E4Q3F0

ff?.P~3cX6G;[0每一个可选流程都有一个场景,并且每个结合的可选流程都有一个场景。显然,这里场景多于可选流程,因为一个场景用于A1,另一个场景用于A2,还有一个场景用于这两个的结合。

bLvl(\X4v W E0

FZ7Vm:EK3S lPY,T0描述场景最简单的方法是提供一系列的可选流程,例如,做两遍流程A2,然后做一遍流程A6:51Testing软件测试网 CB S,C+X [h

$P%J/~:^9T7AvY0SC16:A2,A2,A6。51Testing软件测试网L)jh@,~ i

51Testing软件测试网9J p"\3{kR N

另一种描述场景的方法是列出它的所有步骤,但是这种方法既困难又未必详细。

hv;ElKjI0

MLg{,F&B0如果你陷了无限循环(向后循环),这时该怎么办?理论上它将产生无限的场景。图 7显示了一个无限循环。51Testing软件测试网g/M,It? b9h

X0u},PexZ }JC0
V5g1AsU"w_(O n1e0图7. 无限循环。51Testing软件测试网Yt9x+I2NEZ*N$u

Tt-EZZo7JPBF5_051Testing软件测试网t:B ae-P9E

51Testing软件测试网fo Z4g.m)u@i$eM
51Testing软件测试网$Vts#g;_#x;i6qF2s\U+]

51Testing软件测试网9K8q)hQzq [$^ii

最合理的方法是做一遍基本流程,一遍循环流程,然后再做一遍循环流程。如果程序能为这两个循环都工作的话,你能假设它能为所有的循环工作。

6Y;^M4O y~(t-v0

5`0j,?@O0r {?~0书籍订阅的例子中包含了一个基本流程和8个可选流程。它们中的4个向前走,另外4个向后走。如果你想描述全部可能的用例结合,你将有超过4000个场景 (这里有8个可选流程,我们想让其中4个做两次,因为他们向后循环,所以是2的(8+4)次幂,,等于4096。很明显,我们不需要把他们全部做完。51Testing软件测试网(^K7rL p}(Z

"x9A*qy?(Pl0选择能代表这四千个场景的一个合理子集。通常,明智的做法是选择一个基础流程,一个覆盖了每一个可选流程的场景,以及一些合理的可选流程的结合。使用表 1的例子,做一个包含流程A1和A7的场景也许没有什么意义,因为它们在图标上分隔太远以至于不能互相影响。但是,做A1和A2是有意义的,因为他们互相紧埃,之间互相影响。

5U f7Ym8D s W1t$Jh0

EMP VIu'Pq-jZ8t2~6~0表 2 图解了选择的场景:一个代表基本流程,8个代表每一个可选流程,6个反射可一些流程的结合(特别是那些拥有两个距离很近的向后循环)。51Testing软件测试网:ch;W tK

/u2qT6mMrhh nV0以下15个场景值得测试:

+oMg3Q*Q_7q8d0
a$Y#~ED0表2. 值得测试的场景51Testing软件测试网)]0Nj6d$Bd3] y+JR
表2:获取选择的场景
场景 1 基础流程场景 9 A8
场景 2 A1changjing 10 A1,A2
场景 3 A2场景 11 A3,A4
场景 4 A3场景 12 A4,A5
场景 5 A4场景 13 A3,A5
场景 6 A5场景 14 A6, A7
场景 7 A6场景 15 A7,A8
场景 8 A7

4Bb+P@5? |a0在RequisitePro中如何创建一个场景

s#f!J&Cm/d;o051Testing软件测试网l,jL'PJ

在RequisitePro中场景不是一个标准的需求类型,所以你需要增加它成为一个新的需求种类。为了完成它,去ProjECt PropertiES,选择Requirementtypes 标签,然后点击 Add。接下来,填充到适当的区域 (如图 8所示),然后点击OK。51Testing软件测试网.T]9a(TWhB

l9Y/{Wp5u/k a051Testing软件测试网+Tnl T5BMl
图8. 增加一个需求类型场景
Zb `] Z051Testing软件测试网6jpl4QPJW#|

51Testing软件测试网r6O[;vB


H{,i+hy8\gZ6E;}*}a/`D0

:lxOjSK&|t051Testing软件测试网uKX.W ZPDG

创建了这个需求类型之后,我们应当输入全部的场景并设置从用例到这些场景的追踪,如图 9所示。

U;{ d`"] [+_*^X0

J b4L A2f6l%d0
iq7M-`jG0图9. 从用例到场景的追踪

]9jH(@5s v GZ051Testing软件测试网;vB ti z

51Testing软件测试网Um T2kLHV?
51Testing软件测试网.@1dH%^K+A0z _

a2dsO9c9{051Testing软件测试网6N6L9TQ%db?s`,c

在RequisitePro中,你可以用用例的名字和一系列可选流程的名字为场景命名(例如:UC1, A6, A7)。

6A L?C2]PT6b J4[0

Nz5P#xP?0既然你有了所有的场景,你就需要获得测试用例。这里需要完成4个步骤:

  1. 为用例的每个步骤确定变量
  2. 为每个变量有效地确定不同的选项
  3. 在测试用例中测试结合选项
  4. 为变量赋值

d,Rk9RM.N-T9q9a051Testing软件测试网4]n/j5BOK#eC d

v'Eex5U8kn0以下部分描述了这些步骤的细节。51Testing软件测试网hgm`(d G

51Testing软件测试网*{3CtJf

步骤1:为每个用例步骤确定变量

U wK;?R(G q051Testing软件测试网"@Y{;M X1En ^

在所给场景的所有步骤中你需要确定全部输入的变量。例如,在某些步骤中,如果用户输入了用户ID和密码,这就产生了两个变量。一个变量是用户ID,另一个变量是密码。变量也可以被用户选择(例如,保存更改或取消)。

*o%t&DZ~(H051Testing软件测试网x yYZ(QTj

这里是书籍订购例子的全部变量:

S l*}0P(Q Q0

[y3Y7EYc,u0在步骤B2中,这里有两个变量:电子邮件地址和密码。它们全是字符串。在步骤B3中,搜索一本书,这个变量是一个搜索字符串,因此它也是字符串。 在步骤B4,我们需要从系统返回的目录中选择一本书。在步骤 B8中,我们需要选择送货方式。AMazon.com 提供了4个选择。51Testing软件测试网2C dA"H*f&w,_7D,?

51Testing软件测试网"UV'c KP _x

步骤2:为每个变量有效地确定不同的选项51Testing软件测试网 g7R!cC5K'^

51Testing软件测试网]^;\}([5`W]'VBi'C

如果它们引发不同的系统行为,选项将是"明显不同的"。例如,如果我们选择大概6到10的字符长的用户id,以下的输入显然是不同的 :

  • Alex ——因为太短,我们希望显示一个错误的信息
  • Alexandria ——因为它是一个有效的用户id
  • Alexandrena ——因为太长,我们期待系统可以阻止我们输入如此长的id

`"a!{)p5F0

P3w F5{(bzR2Q0

7u0@[yG0然而,"Alexandria" 和 "JohnGoRDOn" 却不是明显不同,因为它们都是有效的用户id,可以使系统有相同的反应。51Testing软件测试网+TR'Q$w$IdAj-f&`-\

51Testing软件测试网'eE-k Pg|}rq

以下的指导方针描述了一些特殊的例子。51Testing软件测试网SV4X)^YzY?

.W9i B;Kf0一个选项可以认为是非常不同的,如果:

  1. 它引发了不同的程序流程 (通常是一个可选流程)51Testing软件测试网H#Iz kU$J.X

    例如

    • 输入无效的密码将会引发可选流程2
    51Testing软件测试网tKK*{8{%K-K j"\

    R;i"p8?)z}J.[,Irn0
  2. 它引发不同的错误信息

    5K$E/~b C._0G0例如

    • 如果电子邮件太长,信息就会是 "电子邮件应当在50个字符以内"
    • 如果电子邮件没有包含 @ 符号,信息就会是:"无效的电子邮件地址"
    51Testing软件测试网 _ F!U'|&EI

    51Testing软件测试网7lU3hmu

  3. 它显示了不同的用户界面

    )J].|9H,? T0例如

    • 如果付费的方式是信用卡,在区域里显示的是信用卡号输入号码,产品有效期和持卡人的姓名。
    51Testing软件测试网4e#V$F6RbHN7E'}

    s1sJ~4s3? `0eL0
  4. 它使得在下框中有不同的选则可以使用51Testing软件测试网,r9X.d7f G

    例如51Testing软件测试网`m3l+d1GaV

    51Testing软件测试网#@*|f0W5uG1d$j'z

    顾客注册界面包含了 "国家和州/省"的下拉框。"州/省"的下拉框一般是基于国家的选择:比如美国,它包含了全部的州,加拿大是全部的省,其他国家是缺省的。它创建了3个不同的选项:

    • 美国
    • 加拿大
    • 其它国家

    +v(yDC bjVYb051Testing软件测试网%M!CM6L x

  5. 一些商业规则的输入51Testing软件测试网 HCa!n)MU h3s5Db

    例如

    Ru ? R%W051Testing软件测试网 q8M i Xr1]O9`

    假设这里已有一项规则 "如果实下午6点以后下订单是,用户选择头天晚上送货,将会通知这本书将会在后天到达。",我们有两个:独立的选择

    • 头天晚上发货,在下午6点之前下订单
    • 头天晚上发货,在下午6点以后下订单

    :S1XO"p[A7[0

    !nz;z%e9c'|)]6`0
  6. 这里有一个边缘情况

    )Q$D(SXC9z ~3|0例如

    .og&@KK ws051Testing软件测试网XV'T{2p&U5m?A

    因为密码应当包含至少6个字符,我们因该测试:

    • 5个字符的密码
    • 6个字符的密码

    }s aa,x&PXX'r:|051Testing软件测试网UD8Qrm#m$o9v

  7. 改变某些事情对使用默认

    &Q K$P7h8x0例如

    ;ef$TP M0

    7pH8} i U2lHW-PL0在信用卡支付界面,持卡人的名字通常是订货人的姓名。这就产生了2个独立的选项:

    • 保持默认持卡人的姓名
    • 改变持卡人的姓名
    51Testing软件测试网suI7o.H(In3B:H$W

    m[#G#a'U0
  8. 没有明确定义输入格式,不同的用户有不同的理解51Testing软件测试网9xlb:Y1C&~h

    例如51Testing软件测试网E:n|;a h[

    51Testing软件测试网8PU s&Sg1[([

    不同的人有不同的书写电话号码的方法:

    • 使用括号 (973) 123 4567
    • 使用破折号 973-123-4567
    • 数字间使用空格 973 123 4567
    51Testing软件测试网&Wcp+IK

    51Testing软件测试网j QWC;R;}

  9. 不同的国家有不同的规则

    w;v5T|%Y0例如

    ,C0Kv^ j$Qo}0

    6U,@ VmgG/Y7|0信用卡有效日期的格式在美国和加拿大就不同

    :c^2alA0

I*jA"e!Kk0

!n"x!RN^{051Testing软件测试网^U;jJ5wLfT#K%X

如果我们测试数字,我们会考虑以下选项:

  • 常规的以及从应用观点上是合理的数字
  • 0
  • 负数
  • 带两位小数的数字
  • 能输入的最大数字(99999999999999 - 输入最多的9)
51Testing软件测试网O\u_Is

-s-\;y{U'^ _0

LvC'O xh0你怎么知道区域内能够输入的最大和最小的长度?这个需求可以从不同的来源得到。有时,它来自于商业的分析或顾客。例如,如果我们输入Dun 和 BradSTreet 数字,这就被看成是一个公司,它总是包含9个数字。这是商业的需求。51Testing软件测试网x:bXRX8p)`X

51Testing软件测试网7Y6V`&? w6{

然而,它一般不会来自于顾客和用户。如果你问客户姓名区域有多长,它们会告诉你不用担心长度,只要要合理即可。在此例中,设计步骤决定了变量的长度而不是需求步骤所决定的。51Testing软件测试网*iE*Eb1Gp+@5C

2HoX_!r}0另一种情形,数据分析师或者数据库设计者会提出建议——例如,在如果公司的全部应用软件中姓名应在30个字符以内,你的申请的用户名就得依照这个标准。

%AODK `%[]eK051Testing软件测试网!Eon,mv@ h(f d9~c

不管需求的来源是何处,在我们做测试用例之前它都要被同意并且备份。

7gx%j[l b0

w$Ng}k0这里有一个关于上述讨论的需求应该在哪里进行文档化的问题。在用例中一个增加这个需求的地方是被称为Special Requirements的地方。另外一个可以放置这种需求的地方是术语表或者数据字典。另外,你可以详细说明一个独立的文档类型,在那里你可以描述全部应用程序中的所有变量。在许多用例中如果同样的变量出现在许多界面中时,这就变得特别有意义,因此你可以在一个文档里说的所有名字截止在30个字符以内,全部的地址截至在100个字符以内。然而,如它们对一个用例是特殊的,最好把它们加到那个用例的特殊需求中。51Testing软件测试网8n-N_vY3@


'T3{7K-[yS"}&b%W L0表 3显示了在示例项目的基础数据流程中为变量确定的选项:
)t6Qr^o G4I%P0
步骤变量测试选项
B1网站实际URL
B2电子邮件正常空白最少允许字符数(1 字符)最多允许字符数(50 字符)比允许最多字符多一个字符(51 字符)非常长 (257 字符)无效 (缺少 @ 字符)
B2密码正常空白太短(5 字符)最少允许字符数(6 字符)最多允许字符数 (10 字符)比允许最多字符数多一个字符(11 字符)非常长 (257 字符)
B3搜索字符串正常空白最少允许字符数 (1 字符)最多允许字符数 (300 字符)比允许最多字符数多一个字符 (301 字符)
B4选择第一次选择最后一次选择
B5行为选择加入购物车
B6行为选择进行结帐
B7送货地址确认地址
B8发货方式5 天3 天2 天头天晚上
B9支付方式确认信用卡
B10行为选择下订单
51Testing软件测试网mOO5aB9YW5W

步骤 3:将待测试选项合并到测试用例中

"t,AY)\"~V3UO0

6z&jCH }#Ax#HB0在前面的步骤,你确定了所有的选项。在此步骤,你需要在一系列的测试用例中使它们结合在一起。

n5i+o!@JZy0

R6zcK p yw-?TA0图 10用图描述了测试的选项。每一个纵队都有一个需要测试的变量,每一行是一个选项:R 是正常, E 是空, 然后是一个字符,50个字符,51个字符,等等。 "L" 代表非常大, "I" 代表非法的。51Testing软件测试网&v$y4f3m0C NH!~

u#p(q]&Eo051Testing软件测试网-M C1_6^+OLq5y#]
图 10:每个步骤的待测试选项

#s{(Z,b"P WUbF0

3az'R]-yziRM051Testing软件测试网F?3P4mRY!P9g
51Testing软件测试网,x8g4TT(CR r^X

5B:ey/qL(]051Testing软件测试网2_&J qT'D8q3}&W mD

后面有妨碍的选项把用户从基本流程中抛离出去:它们表示在可选流程中描述的一些错误。因为你一般为第一个场景设计特殊用例,所以你可以移动它们(在一些其它的场景中测试它们)。 无论剩下了什么,你需要创建最小数量的覆盖全部情形的测试用例。51Testing软件测试网!f.u:C/?8@ L

?{^ \&a:MA yE:r_0通过连接圈创建测试用例,如图 11所示。

6GMwx9W4G-s0

t c QYpw$d%O\B051Testing软件测试网X*M5U%z0_
图 11:合并选项以创建测试用例51Testing软件测试网)t m)p8D [9R

})gj6D{v \0
cZ!~$Jo\E051Testing软件测试网kT)i+j[o

4x;gqqv4? MY$?0

`"]d0rR5V6q0为了创建第一个测试用例,你可以选择并连接任何选项。当你创建第二个测试用例时,跳出第一个用例没有使用的选项。继续增加测试用例直到全部图的节点(如图 11所示)被覆盖。通常你需要从4到6测试用例去覆盖全部需要测试的选项。然而,一些特殊的情形需要的更多。51Testing软件测试网 wkH;m@8P_*n4X


Ex4Q&n)m2hG0测试用例的分配可以在测试用例分配表格中描绘,如表 4所示。51Testing软件测试网]8x+z IJ{?~
步骤号变量或者选择TC1TC2TC3TC4
B1网站实际 URL实际 URL实际 URL实际 URL
B2电子邮件正常最少允许的字符数(1 字符)最多允许的字符数 (50 字符)正常
B2密码正常最少允许的字符数 (6 字符)最多允许的字符数 (10 )最少允许的字符数 (6 字符)
B3搜索字符串正常最少允许的字符数 (1 字符)最多允许的字符数(300 字符)正常
B4选择第一次选择最后一次选择第一次选择最后一次选择
B5行为选择添加到购物车中添加到购物车中添加到购物车中添加到购物车中
B6行为选择进行结帐进行结帐进行结帐进行结帐
B7送货地址确认地址信息确认地址信息确认地址信息确认地址信息
B8送货方式5 天3 天2 天头天晚上
B9支付方式确认信用卡信息确认信用卡信息确认信用卡信息确认信用卡信息
B10行为选择下订单下订单下订单下订单

!U9a F0U L0表 4 描述了图11中每列包含不同的测试用例。每一行相应的是用户输入的变量。51Testing软件测试网u6Izy ~A`

51Testing软件测试网){La*gn:X

步骤 4:为变量赋值51Testing软件测试网s$Jw7Xw2IoP$c

51Testing软件测试网I~!V/T!R U?%V$Cm

在此步中,你替换如"一个非常长的名字" 或"扩展很长的电话号码"这样的占位符为像"Georgiamitsopolis" 和 "011-48 (242) 425-3456 ext. 1234"这样实际有价值的东西。在此步,你还可以分裂表 4所示的表格中的测试用例,为每个测试用例创建独立的表格。51Testing软件测试网5CfD*m\w;y%MA&w

51Testing软件测试网4t xyt'eD

如书籍订购使用用例的测试用例 1,你就可以创建一个像表 5这样的表格。这就给你的测试者创建一个文档。测试者将跟随总队2和3的方向,并且记录纵队5,6,7的结果。51Testing软件测试网 W)KDVI;?:~X:K/~

51Testing软件测试网1@,o:k3D(?/Pp0L
表 5:最终的测试用例51Testing软件测试网D2|'Y8Xb G
步骤号变量或选择预期结果实际结果通过/失败注解
B1网站www.amazon.com登陆界面
B2电子邮件地址jsmith@hotmAIl.com
B2密码Johnsm主界面
B3搜索字符串“Rational”书本列表
B4书本选择第一次选择书本详情
B5行为选择添加到购物车中购物车的内容
B6行为选择进行结帐地址提示
B7送货地址确认地址信息送货提示
B8购物方式5 天支付提示
B9支付方法确认信用卡信息确认提示
B10行为选择下订单订单号

ebm^ }.xe0RequisitePro再一次帮助你创建追踪关系。在产生了全部的测试用例以后,你可以设置从场景到测试用例的追踪。

#s`(k_*l0

8U3K d@ _R0图 12显示了全部的场景:从不同的可选流程合并中产生21个场景。51Testing软件测试网Td ~7p7| bF

51Testing软件测试网(y*y:Z%K:B*f$m-XR

51Testing软件测试网[;{%ex%U^$A7|R
图12 :追踪矩阵51Testing软件测试网gx6P3X qh~ ^
51Testing软件测试网y;z#k|3e@0q:m

#s D3D ]4ee051Testing软件测试网F|3H/f ~)K*^8ZR

Q5Yh*gN0?za1D&c^0

vg$Y"~8U:s6}0在设置了场景和测试用例之间的追踪关系后,我们可以创建一个显示从用例到测试用例全部追踪方法的追踪树。51Testing软件测试网{Ao;S rf8D

+KN8^4Wel0这里有两个选项。第一个选项——如图 13显示——用于追踪到用例外,用来显示上层的用例并且追踪场景和测试用例。51Testing软件测试网'^/]'RD"F"@;h-k"~k`Z

xFP.j*ZSm0
Jc#D0u%R0图 13:用例的追踪树51Testing软件测试网5T5z Cp_fps

(h x%Z.~[.a x0
8l/|._^,Hk051Testing软件测试网 PVeig
51Testing软件测试网4Q3O'C{[ln(v

d:HM vZ ?t0第二个方法是测试用例中的追踪,如图14所示。在此种情况下,追踪树看起来会有不同:你从测试用例开始,然后追踪场景和用例。51Testing软件测试网5M/i-?P IK.SKZ J

51Testing软件测试网nvZ"CX4Z


N-i ^ _#Bx-U"`^.M ^9O0图 14:测试用例的追踪树51Testing软件测试网W)e3s(^(F?+yxV

51Testing软件测试网V)qb.?x&}


nlH8DPs(^'i%_0
2N[/rE?4b;~5t&[&P051Testing软件测试网w2JoYw3f

51Testing软件测试网a0gD&t0u7a^

进行这种追踪的一个最主要的原因--并且花费时间将其加入到RequisitePro中--是为了让你知道当一些事情发生变更时需要重新测试什么。追踪和所谓的可疑关联,如图 15所示,为你显示了由于先前的场景和用例发生了变化,哪些测试用例也要随之改变。

8nR y}u051Testing软件测试网Br%W+hI:M

51Testing软件测试网 C-y:?7MC0p
图 15:可疑关联51Testing软件测试网Vq&ArjR\g(@

S*]2VQ(vlQ0
3e&B2G.m ZC051Testing软件测试网lY dcYL9jDH
51Testing软件测试网a_ G)_*Fg SL

51Testing软件测试网k ]WT h*EA Q r

映射到IBM Rational统一过程

We} fsR9A5N"y051Testing软件测试网K(G%kE!Hg(C

如何映射到IBM Rational统一过程(RUP)呢?它们大多数发生在过程中的先启和精化阶段。只要你有了用例之后,我们就可以开始建立场景和测试用例。图 16描述了这些活动对应于RUP方法论中的哪些地方。51Testing软件测试网!RflS8WF2G.O

51Testing软件测试网d'{"vS j1h An.eb0N

51Testing软件测试网/d FUneX
图 16:映射到RUP阶段的追踪活动

+W W\:Aj/W[?|^0

1Y#^[.F3yV%v0 51Testing软件测试网,M.HBeT H
51Testing软件测试网2?zj A:u F"g;D)U

51Testing软件测试网X(t2i!dWQD

当建立场景和测试用例时,你可以给用例设计者反馈并且精炼一下需求。这有助于在过程中尽早改变一些任务,并且最终为团队尽快完成任务做出贡献。在整个精化阶段以及几乎是整个构造阶段中都会使用测试用例。

^g%T8}7JI051Testing软件测试网]$uEnC

总结

&KCE~@1g0

)@6F g4qy"mck}KD"Wf0本文介绍了一种从用例中产生功能测试用例的方法。这是使用此方法的一些益处:

  • 用更自动化的方法产生测试用例
  • 避免重复测试
  • 更好的测试覆盖
  • 简化了测试进度的监控
  • 简化了测试人员之间的工作负载平衡
  • 简化了回归测试
  • 通过把一些任务从构造阶段移到精化阶段来缩短项目时间
  • 能够帮助尽早地发现缺失的需求

.U3C*T@+bN0

TAG: Rational

风在吹的个人空间 引用 删除 风在吹   /   2007-06-15 13:47:56
图片没传
 

评分:0

我来说两句

Open Toolbar