编写有效测试用例的方法

编写有效测试用例的方法

测试用例,是一份关于具体测试步骤的文档,它描述了测试的输入参数、条件及配置、预期的输出结果等,以判断被测软件的工作是否正常。设计、书写和执行测试案例是测试活动中重要的组成部分,测试案例通常由测试案例管理系统或工具进行管理。
一、编写测试用例的原则
测试用例的重要性是毋庸置疑的,它是软件测试全部过程的核心,是测试执行环节的基本依据。测试用例编写应该遵循的原则:
1、测试用例要达到最大覆盖软件系统的功能点。测试工程师应该测试计划编写完成之后,在开发阶段编写测试用例,参考需求规格说明书和软件功能点对每个功能点进行操作上的细化,尽可能趋向最大需求覆盖率。
2、测试用例对测试功能点、测试条件、测试步骤、输入值和预期结果应该有准确的定义。
3、测试用例的设计应包括各种类型的测试用例。在设计测试用例的时候,除了满足系统基本功能需求外,还应该考虑各种异常情况、边界情况和承受压力的能力等。
4、测试用例的管理。使用测试用例管理系统对测试用例进行管理。
一个好的测试用例应该具有较高的发现某个尚未发现的错误的可能性,而一个成功的测试案例能够发现某个尚未发现的错误,通常一个好的测试案例有以下特性:
1、 具有高的发现错误的概率
2、 没有冗余测试和冗余的步骤
3、 测试是“最佳类别”
4、 既不太简单也不太复杂
5、 案例是可重用和易于跟踪的.
6、 确保系统能够满足功能需求
测试用例不可能设计得天衣无缝,也不可能完全满足软件需求的覆盖率,测试执行过程里肯定会发现有些测试路径或数据在用例里没有体现,那么事后该将其补充到用例库里,以方便他人和后续版本的测试。
二、如何编写测试用例
测试用例的信息有很多,可以根据实际的情况进行增删,一般来说一个优秀的测试用例应该包含以下信息:
1、产品相关信息
(1) 软件产品或项目的名称
(2) 软件产品或项目的版本
(3) 功能模块名
(4) 功能描述
(5) 测试平台
这些信息建议可以在测试案例手工选择。
2、基本记录信息
(1) 测试用例入库者
(2) 测试用例入库时间
(3) 测试用例更新者
(4) 测试用例更新时间
这些信息建议可以由测试案例自动生成。
3、测试用例的属性
(1) 测试用例ID:测试用例的ID(由案例管理系统自动生成,方便跟踪管理)
(2) 测试用例名称:测试用例的名称
(3) 测试功能点:测试的功能检查点
(4) 测试目的:该测试功能点的测试目的
(5) 测试级别:主路径测试、烟雾测试、基本功能测试、详细功能测试。
下面对这几个测试级别进行说明:
A、 主路径测试:对照需求中重要模块和功能的最主要功能路径,主路径测试为设计探针模块,快速检查程序的可测试性(可测试性还包括安装测试是否成功)的主要依据的测试案例
B、 烟雾测试:对照需求中所有模块的主要功能路径,主路径测试案例为烟雾测试案例的子集,烟雾测试为做回归测试的主要依据的测试案例。
C、 基本功能测试:对照需求和总体设计中所有模块和功能的基本功能路径,基本功能测试为测试软件产品的非重要级别模块,书写完全的自动测试脚本的主要依据。
D、 详细功能测试:对照总体设计中所有模块和功能的功能路径,测试各个模块及功能各个层次,各种类型。详细功能测试案例为对重点模块,易发生错误的模块的主要依据。
(6) 测试类型:功能测试、边界测试、异常测试、性能测试、压力测试、兼容测试、安全测试、恢复测试、安装测试、界面测试、启动/停止测试、文档测试、配置测试、可靠性测试、易用性测试、多语言测试。
(7) 预置条件:对测试的特殊条件或配置进行说明
(8) 测试步骤:详细描述测试过程,案例的操作步骤建议少于15个。
(9) 预期结果:预期的测试结果
例如:假设目前测试中国移动互联短信网关是否能正确发送短信给中国联通互联网关,测试用例的设计如下:
(1) 测试用例ID:TC000001
(2) 测试用例名称:中国移动全球通手机用户成功发送短信给中国联通手机用户
(3) 测试功能点:中国移动全球通手机用户成功短信给中国联通手机用户,中国联通网关返回成功的状态报告
(4) 测试目的:
A、 中国移动互联短信网关能否正确处理全球通用户发送给中国联通用户的短信;
B、 中国移动互联短信网关能否正确处理中国联通互联短信网关返回成功的状态报告的情况。
(5) 测试级别:基本功能测试
(6) 测试类型:功能测试
(7) 预置条件:各网关实体按照组网图中的关系连接好,各实体之间的连接和通信正常。
(8) 测试步骤:
A、 中国移动全球通手机用户(13901000001)给中国联通手机用户(13001000001)发送MO短信,内容为“测试”,目的号码填为中国联通手机号码;
B、 中国联通互联短信网关把短信下发给中国联通用户成功后,给中国移动互联短信网关返回一个标识成功的状态报告。
(9) 预期结果:
A、 中国联通手机用户(13001000001)接收到了短信,内容为“测试”,源号码为中国移动全球通的用户号码(13901000001);
B、 在中国移动互联短信网关上产生SMO话单,其中“短消息发送状态”填0(表示成功),“源手机号码”为13001000001,“目的手机号码”为13001000001。
三、测试案例的模版
下面是一个完整的测试用例的模版:
测试用例ID
TC000002
测试用例名称
非法用户登录管理网页
产品名称
互联互通网关
产品版本
V3.3.2
功能模块名
管理网页
测试平台
所有
用例入库者
smilings
用例更新者
smilings
用例入库时间
2006-5-30
用例更新时间
2006-5-30
测试功能点
输入错误的用户名和密码
测试目的
阻止非法用户登录系统
测试级别
详细功能测试
测试类型
功能测试
预置条件
登录用户名和密码为admin/test
测试步骤
1、输入用户名称为admin,密码为test%
2、按“登录”按扭登录管理页面
预期结果
1、系统拒绝该用户登录
2、提示错误信息:“对不起,您的用户密码不正确,请重新确认再登录!”
三、测试用例设计过程
对一个全新的产品来说,首先需要了解的是产品需求文档和产品模块之间的关系。然后需要从需求文档中书写与所有需求相对应的主路径测试案例和烟雾测试案例,这个时候也同时会包括一定的基本路径测试案例甚至是详细测试案例。在这个时候,因为对产品没有直接的使用感受,书写测试案例要考虑面广而不要太过精细。继续阅读产品功能定义文档,将所有的功能定义直接对应写相关的测试案例,这个时候,最好能够对程序的本身有一定的接触,加深对程序的了解,以便写出更好,更全面的测试案例。最后,在实际测试中,还需要不断扩充,修改以前的测试案例,得到完整的基本功能测试案例和详细测试案例。
如果对于一个已有一定或大部分案例的产品来说,不管测试者是否本身熟悉这个产品,其主要的任务就是阅读,检查需求及相关的变更,然后对原有的案例进行理解,扩充和修改。这就是案例的重用/复用。