游戏测试,关注测试管理,测试效率提高; hlearning@msn.com

软件测试基本功之----测试用例篇

上一篇 / 下一篇  2007-09-23 17:23:40 / 个人分类:测试总结

软件测试基本功之----测试用例

 

随着软件行业的快速发展,大家对软件的质量也越来越看重,关注。软件测试做为能尽可能发现软件中的BUG,减少软件成本,也在不断的高速发展,受人们关注,重视的程度也越来越大。从最初的程序员自己测试到后面独立的测试部门,测试职位的设立。以及软件测试的一整套方案,流程等。

 

一,            测试用例的重要性

什么是测试用例(testcase)?测试用例有什么作用?

测试用例:是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

测试用例的作用:

1, 通过一个用例来证明被测软件的某功能符合需求说明书中规定的要求,可以通过设计正反两方面的测试用例来验证

2, 可以保证一个软件被测试的有效性,使测试人员知道那些功能以被测,那些功能还需要测试,从而避免漏测,重复测,提高测试效率

3, 指导测试的工作,保证测试是有计划的实施,而不是随意性的测试

4, 为公司留下财富,为后期软件维护提高帮助,为公司新人进来提供指导,在测试的时候可以尽量把人为因素的影响减少到最小。保障软件测试质量的稳定

5, 可以做为评估测试结果的,为编写测试报告提供依据。

6, 分析缺陷的标准,通过收集缺陷,对比测试用例和缺陷数据库,分析确证是漏测还是缺陷复现。漏测反映了测试用例的不完善,应立即补充相应测试用例,最终达到逐步完善软件质量。而已有相应测试用例,则反映实施测试或变更处理存在问题。

二,            测试用例的设计:

 

测试用例设计这部分主要是根据我自身的经验来写,可能很多不足的地方,请大家指出。(这里写的测试用例都以黑盒测试为准,不设计到白盒测试)

1, 设计测试用例的模板:

我想,每个公司都应该有一套适合自己公司的测试用例模板。还是那句话,最好的并不是最适合自己的,适合自己的才是最好的。测试用例模板可以分为两部分:

1) 介绍部分:可以有这些:公司名称,保密等级,编写人员,日期,审核人,版本号,测试对象的介绍,测试的范围和目的,测试环境,定义术语,参考文档,用例执行情况,测试用例设计思路等

2) 测试用例部分:模块名称,测试类型,用例ID,用例目的,重要程度,测试过程分为(前提条件,测试步骤,期望结果,测试结果,测试结论)测试日期,备注。

现在打部分公司用来编写测试用例的软件应该都是EXECLWORD(那个叫微软NB撒),感觉上,在进行模块测试和系统测试设计用例的时,用EXECL来编写比较好,方便统计,查找测试通过的,没通过的用例,EXECL统计功能很强大。但是对于验收测试用例和性能测试用例,使用WORD会好点,因为验收测试用例和性能测试用例,一般都是一个用例一页,方便打印,而进行验收测试的时候,必须要把验收测试用例打印出给客户,而且验收测试用例一般都没系统测试那边多,一般是一个功能就是一个用例。(下面有2种测试用例的模板)

2, 测试用例设计的一些思路:

按照书上说的可以分为几大类:

1) 等价类划分

2) 边界值分析

3) 错误推测

4) 因果图

我认为测试用例的设计应该从深度和广度方面去想,即要考虑到被测模块所有功能,还要考虑他们的组合,以及和其它模块的组合。不单单要考虑正常情况下功能,还要考虑异常情况下软件的反应,不要仅只考虑一种测试环境下的情况,还要考虑多种环境下的情况,因为用户的环境是千变万化,不是能全部模拟出来的,只能尽可能的模拟,下面是我以前测试的一个模块:

禁用USB外接设备:

主要功能是:除了USB键盘和鼠标外,其它一切外接USB设备都不能使用。

(不知道大家能想到一些什么情况来设计测试用例),下面是我设计的一些思路:

1) 正常情况下运行该功能后,看USB键盘和鼠标能否使用

2) 正常情况下运行该功能后,USB键盘和鼠标拔插后能否使用

3) 正常情况下运行该功能后,USB键盘和鼠标拔掉,接上外接USB设备,能否正常使用

4) 正常情况下运行该功能后,USB键盘和鼠标拔掉,接上外接USB设备,插上USB键盘和鼠标,USB键盘和鼠标能否使用,外接USB设备能否使用

5) 正常情况下运行该功能后,接上外接USB设备(USB键盘和鼠标一直存在),外接设备能否使用

6) 重复拔出外接USB设备,看USB设备能否使用,USB键盘和鼠标是否会影响

7) 先插外接USB设备(能正常运行),再运行该功能,USB设备是否立即不能被使用

8) 外接USB设备正在拷贝文件,运行该功能后,是什么反应

异常情况下该功能的反应,如运行该功能后,电脑重启,电脑死机等会导致什么后果,是否是我们期望的。

多个USB接口情况下,该功能是否正常

对于不同USB设备是否该功能都有效果:如USBU盘,移动硬盘,MP3USB打印机等。

该功能运行后,是否能还原。还原功能是否正常。

。。。。等,上面这些,大家也应该想的到,下面这些大家是否会考虑:

1) 大家都知道禁止某设备运行后,在设备管理器会显示?号或者红叉,大家会不会设计手动从设备管理器去启动被禁止的外接USB设备的用例?

2) 有的USB设备需要驱动才能运行,如USB接口打印机,是否会设计驱动卸载,重新安装后的用例?

3) 现在也有那种USB转换器,比如把PS/2接口转换为USB接口,那外接USB能否使用?把USB接口转换为PS/2接口,PS/2接口的设备能否使用?

4) 不同操作系统下,该功能是否有效,如LINUX,UNIX,WINDOWSXP,2000,2003等。

上面这些可能可能很难想到的地方,所有设计测试用例也并不是一件容易的事,需要发散性的思维,需要大量的经验。现在看到很多人有点本末倒置了,都去追求工具自动化,其实当你设计出一个完美的用例后,测试出的效果绝对是巨大的,要不怎么会说一个好的测试用例是发现从为发现的错误呢?基本功还是需要.

 

上面的那些情况只是一部分,还可以设计出很多来,大家可以一起讨论下。

 

三,            测试用例的一些技巧:

 

在软件测试中,有很多被测试的软件都是C/S结构的,而软件的界面估计是从头到尾都在改变中,这都测试用例的编写,维护是一件耗时,耗力的事。下面是我个人的一些经验:

1, 界面测试用例和功能方面测试用例分开写,比如在一份EXECL测试用例中,界面的就单单写界面的,如写字体,排版,快捷键等,功能就只写逻辑方面,实现方面,这样当界面修改后,修改也快点。

2, 比如说在编写一个弹出提示框用例时,以前我写用例的时,把预期结果写成提示的消息,如:“登陆用户名错误”,而当这个提示消息变为“用户名错误”时,有要去修改用例,很烦的。后面我就写“弹出一个提示消息框”,这样就解决了

3, 写用例时,尽量分清层次结构,比如用户登陆模块,写的时先写正常情况下登陆,再写异常情况下登陆,不要一下写正常情况下,有写异常情况,然后再写正常情况下,让人感觉很混乱。

4, 写测试用例之前,最好在纸上画一个框架出来,按照什么顺序来写,比如是按照操作系统的分类先,还是按照正常,异常情况先来写,下面模板中的一级分类,二级分类就是这个效果

 

PS:呵呵,总算写完了,也算是对以前写测试用例的一个总结吧。最近在弄WR自动化的框架和脚步(不懂,痛苦),下次把他总结出来。软件测试基本功---WinRunner篇。

 

晕,死,不能上穿附件了,我发到BBS上去,也可以点开图片观看。

http://bbs.51testing.com/viewthread.php?tid=91490&extra=page%3D1&frombbs=1


TAG: 软件测试 测试用例 testcase 测试 系统测试 测试用例设计 用例 测试用例设计技巧

引用 删除 luobaojian   /   2007-10-14 12:32:05
测试这个行业适合长期发展啊
 

评分:0

我来说两句

Open Toolbar