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

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

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

投资于测试用例51Testing软件测试网K.|$nx:SOWXE

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

D Xds$Z)P:\MlO051Testing软件测试网H9U;ZL,T r

  1.生产率 - 更短的时间撰写和维护用例51Testing软件测试网~$MZI|

;D8T9^x/eJ!G0  2.可测试性 - 更短的时间来执行他们

BZ"a4K;D7a)e051Testing软件测试网dn:ox;kQ}*U

  3.计划的可靠性 – 估算时有更好的可靠性51Testing软件测试网.Y7Hh)U V!m

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

${i d BHb,\0

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

doF_'^7f y051Testing软件测试网F8e4w2W2W-Z|].W

  ● 看测试用例内部

7t6bIT?/J051Testing软件测试网3k!S3eR'g2|W}R

  ● 测试用例的内容(element)51Testing软件测试网poR)@.~ [ kf

'Sq}k x4LN;g5c/d)?0  ● 针对我们的目标,一个测试用例是一套基于系统需求的,带有预期结果的活动。用例包括这些内容:

8DUpWfPh0

7|f i'T&u&Sm0  ● 测试的目标或将被测试的需求的描述

&B1Wi'y@6k1H*vJ0

^%cA!H3D/mN0  ● 它将被如何测试的方法

;vT7Xx&klN.Q6E0yZ051Testing软件测试网:sc9R2[K&D lQZ4N

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

51Testing软件测试网'RKU.vR'P$gQ2g

  ● 活动和预期的结果,或输入和输出51Testing软件测试网XsV] G

51Testing软件测试网7F F0wKY

  ● 任何校样或附件(可选)51Testing软件测试网jx,\U2y

51Testing软件测试网zM$M%scOl4m

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

s0`] lc)oe-I7Go0  测试用例的另一种描述是,说明、目标和组织安排是用例或规格说明。完成它的步骤被称为脚本。而另一种观点认为目标或说明是一个场景(scenario)或功能用例(use case)。这些观点都符合本文提议的质量评估和改进。

hnXU*g:s U3G0

6f6W'p V[6RTGz0测试用例的质量

c,^g1[Z3\:M0

UzH"NkpU0  有一种误解,以为编写质量是主观的,就像看一幅画,哪里美丽只在观看者的眼睛里。

S.xF5GM;nf0

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

:C+p.Y;y.upi0

`%ua.j u0  精确的。它们只测试它们描述中所说的它们将测试的内容。51Testing软件测试网G']~Xw8_!j

51Testing软件测试网ao0vO q

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

"S7Og:FOq051Testing软件测试网c E,pz6M:Hhel

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

fM)o:x'T ?+]0

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

.lYz} iA1c6u.i0

C\Na;d"w4K {0  可追溯的。你必须知道此用例测试的是什么需求。它可能满足所有的其他标准,但如果其结果是,通过或失败都无关紧要,那为什么还要费心做它呢?51Testing软件测试网i&F.{T;Dr|

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

c{r ~!|l0

!K G${VB k0  这些标准也是客观的和可测量的。它们也可以被添加到您的核查表。51Testing软件测试网+l$NKm? Rvo c

X1gFI9H$JnK%k#g0  如果谁知道需求和受测应用程序,那他应该填写该核查表作为一个同行审查的一部分。

(h(h*rl(Q/JyF0

f2d;| S+NQ0  遵循多少标准只有测试后才能知道,但它们都是可测量的。对于新的测试编写者,这是一种特别有用练习,看看他们在哪块始终没有达到某一要素,或不符合某一标准。51Testing软件测试网/C._]:dR

)i%~EbZ hy0测试用例的格式

/uQqS1yI-zt3j051Testing软件测试网`G3y:di {R Ng

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

51Testing软件测试网 | E-U/ts"Kvm;|

  分步。图1显示了这个基本的格式模样。这个格式的一个完整的视图,在一个带有其他测试内容的模板中,作为附录B来显示。

\+@;uV]b B051Testing软件测试网C8g2dHUc

步骤

b%ZG'R C0

活动51Testing软件测试网q `0M;SC q8i5K-V

预期结果51Testing软件测试网 }e Z]pJ"z2t

151Testing软件测试网]%^3W"N+V'Mxc

输入新的名称和地址。按<OK> 。51Testing软件测试网NvL)c s1[S

显示屏幕008新名称的详细信息。51Testing软件测试网'r;Kd0X)~

251Testing软件测试网I#[4Z&}8r

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

1Ei3A)t3p2u+IC0

显示屏幕005维护。

S1b-K,{dbh0

351Testing软件测试网(kU2ro-O

点击<Inquiry>按钮。

baE:?5y(f0

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

Wx ]Mn ^-U X0

451Testing软件测试网^+S)fD HhNETK

从抓屏上输入名字。按<OK> 。51Testing软件测试网q UlrK`

显示屏幕010记录详细信息。

7M5G]&a ~(Tq:bc0

551Testing软件测试网F'~8N)H_iV

比较记录细节和抓屏。51Testing软件测试网5peJuo P#QJ%oT`jc

所有详细信息完全匹配。

+} M/{;cbY0
51Testing软件测试网p;rL ~h,B

图1 - 分步测试用例详细信息51Testing软件测试网`B4I[g!F1Q

51Testing软件测试网9L"W'?*r,Y

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

h\L ?ih@051Testing软件测试网4C8{*h'[4{%wq

日期51Testing软件测试网 R?n0bWsP

1/96后受雇

\Qa\m O:l0

401K51Testing软件测试网i{6Z4g8]!`(q,|

生命险51Testing软件测试网"c#Z5m0^mc

付款数

Ob(E x.[O t0

10/25/9951Testing软件测试网*m6X+By$i

Y51Testing软件测试网){wTK+H

1

+O V8`R:y~e9g*T0

3

6wMC f TW6xf0

$24.50

O*q?\"ad@0

1/4/98

"KP U+dS&{*d/Z0

Y51Testing软件测试网1JRjUp-c ~1zoA ^

3

n_J.j5w0

1

aR"t A0nsz6D9JP0

$34.0051Testing软件测试网.qe(ry*i

3/6/9651Testing软件测试网J_O5W(x9m

N

D%Xl V O0

2

/G Bc[ };Qmn d0

551Testing软件测试网 M"e2K,g7o6W I2G

$48.00

"v byJ;x8DnI8P0

8/15/96

!N5k"ln|$\{0

Y51Testing软件测试网.Kh Gr!BwV

251Testing软件测试网:r~q6o,Xp

551Testing软件测试网&}f A DL,\

$86.25

w#vW,K}0

8/15/9651Testing软件测试网 X&` y9Q S[{

N

B${]~/_\/td0

2

pKy+mt Y [8B0

551Testing软件测试网?}2y7f%d7u#b ^

$105.0051Testing软件测试网kS0NO#Ta'{(P

W9B7Ao/ADwt6O0

图2 - 矩阵测试用例详细信息51Testing软件测试网:S"?;fS2m4e

~+?(z1kQ8Wi N0  自动化脚本。图3显示了这种格式的模样。
-g)I ?af1Q0

q gAV[.@051Testing软件测试网I H] p]

51Testing软件测试网.fE |vH

# Open the Fax Form

:d+h%cV3a]7B?6uk#[051Testing软件测试网2yTb:XG[

menu_select_item ("File;Fax Order...");51Testing软件测试网yo8[&j7[h`

51Testing软件测试网-HU0F Y6C

set_window("Fax Order");

C+G:~[W4F"[+D,l S051Testing软件测试网%l4X0HSsm0p+S.W B8H

# Retrieve the Fax Order information and compare it to data from the main window edit_get_text51Testing软件测试网]Ogj3x*b

51Testing软件测试网8a0Lb'vc9I@

("Arrival:", text);

g)NfKvW&m k%C |7b051Testing软件测试网7sI)o*i-e$W+\1rPo

if(main_data["arr_time"] != text)

7pu%Hje&}U0

o_ Y _K,L]0{51Testing软件测试网+rW|9b0hz+a6W

51Testing软件测试网jNR_0^ e

failure_msg = arrival_fr_mismatch;51Testing软件测试网4t\3^'^o!Y

51Testing软件测试网 W*R5d0NHe~/[yB

result = FAIL;51Testing软件测试网6f'Vd6OR%u;}

51Testing软件测试网&IOia Crs]"P

图3 - 自动化脚本测试用例详细信息51Testing软件测试网Q,W;k~ec#v

投资于测试用例51Testing软件测试网7Crvq&c6CBC5n

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

51Testing软件测试网_a b xA`.|$n

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

z_P.a VU#BzS0

e3Ou y;S+P3W)[#P3Q1NB:~-d^0  2.可测试性 - 更短的时间来执行他们51Testing软件测试网ez"O` `V)x

R_uE*O9b%S [0  3.计划的可靠性 – 估算时有更好的可靠性

y-O[yT4` iZ/r0

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

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

3iJ#pL"mWj051Testing软件测试网Wd-p7TE2D

  ● 看测试用例内部

C;hI!mOeV[?0

+_~;@oyw~9`0  ● 测试用例的内容(element)

YnL:`T7S2g,A0

a1jCd Z0  ● 针对我们的目标,一个测试用例是一套基于系统需求的,带有预期结果的活动。用例包括这些内容:51Testing软件测试网2K^\7}*}k

51Testing软件测试网M9f@"_E7czN

  ● 测试的目标或将被测试的需求的描述51Testing软件测试网8~6gh;I&M

51Testing软件测试网o;q(~\;I+PK

  ● 它将被如何测试的方法

J:GI3QP)L@;m0

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

,z:k#dc3Bl051Testing软件测试网KO C~D D

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

1S"N%P^ GLK;E @0

jL Y5_ZMSi%w0  ● 任何校样或附件(可选)51Testing软件测试网[&Ty8EznT'g1y;x

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

"t2tY*Q^2P0

];s&_E*E#\_bt0  测试用例的另一种描述是,说明、目标和组织安排是用例或规格说明。完成它的步骤被称为脚本。而另一种观点认为目标或说明是一个场景(scenario)或功能用例(use case)。这些观点都符合本文提议的质量评估和改进。

a/Q.uu+M:Aw0

Mh(_-yC {0测试用例的质量

4I qU,~'[0

7a _y+f.t8a0  有一种误解,以为编写质量是主观的,就像看一幅画,哪里美丽只在观看者的眼睛里。

iN V9H]z%tsP0

4FX@*y s"U ]rh0  事实上,编写质量是客观的和可测量的。就像附录A一样,建立一个测试用例的构成内容(目标、方法、组织安排、输入和输出等)的客观核查表,这是很简单的。然后走查每个用例。内容是有或者没有?除了其构成,用例也必须符合这些质量标准:51Testing软件测试网4{6}?;B e

$F/j O?"WI4[4GM0  精确的。它们只测试它们描述中所说的它们将测试的内容。51Testing软件测试网k6zLRAdP7WnP

ix:a_ac^0  经济的。它们只有对于它们的目标所需要的步骤或信息。它们不给出软件导航。51Testing软件测试网r)@Ok0Dx(r \ag}

51Testing软件测试网hk.H4k`g O.FY9~ UV

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

51Testing软件测试网S_2E(VtO X1mT5j

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

SH7r-CLi)hA051Testing软件测试网l$z(D.a5i{Q

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

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

Uj~E w:m6i"P m0

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

l-f K h4T QvJ _051Testing软件测试网mP'P auAuw.[

  如果谁知道需求和受测应用程序,那他应该填写该核查表作为一个同行审查的一部分。51Testing软件测试网2|2AQ9@.\h{{&e3T

51Testing软件测试网U+~Ae _)e6b?]&S

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

r-N$eT\0gH0

TAG: 测试技术 测试用例

 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

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

RSS订阅

Open Toolbar