这篇文章是我对测试工作中的测试用例的编写的一点想法,拿出来与大家探讨一下。
从网上搜了两段对测试用例的定义:
1.测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
2.测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
可以看到,测试用例着重于对测试过程的描述,这个描述关系到你的测试用例的有效性。大家都知道,所谓好的测试是尽可能地在产品到达客户手里之前发现迄今为止没有发现的错误。那么好的测试用例应该能够指导实际测试的百分之八十,另外百分之二十与个人经验有关。
作为测试人员,我写过很多测试用例。在我发现,不管我的用例对整个测试过程的描述有多么详尽,却不能以此发现问题时,我觉得这种测试用例除了步骤清晰之外,作用不大。
那怎么样才能写出有效的测试用例呢?我们要明白以下几点:
首先,测试用例中的操作过程(操作步骤)是针对某项具体的功能的,而不是某一操作过程或者步骤;
其次,测试用例是我们用来帮助客户发现问题的,而不是我们给自己证明它没问题;
最后,测试用例不是一次性的,应该贯穿整个项目周期。
接下来,我举一个实际的测试用例:
***************************************************************************
#测试说明:测试表A中的右键“cut”功能。
编号 1
测试模块 表A
编号 1.1
测试功能 右键菜单
编号 1.1.1
测试功能点 cut
初始条件 表A正常打开;表A中有一行数据a
操作步骤 选中数据a,点击右键并选择“cut”;输入一空行,选中空行,点击右键并选择“paste”
附图 (对相应操作进行截图)
期望结果 a被cut;a被paste到空行
实际结果 a被cut;a被paste到空行
附图 (对实际操作后的结果进行截图)
测试结果 pass
测试说明 对“cut”的测试应该与“paste”关联起来
测试人 ##
测试时间 ####-##-##
****************************************************************************
如此,用例的操作描述可以以功能为中心;针对不同情景(比如cut某个cell,paste到txt文件等等)可以添加不同的用例;测试中发现的bug也有对应的用例作为依据。
当然,测试用例不仅有功能测试用例,还有单元测试用例,性能测试用例,压力测试用例,自动化测试用例等。虽然不同的测试有不同的属性,但是测试用例的属性都是差不多的,不同的可以是初始条件,也可以是期望结果。至于其他类型测试用例的编写,我们可以结合实际的场景进行描述。
PS:本来想谈谈自己的一些生活上的感悟的,转念一想,又似乎没有什么好说的。其实,生活中的许多困难,事后一想,也没有什么大不了的。