(转)如何编写更好的测试用例(一)
上一篇 / 下一篇 2008-11-22 23:45:28 / 个人分类:测试用例
VLu!?/nm-\k$@$I0 为了改进测试用例什么是值得做的?什么风险会促使你投资于更好地测试用例?在他们覆盖软件需求时,还不是足够的好吗?对这些问题的答案是,粗劣的测试用例的确会将你暴露于相当大的风险之下。他们在理论上可能覆盖了需要,但很难用来执行测试,并会获得含糊不清的结果。好的测试会获得更可靠的结果,而且会在以下三个范畴降低成本:
(c%yR0D8z5_&MS051Testing软件测试网 q^Ys\-m+`%rQ1.生产率 - 更短的时间撰写和维护用例51Testing软件测试网 _*GtIo/`
'W'm1f@1jMM0 2.可测试性 - 更短的时间来执行他们
fdI7X1u+V\0j5^lK} {0 3.计划的可靠性 – 估算时有更好的可靠性51Testing软件测试网i$py$`0Ok+~8w
CU)@J0Y G'kxaw0 本文介绍如何避免因为粗劣的测试案例必然带来的损失。将让我们看到罩盖下各种不同的测试用例,并展示在控制风险的质量中,在何处以及如何建立测试用例。对如何提高生产率、可用性、计划的可靠性和资产管理,将给出切实可行的建议。一旦你了解测试用例是什么和为什么的问题,您可以使用一个标准的核查表,像附录A一样的一个附件,来确定风险领域并改善您当前的和未来的测试用例。
8C1iEJ'\%R051Testing软件测试网x&F;Kw V!Z{在准备测试软件的过程中,最繁杂的工作是编写测试用例。建立健壮的测试用例的动机是由可能性来激励的,测试用例将被重用于维护版本。超过所有软件开发工作的半数的工作是维护项目。你怎么才能编写良好的测试用例,它将提供经济的测试,首次测试后,在回归测试时将再次使用?让我们通过掀起测试用例的罩盖,看看里面是什么,来开始我们的答案吧。
wi5uD!{ z051Testing软件测试网9c Nu^X Jg(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|(@
;Om7gc SZ0 ● 它将被如何测试的方法51Testing软件测试网;F ZkU[u*]"_L
51Testing软件测试网M$lP0p Sm?+}● 测试的设置:接受测试的应用程序的版本、硬件、软件、操作系统、数据文件、安全访问、时间、逻辑的或物理的起止日期、先决条件(如其他测试),以及对于被测需求(一个或多个)的任何其他有关的设置信息51Testing软件测试网t g+Q,P1[/]'G W p\^
51Testing软件测试网m0^2m@C7Yy● 活动和预期的结果,或输入和输出
+uQk;?b3UQ051Testing软件测试网RHPS6m● 任何校样或附件(可选)
L{XL%T\MJ9s0q6[y9IX8gE9|-?0 这些同样的内容必需被用在每一级测试——单元、集成、系统、或验收测试的测试用例中。对于功能、性能和可用性测试,它们同样有效。“预期结果”的标准并不适用于一个探索性质的诊断测试或其他测试。实际上诊断测试在其用例中需要其他内容。然而,如果测试是测量性能,那性能应属于一个范围,这个范围就是一个预期结果。
&w*x0lD.^)J?'SD:_AY051Testing软件测试网#Q K7}4V8w/P测试用例的另一种描述是,说明、目标和组织安排是用例或规格说明。完成它的步骤被称为脚本。而另一种观点认为目标或说明是一个场景(scenario)或功能用例(use case)。这些观点都符合本文提议的质量评估和改进。51Testing软件测试网g!A5AuL^m#j
^W&cfc{:d:N&xA9xV0测试用例的质量51Testing软件测试网/o8o'Y:AD7v3Q[;G x
k4ww)oE k,QQ]0 有一种误解,以为编写质量是主观的,就像看一幅画,哪里美丽只在观看者的眼睛里。51Testing软件测试网x }Q lk
51Testing软件测试网wn6NK4MJW事实上,编写质量是客观的和可测量的。就像附录A一样,建立一个测试用例的构成内容(目标、方法、组织安排、输入和输出等)的客观核查表,这是很简单的。然后走查每个用例。内容是有或者没有?除了其构成,用例也必须符合这些质量标准:
\ZE&u7C051Testing软件测试网-X#c*?-J\"u精确的。它们只测试它们描述中所说的它们将测试的内容。
+o&wu2e/qj051Testing软件测试网1E1l$nz9\6y|F经济的。它们只有对于它们的目标所需要的步骤或信息。它们不给出软件导航。
S S'J1Ixl 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'F0fMp"z3yH0 如果谁知道需求和受测应用程序,那他应该填写该核查表作为一个同行审查的一部分。51Testing软件测试网l2d0K2eI-jx
Uw1e-F3IOU0 遵循多少标准只有测试后才能知道,但它们都是可测量的。对于新的测试编写者,这是一种特别有用练习,看看他们在哪块始终没有达到某一要素,或不符合某一标准。
nOW!cd3j0Z+@+ar2^DKe,m ~@0测试用例的格式51Testing软件测试网A/w1? eA1{$P
51Testing软件测试网rOw+im3h~h{5q一个测试用例看起来像什么呢?它们似乎分为三个主要群组:分步、矩阵和自动化脚本。当然自动化脚本将作为一个在线文件来运行,毫无疑问,其他两个必须是基于纸张的。他们也可以是在线的。让我们来看看每一个的格式:
UU-MD"Rz(bG0Nx XJ s,H-_0 分步。图1显示了这个基本的格式模样。这个格式的一个完整的视图,在一个带有其他测试内容的模板中,作为附录B来显示。51Testing软件测试网Np"|)o o4iP-A9v!N
51Testing软件测试网[1R`9eBV步骤 %[0`z%l:q8y@@f fB0 | 活动 _|qOv!d q}H0 | 预期结果 |