自动化测试旅程终于开始了!!

(转)如何编写更好的测试用例(一)

上一篇 / 下一篇  2008-11-22 23:45:28 / 个人分类:测试用例

投资于测试用例

VLu!?/nm-\k$@$I0  为了改进测试用例什么是值得做的?什么风险会促使你投资于更好地测试用例?在他们覆盖软件需求时,还不是足够的好吗?对这些问题的答案是,粗劣的测试用例的确会将你暴露于相当大的风险之下。他们在理论上可能覆盖了需要,但很难用来执行测试,并会获得含糊不清的结果。好的测试会获得更可靠的结果,而且会在以下三个范畴降低成本:

(c%yR0D8z5_&MS051Testing软件测试网 q^Ys\-m+`%rQ

  1.生产率 - 更短的时间撰写和维护用例51Testing软件测试网 _*G tIo/`

'W'm1f @1jMM0  2.可测试性 - 更短的时间来执行他们

fdI7X1u+V\0

j5^lK} {0  3.计划的可靠性 – 估算时有更好的可靠性51Testing软件测试网i$py$`0Ok+~8w

CU)@J0Y G'kxaw0  本文介绍如何避免因为粗劣的测试案例必然带来的损失。将让我们看到罩盖下各种不同的测试用例,并展示在控制风险的质量中,在何处以及如何建立测试用例。对如何提高生产率、可用性、计划的可靠性和资产管理,将给出切实可行的建议。一旦你了解测试用例是什么和为什么的问题,您可以使用一个标准的核查表,像附录A一样的一个附件,来确定风险领域并改善您当前的和未来的测试用例。

8C1iEJ'\%R051Testing软件测试网x&F;Kw V!Z{

  在准备测试软件的过程中,最繁杂的工作是编写测试用例。建立健壮的测试用例的动机是由可能性来激励的,测试用例将被重用于维护版本。超过所有软件开发工作的半数的工作是维护项目。你怎么才能编写良好的测试用例,它将提供经济的测试,首次测试后,在回归测试时将再次使用?让我们通过掀起测试用例的罩盖,看看里面是什么,来开始我们的答案吧。

wi5uD!{ z051Testing软件测试网9c Nu^XJg(z

  ● 看测试用例内部51Testing软件测试网}Jb_^

!z7\FS;b8S&B6K0  ● 测试用例的内容(element)51Testing软件测试网-f f,b4fG8P

51Testing软件测试网2\ cxc@4kO#Bl |#p

  ● 针对我们的目标,一个测试用例是一套基于系统需求的,带有预期结果的活动。用例包括这些内容:51Testing软件测试网s*\|`0RB"W

51Testing软件测试网5C-`3D@ I-[N `p*{

  ● 测试的目标或将被测试的需求的描述51Testing软件测试网F,kLjw|(@

;Om7gcSZ0  ● 它将被如何测试的方法51Testing软件测试网;F ZkU[u*]"_L

51Testing软件测试网M$l P0p Sm?+}

  ● 测试的设置:接受测试的应用程序的版本、硬件、软件、操作系统、数据文件、安全访问、时间、逻辑的或物理的起止日期、先决条件(如其他测试),以及对于被测需求(一个或多个)的任何其他有关的设置信息51Testing软件测试网t g+Q,P1[/]'G W p\^

51Testing软件测试网m0^2m@C7Yy

  ● 活动和预期的结果,或输入和输出

+uQk;?b3UQ051Testing软件测试网RHPS6m

  ● 任何校样或附件(可选)

L{X L%T\MJ9s0

q6[y9IX8gE9|-?0  这些同样的内容必需被用在每一级测试——单元、集成、系统、或验收测试的测试用例中。对于功能、性能和可用性测试,它们同样有效。“预期结果”的标准并不适用于一个探索性质的诊断测试或其他测试。实际上诊断测试在其用例中需要其他内容。然而,如果测试是测量性能,那性能应属于一个范围,这个范围就是一个预期结果。

&w*x0lD.^)J ?'SD:_AY051Testing软件测试网#Q K7}4V8w/P

  测试用例的另一种描述是,说明、目标和组织安排是用例或规格说明。完成它的步骤被称为脚本。而另一种观点认为目标或说明是一个场景(scenario)或功能用例(use case)。这些观点都符合本文提议的质量评估和改进。51Testing软件测试网g!A5A uL^m#j

^W&cfc{:d:N&xA9xV0测试用例的质量51Testing软件测试网/o8o'Y:AD7v3Q[;G x

k4ww)o E k,QQ]0  有一种误解,以为编写质量是主观的,就像看一幅画,哪里美丽只在观看者的眼睛里。51Testing软件测试网x }Q lk

51Testing软件测试网wn6NK4MJW

  事实上,编写质量是客观的和可测量的。就像附录A一样,建立一个测试用例的构成内容(目标、方法、组织安排、输入和输出等)的客观核查表,这是很简单的。然后走查每个用例。内容是有或者没有?除了其构成,用例也必须符合这些质量标准:

\ ZE&u7C051Testing软件测试网-X#c*?-J\"u

  精确的。它们只测试它们描述中所说的它们将测试的内容。

+o&w u2e/qj051Testing软件测试网1E1l$n z9\6y|F

  经济的。它们只有对于它们的目标所需要的步骤或信息。它们不给出软件导航。

SS'J1I xl tH051Testing软件测试网AM%eN0tK

  可重用的,自立的。一个测试用例是一个对照试验。每一次不管是谁测试它,它都应当得到相同的结果。如果只有作者可以测试它并获得结果,或如果不同的测试者测试,得到不同的结果,那该测试用例就需要在组织或活动上做更多的工作。51Testing软件测试网 TJ E1EW"V

eAv.jH|A0  适合的。一个测试用例必须适合测试者和环境。如果它在理论上是合理的,但需要所有的测试者都没有的技能,那它将会被束之高阁。即使你知道谁在测试第一次,你也需要考虑维护和回归时的情况。51Testing软件测试网 VbuN T U5Uu\

51Testing软件测试网+Q9@&eZ3[+ws~z

  可追溯的。你必须知道此用例测试的是什么需求。它可能满足所有的其他标准,但如果其结果是,通过或失败都无关紧要,那为什么还要费心做它呢?

`vpEL5q)E;|G2X051Testing软件测试网7}%mpota }}8@

  可自我清理的。运行后自动收起。它返回测试环境到预测试状态。例如,它不会留下测试系统设置在错误的日期。自动脚本可调用其他脚本来做到这一点。不要把这一标准与破坏性混淆。测试应该是破坏性的,包括试图通过可控制和可重复的方式打破一个模拟生产环境。51Testing软件测试网-}}U1|:sv

51Testing软件测试网 L#{R|{Z'Gq"Li

  这些标准也是客观的和可测量的。它们也可以被添加到您的核查表。

M1]]3Qr3R'F0

fMp"z3yH0  如果谁知道需求和受测应用程序,那他应该填写该核查表作为一个同行审查的一部分。51Testing软件测试网l2d0K2eI-jx

Uw1e-F3IOU0  遵循多少标准只有测试后才能知道,但它们都是可测量的。对于新的测试编写者,这是一种特别有用练习,看看他们在哪块始终没有达到某一要素,或不符合某一标准。

nOW!cd3j0

Z+@+ar2^DKe,m~@0测试用例的格式51Testing软件测试网A/w1? eA1{$P

51Testing软件测试网rOw+im3h~h{5q

  一个测试用例看起来像什么呢?它们似乎分为三个主要群组:分步、矩阵和自动化脚本。当然自动化脚本将作为一个在线文件来运行,毫无疑问,其他两个必须是基于纸张的。他们也可以是在线的。让我们来看看每一个的格式:

UU-MD"Rz(bG0

NxXJ s,H-_0  分步。图1显示了这个基本的格式模样。这个格式的一个完整的视图,在一个带有其他测试内容的模板中,作为附录B来显示。51Testing软件测试网Np"|)o o4iP-A9v!N

51Testing软件测试网[1R`9eBV

步骤

%[0`z%l:q8y@@f fB0

活动

_|qOv!d q}H0

预期结果

s%?l`0~0|0

1

6Ph'n{b6a0

输入新的名称和地址。按<OK> 。51Testing软件测试网H6GJjd

显示屏幕008新名称的详细信息。51Testing软件测试网.ql x:|+J0][q&Y-Q

251Testing软件测试网4B;aL2W5ws8Z

用自然的数据填充所有空格。抓屏。按<OK> 。

3k(iP6Q$shJp0

显示屏幕005维护。51Testing软件测试网$e B-e(_#~q,~~(d3`

351Testing软件测试网2oPc.ch:aT)L

点击<Inquiry>按钮。

;a1z*D l!L&B|4H0

显示屏幕009查询的详细信息。

7RExp\)FX0

451Testing软件测试网CJ"t6G5?*d#i

从抓屏上输入名字。按<OK> 。51Testing软件测试网#w4[D^x|*O

显示屏幕010记录详细信息。51Testing软件测试网3| [:n)j*P}$z

5

5hH_E |X0d0

比较记录细节和抓屏。

:H O|XJ Q0Lf-xE0

所有详细信息完全匹配。51Testing软件测试网7I3PI @,D!T2c'A%b?

d:s:t-iES1f0

图1 - 分步测试用例详细信息51Testing软件测试网'Y&td*wC%_n:m

51Testing软件测试网\_2f7z(h4\#O

  矩阵或表格。图2显示了这个格式的基本模样。这个格式的一个完整的视图,在一个带有其他测试内容的模板中,作为附录C来显示。

"u W+wq:j"Hy0

#[R9zY]7tL)Nu0

日期51Testing软件测试网3R^Gx(x Y#D

1/96后受雇51Testing软件测试网7y1y~#]j@~ {[

401K

/]x,o#u*[0

生命险

gm!m+n^}0

付款数

CQU+vC_)d{!]*N0

10/25/99

~Li*dS0

Y51Testing软件测试网N-|7AU1IC/p2^LD5x!_

151Testing软件测试网Mlt1w+Na)Ap

351Testing软件测试网?Kn@:qF~f

$24.50

x7^p;b BdT0

1/4/98

e#TW&TZ0

Y51Testing软件测试网$OQ?N6V#O

3

v\"p.eK|wIG$I/?a0

151Testing软件测试网8T(iI3_@:e:?5P_

$34.0051Testing软件测试网&e6|?[4kW

3/6/9651Testing软件测试网#v*|K,I`\!|

N51Testing软件测试网2QCR^K(M4^@R8o]

2

[-Q'Vj2B0

551Testing软件测试网JaY1R p6P

$48.0051Testing软件测试网Z{:{lX(s3vv

8/15/9651Testing软件测试网_`2Qp&aA)X

Y51Testing软件测试网:x"~U-}1N.D7a,[o

2

kHU7fA9Kq0

5

V}1M+W&@)d@ [Pn0

$86.2551Testing软件测试网;z0N[RYAy

8/15/96

-SnZ1[5o%K6Msq0

N51Testing软件测试网dI0b%X1w@Q

251Testing软件测试网:iLI*|"i'u?

5

/Y;|5p$bA}1[+b?#qNM0

$105.0051Testing软件测试网l!zo!Y4M@#`6Jf

C(S)nGo-Y0

图2 - 矩阵测试用例详细信息51Testing软件测试网 aN~;`B`I

MA o;K~IfY*j0  自动化脚本。图3显示了这种格式的模样。
7Y!x"us/e8k p-@051Testing软件测试网Q KW k$cM8?cQ8?

*EX7RY5HM2X0

51Testing软件测试网+oQ;w7g$X!F*L

# Open the Fax Form51Testing软件测试网 aA]t7EX(~&Z

Godwv4k:THCx.I0menu_select_item ("File;Fax Order...");51Testing软件测试网}:d2[3{^/]4^7w

51Testing软件测试网`7[?3o6_'a$ZR,i

set_window("Fax Order");

2S |z O*rk8f;l@zJ0

q;SyH]wc1A{0# Retrieve the Fax Order information and compare it to data from the main window edit_get_text51Testing软件测试网0J)D6m$Ks ?#r%V

?,o M$t9v&n0("Arrival:", text);

p)zo$SD0

_4fn/n,ws0if(main_data["arr_time"] != text)

(R s2xw2D'M%@5g(RK6E051Testing软件测试网'uU4J+s;@0C'm%e"d"b9u

{

x^1G.ptWzk:d051Testing软件测试网\ x6JxjJ~9J6}

failure_msg = arrival_fr_mismatch;

Aw2{D1wI a(B1y0

3K3dS,s!q0result = FAIL;51Testing软件测试网U@5E5g1_\3R

2K oh(@3a0

图3 - 自动化脚本测试用例详细信息51Testing软件测试网T7s,g B&Kg jo8z$Yt

投资于测试用例

&x_7t*H Zp L0

+k*GR)bf)]~nQ N0  为了改进测试用例什么是值得做的?什么风险会促使你投资于更好地测试用例?在他们覆盖软件需求时,还不是足够的好吗?对这些问题的答案是,粗劣的测试用例的确会将你暴露于相当大的风险之下。他们在理论上可能覆盖了需要,但很难用来执行测试,并会获得含糊不清的结果。好的测试会获得更可靠的结果,而且会在以下三个范畴降低成本:51Testing软件测试网]2e,R#d1k

51Testing软件测试网0i&x7NKGQ{&m7U!P

  1.生产率 - 更短的时间撰写和维护用例

(d O B] h#K|051Testing软件测试网;Hio3^iR+[ J(O!y{R

  2.可测试性 - 更短的时间来执行他们51Testing软件测试网RU+Wd4ne^8{f:] mJ

` tF3rx7^ a0  3.计划的可靠性 – 估算时有更好的可靠性

.AgRY+j`'z7G0

q+G7~UcKy:oiH5kc0  本文介绍如何避免因为粗劣的测试案例必然带来的损失。将让我们看到罩盖下各种不同的测试用例,并展示在控制风险的质量中,在何处以及如何建立测试用例。对如何提高生产率、可用性、计划的可靠性和资产管理,将给出切实可行的建议。一旦你了解测试用例是什么和为什么的问题,您可以使用一个标准的核查表,像附录A一样的一个附件,来确定风险领域并改善您当前的和未来的测试用例。

#i M-|L{PK0

+WUT6i:uw`#u0  在准备测试软件的过程中,最繁杂的工作是编写测试用例。建立健壮的测试用例的动机是由可能性来激励的,测试用例将被重用于维护版本。超过所有软件开发工作的半数的工作是维护项目。你怎么才能编写良好的测试用例,它将提供经济的测试,首次测试后,在回归测试时将再次使用?让我们通过掀起测试用例的罩盖,看看里面是什么,来开始我们的答案吧。

;a-`(j9k7v#d~)@0

:~;~!y%S8E~$C'u0  ● 看测试用例内部

Je0]ns n/m051Testing软件测试网?cb;Ki!xt

  ● 测试用例的内容(element)51Testing软件测试网Q aR2k}

z+zW&Ep _ Nq:~0  ● 针对我们的目标,一个测试用例是一套基于系统需求的,带有预期结果的活动。用例包括这些内容:51Testing软件测试网 P(@Q|'U I+O

3fh;F1r `T0  ● 测试的目标或将被测试的需求的描述

&I ^5rH"Pr(v0

^"x+k Y)\5W#J0  ● 它将被如何测试的方法

0B@~i&}vL)z5g051Testing软件测试网f ?E.sj(_5kH#o

  ● 测试的设置:接受测试的应用程序的版本、硬件、软件、操作系统、数据文件、安全访问、时间、逻辑的或物理的起止日期、先决条件(如其他测试),以及对于被测需求(一个或多个)的任何其他有关的设置信息

3xR4g#eJ Z+T5O051Testing软件测试网;l1[3@ j q jdt4b0U8P

  ● 活动和预期的结果,或输入和输出51Testing软件测试网+Mf w'Q m'\

51Testing软件测试网%tZO c,t2@(Nk8FV|

  ● 任何校样或附件(可选)

!P,n#Y y6P051Testing软件测试网H2_K ?-iAg$e/h3A

  这些同样的内容必需被用在每一级测试——单元、集成、系统、或验收测试的测试用例中。对于功能、性能和可用性测试,它们同样有效。“预期结果”的标准并不适用于一个探索性质的诊断测试或其他测试。实际上诊断测试在其用例中需要其他内容。然而,如果测试是测量性能,那性能应属于一个范围,这个范围就是一个预期结果。

9G?+X(s.G(]B_ J0

? n]1J]1v }1IQ9p0  测试用例的另一种描述是,说明、目标和组织安排是用例或规格说明。完成它的步骤被称为脚本。而另一种观点认为目标或说明是一个场景(scenario)或功能用例(use case)。这些观点都符合本文提议的质量评估和改进。51Testing软件测试网S%K$u@-WLvhQ

YC N[_?m0测试用例的质量51Testing软件测试网5Y&V;V3H&@%U4o l~

51Testing软件测试网7J] a5m2qe x

  有一种误解,以为编写质量是主观的,就像看一幅画,哪里美丽只在观看者的眼睛里。51Testing软件测试网6P}k#?@(P

"N*[D ]kmU7q S \9~0  事实上,编写质量是客观的和可测量的。就像附录A一样,建立一个测试用例的构成内容(目标、方法、组织安排、输入和输出等)的客观核查表,这是很简单的。然后走查每个用例。内容是有或者没有?除了其构成,用例也必须符合这些质量标准:

:C2AIlr051Testing软件测试网 C(l8nj5awJ)h\

  精确的。它们只测试它们描述中所说的它们将测试的内容。

\+o9i(|PNd0

m7o5Rx/{o0  经济的。它们只有对于它们的目标所需要的步骤或信息。它们不给出软件导航。

!\vBj,H[FLN/{P051Testing软件测试网~|I Q G,wE

  可重用的,自立的。一个测试用例是一个对照试验。每一次不管是谁测试它,它都应当得到相同的结果。如果只有作者可以测试它并获得结果,或如果不同的测试者测试,得到不同的结果,那该测试用例就需要在组织或活动上做更多的工作。51Testing软件测试网M!deGu"|:e Q!h Q

51Testing软件测试网#lN;P H M+wDBI%b

  适合的。一个测试用例必须适合测试者和环境。如果它在理论上是合理的,但需要所有的测试者都没有的技能,那它将会被束之高阁。即使你知道谁在测试第一次,你也需要考虑维护和回归时的情况。

C8js&t zyQjLu051Testing软件测试网'U?4PFpv+m

  可追溯的。你必须知道此用例测试的是什么需求。它可能满足所有的其他标准,但如果其结果是,通过或失败都无关紧要,那为什么还要费心做它呢?

~V{zd'R2dEi C051Testing软件测试网^t D ?:_1yz;g/hf*y

  可自我清理的。运行后自动收起。它返回测试环境到预测试状态。例如,它不会留下测试系统设置在错误的日期。自动脚本可调用其他脚本来做到这一点。不要把这一标准与破坏性混淆。测试应该是破坏性的,包括试图通过可控制和可重复的方式打破一个模拟生产环境。

+Y!PIhUq4@051Testing软件测试网 T r4G ?0RL

  这些标准也是客观的和可测量的。它们也可以被添加到您的核查表。

DmR)c G3[0

v#|]mu%xa|0  如果谁知道需求和受测应用程序,那他应该填写该核查表作为一个同行审查的一部分。

!S2Yzo1Ti.AA051Testing软件测试网Q.W&n }&M

  遵循多少标准只有测试后才能知道,但它们都是可测量的。对于新的测试编写者,这是一种特别有用练习,看看他们在哪块始终没有达到某一要素,或不符合某一标准。

"Q+xYZX\0

TAG: 测试技术 测试用例

 

评分:0

我来说两句

日历

« 2024-05-13  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 4682
  • 日志数: 10
  • 建立时间: 2008-11-21
  • 更新时间: 2009-07-12

RSS订阅

Open Toolbar