1.测试用例的定义
测试用例TC(Test Case)是测试工作的指导,是软件测试必须遵守的准则,是软件测试质量的根本保障。
测试用例就是:设计一种场景,软件在这种场景下,必须能够正常运行并且达到程序所设计的预期执行结果。
通常的说法:对一项软件产品进行测试任务的描述,体现测试方案,方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果和测试脚本等,并形成文档。
2.测试用例的设计原则
(1)基于测试需求的原则
按照测试类别的不同要求设计测试用例。
- 单元测试 --- 依据详细说明
- 集成测试 --- 依据概要设计说明
- 配置项测试---软件需求规格说明
- 系统测试 --- 用户需求
(2)用成熟的测试用例设计方法来指导设计
在设计测试用例时,不能只凭借主观、直观的想法来设计,要用成熟的测试用例设计方法来指导设计,再加上个人经验积累。
(3)兼顾测试充分性和效率的原则
测试用例集成,应兼顾测试充分性和效率的原则,测试用例的内容都应该完整,具有可操作性。
(4)测试执行的可再现性原则
(5)足够详细、准确和清晰的步骤
3.测试设计说明
根据测试流程设计好测试计划后,要进行测试设计。
测试设计说明书文档:测试设计的总体规划,包括被测的特性、测试所用的方法、测试准则等。
测试设计说明:在测试计划中提炼测试方法,明确之处设计包含的特性和相关的测试方法,并通过对特性的判断指出通过/失败的规则。
目的:组织和描述针对具体特性需要进行的测试,并不给出具体的测试用例或执行测试的步骤。
4.测试用例的编写
按照测试设计说明的描述,对每一个测试项进行具体的测试用例设计。
每个具体的测试用例都将包含下列信息:用例编号、用例名称、测试项、测试环境要求、特殊要求、测试技术、输入说明、操作步骤、期望结果(判断标准)、输出说明、用例之间的关联、用例设计人员、测试人员、测试日期、用例的优先级、注释等。以上内容涵盖了测试用例的基本元素:测试索引、测试环境、测试输入、测试操作、预期结果、评价标准。
下表是ANSI/IEEE 829给出的测试用例文档:
编号: | |||||
编制人: | 审定人: | 日期: | |||
软件名称: | 编号 / 版本 | ||||
测试用例: | |||||
用例编号: | |||||
参考信息(参考文档及章节项或功能项): | |||||
输入说明(列出选用的输入项,列出预期输出): | |||||
输出说明(逐条与输入项对应,列出与其输出): | |||||
环境要求(测试要求的软件、硬件、网络要求): | |||||
特殊规程要求: | |||||
操作步骤: | |||||
用例间的依赖关系: |
5.测试用例应该避免的问题
(1)把测试用例等同于测试输入数据的设计。
(2)强调测试用例设计“越详细越好”
应该分析被测软件的特征,运用有效的设计方法,尽量使用较少的测试用例,同时满足合理的测试覆盖。
(3)追求测试用例一步到位
用户随时可能提出新的需求,,代码不断更新,测试用例需要逐步完善,进一步增加、修改或删除。
(4)将多个测试用例混到一个用例中
(5)让没有测试经验的人员设计测试用例
6.测试用例的分类
为了提高测试工作效率,方便测试人员进行测试用例的编写和执行,在编写用例的时候可以将测试用例进行分类:
- 功能测试用例
- 性能测试用例
- 集成测试用例
- 安全性测试用例
- 用户界面测试用例
- 安装/反安装测试用例
测试种类、阶段和测试用例的关系如下表所示:
测试阶段 | 测试类型 | 执行人员 |
单元测试 | 模块功能测试、包含部分接口测试、路径测试 | 开发、开发与测试合作 |
集成测试 | 接口测试、路径测试、含部分功能测试 | 开发与测试合作、测试 |
系统测试 | 功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试 | 测试人员 |
验收测试 | 对于实际项目基本同上,包含文档测试; 对于软件产品主要测试相关技术文档 | 测试人员,可能包含用户 |
7.小结
制定测试计划——设计测试方案(测试用例、测试策略的设计)。