软件质量管理之测试计划
 

2009-06-25 来源:网络

 

A.引言

1.目的

旨在说明各种测试阶段任务、人员分配和时间安排、工作规范等。测试计划在策略和方法的高度说明如何计划、组织和管理测试项目。测试计划包含足够的信息使测试人员明白项目需要做什么是如何运作的。另外,清晰的文档结构能使任何一个读者在浏览计划的前面几页后,就能对项目有一个大概的认识。测试计划只是测试的一个框架,很多细节需要跟开发人员或其他人员沟通,因此计划不包括测试用例的细节和系统功能的详细信息。

2.测试计划内容

预定的测试活动的范围、途径、资源及进度安排的文档。它确认了测试项、被测特征、测试任务、人员安排,以及任何偶发事件的风险。

3.测试摘要

这一节主要说明测试计划中重要的和可能有争议的问题。本节的主要目的是将这些信息传递给那些可能不会通读整个测试计划文档的人员。

4.重点事项

列出测试的重点事项。可以将问题按重要程度和优先级罗列出来,然后在后面的章节中再对这些问题进行详细说明,这样就能让对这些问题有重要影响的人员知道问题的所在。

例如,(以测试均匀派发更新包为例)

a)新进门店如果没有最近三天的交易数据,系统将按默认值插入到IS_BD_TrafficSpread表中

b)新进门店如果有最近三天的交易数据,但运行时间每天都小于6小时, 系统将按默认值插入到IS_BD_TrafficSpread表中

c)新进门店如果有最近三天的交易数据,且运行时间有一天大于等于6小时,则系统按这三天的时段平均交易量计算时段派发比率

d)运行后的门店将按最近三天的时段平均交易量计算时段派发比率

e)运行后的门店,如果每天运行时间8小时,而某天又突然要运行10小时,那么将有2小时派发不出赠品和奖品,此时需手工更改IS_BD_TrafficSpread表中剩余的2小时的比率才有派发

5.争议事项

简要说明争议事项(例如,数据查询系统,说明其中“自定义查询功能”,部分暂未开放,不作处理)

6.风险评估

通过对技术文档的阅读,对被测系统可能存在的问题:系统设计,数据库设计,响应时间,因测试环境不足可能存在的测试缺陷事先评估出来,以指导测试方案,进行有重点的测试。(例如:客户端上传下载程序,说明在这里用了6台机器做一个客户端程序下载测试,但不能做到大型的压力测试,十几台机器同时下载时可能出现的滞后现象或下载不成功现象在公司内无法进行测试,发布下去后再进行人工跟踪,请相关人员注意此点)

7.时间进度

简要说明测试开始时间与发布时间。

8.测试目标

简要说明测试发布的质量目标;

测试计划中所有测试方法和模块已经执行通过(例如,模板测试已经根据《模板及配置程序测试用例标准V2.0.xls》进行测试,并且执行通过测试);

所有的测试案例已经执行过;

所有的重要等级为1/2的Bug已经解决并由测试验证。

B.项目背景

1.测试范围

说明本计划涵盖的测试范围,比如系统程序更新包测试,模板测试,更新包测试等。通常说明什么是要测试的,什么是不要测试的是非常重要的。明确规定这些问题后,测试人员对该做什么有一个清晰的认识。

a)简要地列出测试对象中将接受测试或将不接受测试的那些性能和功能;

b)如果在编写此文档的过程中作出的某些假设可能会影响测试设计、开发或实施,则列出所有这些假设;

c)列出可能会影响测试设计、开发或实施的所有风险或意外事件;

d)列出可能会影响测试设计、开发或实施的所有约束。

提示和技巧:(以下几点举例均以“处理派发错误和赠品修改错误”更新包为例)

a)需要测试和特别注意测试那些部分?(例如,数据查询需要测试“更新包执行情况”“更换赠品”“自定义查询”三个部分内容,特别注意删除更新包所牵涉的数据表变动以及更换赠品所影响的两张表dbo.PM_PP_NonCouponPromotionProduct与PM_PP_SubPromotionQuota 是否有变化)

b)测试是否专门针对与某些问题的解决?(例如,主要针对均匀派发问题和数据查询赠品修改错误问题进行的更新包)

c)哪些部分不需要测试,为什么?

d)哪些部分需要推迟测试,为什么?

e)是否要验证每个模块的稳定性?

f)测试的优先级和先后顺序。(例如,先测试均匀派发程序,后测试数据查询程序,因为均匀派发程序必须今天内发布,非常紧急!)

2.测试目标

系统目标对测试人员了解自己需要做什么是非常重要的。测试项目负责人应积极与系统设计人员或开发人员沟通,以取得相关资料。测试人员必须知道系统是做什么并且帮助项目实现这种目标。在计划中包括系统视图和目标后,要确保所有的测试人员都知道项目和系统的目标。通常情况下项目计划都是模糊的。模糊的目标必须通过成员的努力转换成可衡量和实现的东西。没有固定的视图和目标,你将无法完成部分任务。而且,你会发现很难将对产品的认识向别人转述。

(例如,逻辑测试系统是一个能够选择数据库,执行脚本以及显示测试用例上提到的所有参数。逻辑测试系统的目标:为了方便测试人员在测试逻辑脚本,提高测试人员测试促销逻辑的速度和效率,更好地保证发布的促销逻辑参数的准确性。)

3.联系方式

列出项目参与人员的职务、姓名、E-mail 和电话。

表格 1 联系方式

职务 姓名 E-Mail 电话
开发人员
开发经理
测试负责人
测试人员

4.风险及约束

列出测试过程中可能存在的一些风险和制约因素,并给出规避方案。如:

a)由于客观存在的设备、网络等资源原因,使得测试不全面。明确说明哪些资源欠缺,产生什么约束;(例如,客户端程序---由于网络资源有限,不能做到十几台机器同时下载的情况,无法进行大型的压力测试)

b)由于研发模式为现场定制,且上线时间压力大,使得测试不充分。明确说明在此种约束下,测试如何应对;

c)只针对专门的客户群需求的测试。明确说明此约束下的客户群和业务范围。(例如,测试系统只针对测试人员的需求进行测试)

5.测试文档

列出测试过程中可能用到的参考文档、相关的设计文档以及保存位置,测试完成后应产生的文档。

(例如,测试工具CMITest----参考文档:《逻辑测试系统测试计划-V2.0.doc》,《逻辑测试系统测试用例-V2.0.doc》;

保存位置:\\195.1.1.1\ AfterService\upgrade目录下,测试完成后应该产生《逻辑测试报告手册V1 0.doc》)

6.测试参考文档

表格 2 测试参考文档

文档说明 作者 文档位置
需求文档(需求规格说明书、Readme.txt或者邮件)
测试计划
测试用例

7.测试提交文档

表格 3 测试提交文档

文档说明 作者 文档位置
《测试计划》
《测试用例》
《测试报告》
《Readme.txt》
《操作说明手册》

C.质量目标

描述本阶段测试目标和要求。质量目标应该包括产品的质量目标和测试小组的质量目标。质量不仅是衡量系统的功能或性能是否正常。对系统来说,在开发过程中尽早建立全面的质量标准与系统的及时发布是一样重要的。质量目标是一个强有力的工具,应该在系统开发过程中尽早建立。一个定义准确的质量目标在以后的产品开发过程中帮助决策。例如,系统是否能够正式发行?在代码完成后,应该修复那些缺陷?在系统完成后那种类型的测试是最合适的?

1.系统的质量目标

表格 4 系统的质量目标

测试质量目标 确认者(如需说明)
测试已实现的产品是否达到设计的要求,包括:各个功能点是否已实现,业务流程是否正确
系统规定的操作和运行稳定

以下例子,门店数据查询赠品完善赠品添加功能。

表格 5 例如:

测试质量目标 确认者(如需说明)
更改赠品显示促销编号功能,删除更新包功能以及显示均匀派发功能均已实现,业务流程正确无误
系统规定的操作和运行稳定

2.测试质量目标

表格 6 测试质量目标

测试质量目标 确认者(如需说明)
所有的测试案例已经执行过
所有的自动测试脚本已经执行通过
所有的重要等级Bug已经解决并由测试验证
每一部分的测试已经被Test Lead确认完成
重要的功能不允许有Bug
一般的功能或与最终使用者不直接联系的功能不允许有一个以上的bug出现
发现错误的Bug的速率正在下降并接近0

D.资源需求

1.测试环境

1.1 硬件测试环境

描述建立测试环境所需要的设备、用途及软件部署计划。

“机型(配置)”:此处说明所需设备的机型要求以及内存、CPU、硬盘大小的最低要求;

“用途及特殊说明”:此设备的用途,如数据库服务器,web服务器等;如有特殊约束,如SDK版本等,也写在此列;

“软件及版本”:详细说明每台设备上部署的自开发和第三方软件的名称和版本号,以便系统管理员按照此计划分配测试资源;如:测试环境的版本为母盘2007-12-3版本,客户端为2007-9-11版本

“预计空间”:说明第三方软件和应用程序的预计空间;

“环境约束说明”:建立此环境时的特殊约束。如需要路由进行局域网环境等。

表格 7 测试环境

机型(配置) IP地址 操作系统 用途及特点 软件及版本 预计空间
TCL 14.22.0.6 WinXP2 SQL Server 2005 1G
虹光AV210 C2

1.2 软件测试环境

表格 8 软件测试环境

软件需求 用途

2.测试工具

表格 9 测试工具

测试工具 用途
自动测试工具

E.测试策略

1.整体测试策略

本节的目的是说明计划中使用的基本的测试过程。使用里程碑技术在测试过程中验证每个模块,测试人员在需求阶段参与测试工作,进行需求review、设计 review、测试案例设计和测试开发,在系统开发完成之后,正式执行测试。系统达到软件系统质量要求和测试要求后发布,并提交相关的测试文档。

2.开始/中断/完成标准

表格 10 中断/开始/完成测试的标准

开始/中断/完成测试 标准说明
开始测试标准 硬件环境可用且软件正确安装完成
中断测试标准 安装无法正确完成或程序的文档有相当多的失误或系统服务异常或发现Block Bug
完成测试标准 完成测试计划中的测试规划并达到程序和测试质量目标,并由开发人员与测试人员共同确认

3.测试类型

表格 11 测试类型

测试类型 是否采用 说明
功能测试 采用 根据系统需求文档和设计文档,检查系统是否正确实现了功能
流程测试 采用 按操作流程进行的测试,主要有业务流程、数据流程、逻辑流程、正反流程,检查系统在按流程操作时是否能够正确处理
边界值测试 采用 选择边界数据进行测试,确保系统功能正常,程序无异常
容错性测试 采用 检查系统的容错能力,错误的数据输入不会对功能和系统产生非正常的影响,且程序对错误的输入有正确的提示信息
异常测试 采用 检查系统能否处理异常
启动停止测试 采用 检查每个模块能否正常启动停止、异常停止后能否正常启动
安装测试 采用 检查系统能否正确安装、配置
易用性测试 采用 检查系统是否易用友好
界面测试 采用 检查界面是否美观合理
接口测试 采用 检查系统能否与外部接口正常工作(例如,能否与扫描仪一同正常工作)
配置测试 采用 检查配置是否合理、配置是否正常(例如,数据库连接,扫描仪连接,日志存放路径等)
安全性和访问控制测试 采用 应用程序级别的安全性:检查Actor只能访问其所属用户类型已被授权访问的那些功能或数据
系统级别的安全性:检查只有具备系统和应用程序访问权限的Actor才能访问系统和应用程序
性能测试 采用 提取系统性能数据,检查系统是否满足在需求中所规定达到的性能
压力测试 采用 检查系统能否承受大压力,测试产品应该能够在高强度条件下正常运行,不会出现任何错误。(例如客户端程序的测试能否在十几台机器同时下载无网络堵塞现象)
兼容性测试 采用 对于 C/S 架构的系统来说,需要考虑客户端支持的系统平台
对于 B/S 架构的系统来说需要考虑用户端浏览器的版本。
文档测试 采用 检查文档是否足够、描述是否合理
回归测试 采用 检查程序修改后有没有引起新的错误、是否能够正常工作以及能否满足系统的需求

4.测试技术

表格 12 测试技术

测试技术 是否采用 说明
自动测试技术 采用 核心业务流程采用自动测试技术
审评测试 采用 对软件产品功能说明文档和设计说明文档进行检查,在需求与设计阶段进行
编写测试用例 采用 在产品编码阶段编写测试用例
单元测试 不采用 由开发人员进行
集成测试 采用 检测模块集成后的系统是否达到需求对业务流程及数据流的处理是否符合标准、系统对业务流处理是否存在逻辑不严谨及错误以及是否存在不合理的标准及要求。
确认测试 采用 在产品发布前,对照feature list 进行基本需求的确认,确认产品是否正确实现了功能。
系统测试 采用 包括性能测试、压力测试和回归测试

F.测试计划

1.测试时间进度计划

表格 13 测试时间进度计划

测试阶段 开始时间 完成时间 测试人员 阶段完成标志

制定测试计划

需求Review
设计Review
设计测试用例
测试开发
测试环境准备
测试实施
功能测试
集成测试
性能测试
系统测试
验收测试
文档编写

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织