1 概述
1.1 编写目的
[说明编写本测试方案的目的是为软件开发项目管理者、软件工程师、系统维护工程师、测试工程师提供关于XX系统整体系统功能和性能的测试指导。]
1.2 读者对象
[本测试方案可能的合法读者对象为软件开发项目管理者、软件工程师、测试组、系统维护工程师。]
1.3 项目背景
[可以如下那样简单说明,根据项目的具体情况,方案编写者也可以进行详细说明
项目名称:XXX。
简称:XXX
项目代号:PowerXXX X.0.0。
委托单位:XXX。
开发单位:XX公司
主管部门:XXX。]
1.4 测试目标
[说明进行项目测试的目标或所要达到的目的]
1.5 参考资料
[列出编写本测试方案时参考的资料和文献。]
2 测试配置要求
2.1 网络环境
[在此说明应用系统的网络环境,如果应用系统是网络版的,必须具有本节内容。]
2.1.1 网络硬件
[此处给出网络硬件的拓扑图、名称、规格、数量、配置等信息。]
2.1.2 网络软件
[此处给出网络软件的名称、协议、通讯和连接方式等信息。]
2.2 服务器环境
2.2.1 服务器硬件
[此处给出服务器硬件的名称、规格、数量、配置等信息。]
2.2.2 服务器软件
[此处给出服务器软件的名称、协议和版本等信息。]
2.3 工作站环境
2.3.1 工作站硬件
[此处给出工作站硬件的拓扑图、名称、规格、数量、配置等信息。]
2.3.2 工作站软件
[此处给出工作站软件的名称、协议和版本等信息。]
2.4 测试手段
[在此参照《测试计划》说明测试方法和工具,注明执行测试时,必须同时填写《测试记录表》。]
2.5 测试数据
[在此简要说明测试数据的形成,如以客户单位具体的业务规则和《XX系统需求分析说明书》,参考《XX系统概要设计说明书》、《XX系统详细设计说明书》和《数据规格说明书》中规定的运行限制,设计测试用例,作为整个XX系统的测试数据。]
2.6 测试策略
[在此说明测试策略,可以如下这样说明
测试过程按三个步骤进行,即单元测试、组装、系统测试,根据不同阶段测试的测重点不同,分别介绍测试策略:
A) 单元测试
首先按照系统、子系统和模块进行划分,但最终的单元必须是功能模块,或面向对象过程中的若干个类。单元测试是对功能模块进行正确性检验的测试工作,也是后续测试的基础。目的是在于发现各模块内部可能存在的各种差错,因此需要从程序的内部结构出发设计测试用例,着重考虑以下五个方面:
1) 模块接口:对所测模块的数据流进行测试。
2) 局部数据结构:检查不正确或不一致的数据类型说明、使用尚未赋值或尚未初始化的变量、错误的初始值或缺省值。
3) 路径:虽然不可能做到穷举测试,但要设计测试用例查找由于不正确的计算(包括算法错、表达式的符号表示不正确、运算精度不够等)、不正确的比较或不正常的控制流(包括不同数据类型量的相互比较、不适当地修改了循环变量、错误的或不可能的循环终止条件等)而导致的错误。
4) 错误处理:检查模块有没有对预见错误的条件设计比较完善的错误处理功能,保证其逻辑上的正确性。
5) 边界:注意设计数据流、控制流中刚好等于、大于或小于确定的比较值的用例。
B)集成测试
集成测试也叫组装测试或联合测试。通常,在单元测试的基础上需要将所有的模块按照设计要求组装成系统,这时需要考虑的问题:
(1) 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失。
(2) 一个模块的功能是否会对另一个模块的功能产生不利的影响。
(3) 各个子功能组合起来,能否达到预期要求的父功能。
(4) 全局数据结构是否有问题。
(5) 单元模块的误差累积起来,是否会放大,从而达到不能接受的程度。
我们在组装时可参考采用一次性组装方式或增殖式组装方式。
C)系统测试
系统测试目的是在于验证软件的功能和性能及其他特性是否与用户的要求一致,主要是下列类型的测试:
1) 用户界面测试:测试用户界面是否具有导航性、美观性、行业或公司的规范性、是否满足设计中要求的执行功能。
2) 性能测试:测试相应时间、事务处理效率和其他时间敏感的问题。
3) 强度测试:测试资源(内存、硬盘)敏感的问题。
4) 容量测试:测试大量数据对系统的影响。
5) 容错测试:测试软件系统克服软件、硬件故障的能力。
6) 安全性测试:测试软件系统对非法侵入的防范能力。
7) 配置测试:测试在不同网络、服务器、工作站的不同软硬件配置条件下,软件系统的质量。
8) 安装测试:确保软件系统在所有可能情况下的安装效果和一旦安装之后必须保证正确运行的质量。]
2.7 测试通过准则
[在此规定本系统通过测试的准则,即当依据测试用例执行者测试结果与预期结果相符,或测试结果与预期结果虽有不符但不可归咎于应用程序时为测试通过,反之则为测试失败。]
3 软件结构介绍
3.1 概述
[在此概要介绍应用系统的整体功能。如模块包括XXX,XXX和数据维护系统等XX个系统,每个系统又包括若干子系统或功能模块。]
3.2 整体功能模块介绍
[在此介绍XX系统的功能模块如下表所示。]
序号 |
系统名称 |
子系统 |
软件项标识 |
备注 |
1 |
如公文管理 |
|
|
|
2 |
|
|
|
|
3 |
|
|
|
|
4 |
|
|
|
|
5 |
|
|
|
|
6 |
|
|
|
|
7 |
|
|
|
|
8 |
|
|
|
|
9 |
|
|
|
|
10 |
|
|
|
|
11 |
|
|
|
|
3.3 整体功能模块关系图
[此处给出软件功能模块结构图。]
3.4 系统外部接口功能模块关系图
[此处说明整个应用系统和已经存在或即将存在的其他应用系统之间关于数据通信和功能调用等的接口约定和具体的运作机制。具体项目可以根据实际情况进行裁剪]
3.5 系统内部接口功能模块关系图
[此处说明整个应用系统内部各子系统或子系统内部各功能模块之间关于数据通信和功能调用等的接口约定和具体的运作机制。]
4 单元测试用例
[注:模板是按照系统模块化进行编写的,具体项目可参照执行,如面向对象的编程时可以按组件进行单元测试。]
4.1 XX系统
4.1.1 XX子系统
4.1.1.1 XX模块测试
[软件项代号:XX 方案代号:YY
需求规格说明: 在此详细描述软件项的用户需求。
|
|
测试用例:在此说明模块测试要用到的测试用例 1. 针对测试对象设计的第一个测试用例。 说明测试用例名、测试用例标识号、测试用例的测试目标、测试用例的详细描述、测试用例要用到的特殊设备和要求。测试数据包括正常数据,错误数据,异常数据等 前提条件 描述完成本测试用例的必要前提条件。 执行时间 描述执行本测试用例的估计执行时间。 测试过程 第{N}步: 描述一个单独的测试步骤。 2. 针对测试对象设计的第二个测试用例。 。。。。。。
|
|
预期输出: 1. 测试用例一的预期输出。 2. 测试用例二的预期输出。 。。。。。。
|
|
测试人: |
测试时间: 年 月 日 |
填写说明:
1. “软件项代号”是来自于软件功能结构划分中的规定。
2. “需求规格说明”是来自于《需求分析说明书》、《概要设计说明书》和《详细设计说明书》中的需求和设计要求。
3. “测试用例”是根据《需求分析说明书》和《详细设计说明书》来制定的。
4. “预期输出”是根据《需求分析说明书》和《详细设计说明书》来制定的。
5. “方案代号”是由测试方案编写人员根据实际情况制定的。]
4.1.1.2XX模块测试用例
。。。。。。
4.1.1.3XX模块测试用例
。。。。。。
4.1.1.4XX模块测试用例
。。。。。。
4.1.1.5 XX模块测试用例
。。。。。。
4.1.2 XX子系统
4.1.2.1XX模块测试用例
。。。。。
4.1.2.2XX模块测试用例
。。。。
4.1.2.3XX模块测试用例
。。。。
4.1.2.4XX模块测试用例
。。。。。。
4.2 XX系统
4.2.1 XX子系统
4.2.1.1XX模块测试用例
。。。。。。
4.2.1.2XX模块测试用例
。。。。。。
4.2.1.3XX模块测试用例
。。。。。。
4.2.1.4 XX模块测试用例
。。。。。。
4.2.2XX子系统
。。。。。。
4.2.3XX子系统
。。。。。。
5 集成测试用例
5.1 系统外部接口测试
5.1.1 与XX系统接口测试
[软件项代号:XX 方案代号:YY
需求规格说明: XX.。。。。。
|
|
测试用例:(和模块测试一样进行相关说明) XX.。。。。。。
|
|
预期输出: XX.。。。。。。
|
|
测试人: |
测试时间: 年 月 日 |
填写说明:
1)“软件项代号”是来自于软件功能结构划分中的规定,由“本系统接口软件项代号_对方接口系统软件项代号”格式确定。
2)“需求规格说明”是来自于《需求分析说明书》和《概要设计说明书》中的需求和设计要求。
3)“测试用例”是根据《需求分析说明书》和《概要设计说明书》来制定的。
4)“预期输出”是根据《需求分析说明书》和《概要设计说明书》来制定的。]
5.1.2 与YY系统接口测试
。。。。。。
5.1.3 与ZZ系统接口测试
。。。。。。
5.2 系统内部接口测试
5.2.1 子系统内部功能模块接口测试
5.2.1.1X1子系统内部功能模块之间的接口测试
5.2.1.1.1M1M2功能模块间接口测试用例
[软件项代号:XX 方案代号:YY
需求规格说明: XX.。。。。。
|
|
测试用例: XX。。。。。。
|
|
预期输出: XX.。。。。。。
|
|
测试人: |
测试时间: 年 月 日 |
填写说明:
1)“软件项代号”是来自于软件功能结构划分中的规定,由“功能模块M1软件项代号_功能模块M2件项代号”格式确定。
2)“需求规格说明”是来自于《需求分析说明书》和《概要设计说明书》中的需求和设计要求。
3)“测试用例”是根据《需求分析说明书》和《概要设计说明书》来制定的。
4)“预期输出”是根据《需求分析说明书》和《概要设计说明书》来制定的。]
5.2.1.1.2MiMj功能模块间接口测试用例
。。。。。。
5.2.1.2X2子系统内部功能模块之间的接口测试
。。。。。。
5.2.1.3Xn子系统内部功能模块之间的接口测试
。。。。。。。
5.2.2 子系统之间接口测试
5.2.2.1 X1X2子系统功能模块之间的接口测试
[软件项代号:XX 方案代号:YY
需求规格说明: XX.。。。。。
|
|
测试用例: XX.。。。。。。
|
|
预期输出: XX.。。。。。。
|
|
测试人: |
测试时间: 年 月 日 |
填写说明:
- “软件项代号”是来自于软件功能结构划分中的规定,由“子系统X1功能模块软件项代号_对方X2功能模块软件项代号”格式确定。
- “方案代号”是由测试方案编写人员根据实际情况制定的。
- “需求规格说明”是来自于《需求分析说明书》和《概要设计说明书》中的需求和设计要求。
- “测试用例”是根据《需求分析说明书》和《概要设计说明书》来制定的。
- “预期输出”是根据《需求分析说明书》和《概要设计说明书》来制定的。
- “方案代号”是由测试方案编写人员根据实际情况制定的。]
5.2.2.2 XiXj子系统功能模块之间的接口测试
。。。。。。
5.2.2.3XmXn子系统功能模块之间的接口测试
。。。。。。
6 系统测试用例
6.1 病毒测试
[软件项代号:XX 方案代号:YY
需求规格说明: XX.。。。。。
|
|
测试用例: XX。。。。。。
|
|
预期输出: XX.。。。。。。
|
|
测试人: |
测试时间: 年 月 日 |
填写说明:
- “软件项代号”是来自于软件功能结构划分中的规定。
- “方案代号”是由测试方案编写人员根据实际情况制定的。
- “需求规格说明”是来自于《需求分析说明书》中的需求和设计要求。
- “测试用例”是根据《需求分析说明书》来制定的。
- “预期输出”是根据《需求分析说明书》来制定的。
- “方案代号”是由测试方案编写人员根据实际情况制定的。]
6.2 用户界面测试
[在此说明用户界面测试用例]
6.2.1 用户界面测试用例1
。。。。。。
6.2.2 用户界面测试用例2
。。。。。。
6.2.3 用户界面测试用例n
。。。。。。。
6.3 性能测试
[在此说明性能测试用例]
6.3.1 性能测试用例1
。。。。。。
6.3.2 性能测试用例2
。。。。。。
6.3.3 性能测试用例n
。。。。。。。
6.4 强度测试
[在此说明强度测试用例]
6.4.1 强度测试用例1
。。。。。。
6.4.2 强度测试用例2
。。。。。。
6.4.3 强度测试用例n
。。。。。。。
6.5 容量测试
[在此说明容量测试用例]
6.5.1 容量测试用例1
。。。。。。
6.5.2 容量测试用例2
。。。。。。
6.5.3 容量测试用例n
。。。。。。。
6.6 配置测试
[在此说明配置测试用例]
6.6.1 配置测试用例1
。。。。。。
6.6.2 配置测试用例2
。。。。。。
6.6.3 配置测试用例n
。。。。。。。
6.7 安装测试
[在此说明安装测试用例]
6.7.1 安装测试用例1
。。。。。。
6.7.2 安装测试用例2
。。。。。。
6.7.3 安装测试用例n
。。。。。。。
6.8 安全性测试
[在此说明用户界面测试用例]
6.8.1 安全性测试用例1
。。。。。。
6.8.2 安全性测试用例2
。。。。。。
6.8.3 安全性测试用例n
。。。。。。。
6.9 回归测试
[在此说明回归测试用例]
6.9.1 回归测试用例1
。。。。。。
6.9.2 回归测试用例2
。。。。。。
6.9.3 回归测试用例n
。。。。。。。
7追溯表
以下格式仅供参考,可以根据项目的实际需求设计合理的追溯表,保证测试和需求的一致性。
|
测试用例标识号 |
||||||||
需求标识号 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 附录
7.1 附录1 审批记录表
角色 |
签名 |
日期 |
备注 |
软件项目经理 |
|
|
|
开发部经理 |
|
|
|
测试部主任 |
|
|
|
工程经理 |
|
|
|
质量保证人员 |
|
|
|
配置管理人员 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注:1. 可以根据项目情况定制表中的角色。
2. 直接参与或与项目有密切联系的其它组织或部门(包含内部和外部)负责人的签名。