转:软件测试基础:测试用例设计
测试需求收集完毕后,开始测试设计。测试用例是什么?测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。设计测试用例需要考虑以下问题:
I2lIQ4F#c2y x0z8u!w\(k0sYM'mfQ7H0测试用例的基本格式
\8t'oHYM XbY0)z'i[R\.EFO0软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果,下面逐一介绍。
L9tLO;nd-I&k06Io,B`IYvI0用例编号: 测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则:PROJECT1-ST-001,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。51Testing软件测试网,wb+a1?C/BG
D \gy xS9M0测试标题: 对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如“测试用户登录时输入错误密码时,软件的响应情况”。51Testing软件测试网+ll!G:{2`t+r O\6`-o+j
c+v b^C0重要级别: 定义测试用例的优先级别,可以笼统的分为“高”和“低”两个级别。一般来说,如果软件需求的优先级为“高”,那么针对该需求的测试用例优先级也为“高”;反之亦然,51Testing软件测试网y-Q9dC tzG
51Testing软件测试网 o/zg6R3e测试输入: 提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
#I4Z H-Vl&A051Testing软件测试网0bFp'aBvV操作步骤: 提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。51Testing软件测试网5S+g3L eZ
s!]+L/s [Fj Rl\ En0预期结果: 提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。51Testing软件测试网6nX0Z7H mg m2{J
51Testing软件测试网zRz#r4A0sA软件测试用例的设计主要从上述6个域考虑,结合相应的软件需求文档,在掌握一定测试用例设计方法的基础上,可以设计出比较全面、合理的测试用例。具体的测试用例设计方法可以参见相关的测试书籍,白盒测试方法和黑盒测试方法在绝大多数的软件测试书籍中都有详细的介绍,这里不作赘述。51Testing软件测试网9Nw6UHC\)|
51Testing软件测试网2k+F3T rH'O重用同类型项目的测试用例
$fo2`2Q"tXf\0,o7k'_/E+m"C0如果我看得远,那是因为我站在巨人的肩上 --牛顿。51Testing软件测试网:F0s:Y$aL_ A
;M$G Y t6MN*c0一般来说,每个软件公司的项目可以分为固定的几大类。可以按业务类型划分,比如ERP软件、产品数据管理软件、通信软件、地理信息系统软件等等;可以按软件结构来划分,比如B/S架构的软件、C/S架构的软件、嵌入式软件等等。参考同类别软件的测试用例,会有很大的借鉴意义。如果,公司中有同类别的软件系统,千万别忘记把相关的测试用例拿来参考。如果,系统非常接近,甚至经过对测试用例简单修改就可以应用到当前被测试的软件。“拿来主义”可以极大的开阔测试用例设计思路,也可以节省大量的测试用例设计时间。51Testing软件测试网!T Y0x~9o.SY
51Testing软件测试网$|2fQ8a2NXZ利用已有的软件Checklist51Testing软件测试网`Zw+K;e;Z4d
51Testing软件测试网FQ ~a;mp*T在上面一个小节中,按照不同的规则划分了不同的软件类型。每种类型的软件都有一定的测试规范,比如,WEB软件系统在系统测试过程中,会有一系列的范式,比如针对Cookie就会有很多测试点。在设计测试用例的时候,不妨到网上去搜索相关的Checklist,不过国内外的网站很少有这方面的资料,即便有,也不是特别系统。可以先找一份粗糙的Checklist,然后,在设计测试用例的时候不断的去完善它,以作为下次测试用例设计的基础。
&SdE]Ol9F051Testing软件测试网I%E8v {(y5@ o加强测试用例的评审51Testing软件测试网!v @/{d8^"BVB
51Testing软件测试网$Q~GgB4s(rF测试用例设计完毕后,最好能够增加评审过程。同行评审是CMM3级的一个KPA,如果因为公司没有通过CMM3级,就不开展同行评审是不恰当的。测试用例应该由产品相关的软件测试人员和软件开发人员评审,提交评审意见,然后根据评审意见更新测试用例。如果认真操作这个环节,测试用例中的很多问题都会暴露出来,比如用例设计错误、用例设计遗漏、用例设计冗余、用例设计不充分等等;如果同行评审不充分,那么,在测试执行的过程中,上述本应在评审阶段发现的测试用例相关问题,会给测试执行带来大麻烦,甚至导致测试执行挂起。51Testing软件测试网I?b8p,h_3m-y
LJt.@){4]*S}0定义测试用例的执行顺序
c$DLk;@Wz0
I%K:oIW-Pos0在测试用例执行过程中,你会发现每个测试用例都对测试环境有特殊的要求,或者对测试环境有特殊的影响。因此,定义测试用例的执行顺序,对测试的执行效率影响非常大。比如某些异常测试用例会导致服务器频繁重新启动,服务器的每次重新启动都会消耗大量的时间,导致这部分测试用例执行也消耗很多的时间。那么在编排测试用例执行顺序的时候,应该考虑把这部分测试用例放在最后执行,如果在测试进度很紧张的情况下,如果优先执行这部分消耗时间的异常测试用例,那么在测试执行时间过了大半的时候,测试用例执行的进度依然是缓慢的,这会影响到测试人员的心情,进而导致匆忙地测试后面的测试用例,这样测试用例的漏测、误测就不可避免,严重影响了软件测试效果和进度。因而,合理地定义测试用例的执行顺序是很有必要的。
5~8hLV9r0 51Testing软件测试网 T!D8u,K'j fl+f9W+HW
测试用例执行51Testing软件测试网F*E+E:yi4B e1D5p
yN4L9R&_(u
gVg
a
P0测试用例设计完毕后,接下来的工作是测试执行,测试执行中应该注意以下几个问题:
l| j5|'Dv @0