章17 计划测试工作
软件测试员的目标:尽可能早地找出软件缺陷,并保证其得以修复。
利用精心组织的测试计划、测试用例和测试报告,对测试工作进行正确的记录以及交流,将使达到目标变得更有可能。
测试负责人或测试经理:建立全面测试计划。
一、测试计划的目标
软件测试计划(Software Test Plan)是软件测试员与产品开发小组交流意图的主要方式。
IEEE829-1998关于软件测试文档(software test document)的标准。
测试计划的目标:规定测试活动的范围、方法、资源和进度;明确正在测试的项目、要测试的特性,要执行的测试任务、每个任务的负责人,以及与计划相关的风险。
测试计划采用的形式是书面文档。
测试计划只是创建详细计划过程的一个副产品,重要的是计划过程,而不是产生的结果文档。
测试激活过程的最终目标是交流(而不是记录)软件测试小组的意图、期望,以及对将要执行的测试任务的理解。
二、测试计划的主题
1、高级期望
测试计划过程和软件测试计划的目的是什么?
测试的是什么产品?
产品的质量和可靠性目标是什么?
2、人、地点和事
明确项目中工作的人,他干什么,怎样和他联系。
文档存放在哪里,测试工具的明确。
3、定义
测试计划过程就是定义小组成员的用词和术语。对差异要进行鉴别,并得到一致的同意,使全体人员说法一致。
1)构造
程序员放在一起需要测试的代码和内容的搜集。测试计划应该定义构造的频率以及期望的质量等级。
2)测试发布文档(TRD)
程序员发布的文档。对每一个构造都声明新特性、不同特性、修复问题和准备测试的内容。
3)Alpha版
意在对少数主要客户和市场进行数量有限的分发,用于演示目的的早期构造。
4)Beta版
意在向潜在客户广泛分发的正式构造。
5)说明书完成
说明书预计完成并且不再更改的日程安排。
6)特性完成
程序员不再向代码增加新特性,并集中修复缺陷的日期安排。
7)软件缺陷会议
由测试经理、项目经理、开发经理和产品支持经理组成的团队,每周召开会议审查软件缺陷,并确定哪些需要修复,应该如何修复。
4、团队之间的责任
团队之间的责任是明确指出可能会影响测试工作的任务和交付内容。
程序管理员1,程序员2,测试员3,技术文档作者4,营销人员5,产品支持人员的任务6 :
1)撰写产品版本声明:1
2)创建产品组成部分清单:1
3)创建合同:1
4)产品设计/功能划分:1
5)项目总体进度:1
6)制作和维护产品说明书:1
7)审查产品说明书:1-6
8)内部产品的体系结构:2
9)设计和编写代码:2
10)测试计划:3
11)审查测试计划:3
12)单元测试:2
13)总体测试:3
14)创建配置清单:3
15)配置测试:3
16)定义性能基准:1
17)内容测试:4
18)来自其它团队的测试代码:3
19)自动化/维护构建过程:2
20)磁盘构建/复制:2
21)磁盘质量保证:3
22)创建beta测试清单:5
23)管理beta程序:5
24)审查印刷的资料:4
25)定义演示版本:5
26)审查演示版本:5
27)测试演示版本:3
28)缺陷会议:1
5、确定哪些需要测试,哪些不需要。
6、测试的阶段
要计划测试的阶段,测试小组就会查看预定的开发模式,并决定在项目期间是采用一个测试阶段还是分阶段测试。
测试的计划过程应该明确每一个预定的测试阶段,并告知项目小组。
7、测试策略
与定义测试阶段相关联的联系是定义测试策略。
测试策略描述测试小组用于测试整体和每个阶段的方法。
8、资源需求
计划资源需求是确定实现测试策略必备条件的过程。
人员、设备、办公室和实验室空间、软件、外包测试公司、其它配备。
9、测试员的任务分配
计划测试员的任务分配是指:明确测试员负责软件的哪些部分、哪些可测试特性。
10、测试进度
测试进度需要以上所述的全部信息,并将其映射到整个项目进度中。
进度破坏(schedule crunch)
使测试任务摆脱进度破坏的一个方法使测试进度避免定死启动和停止任务的日期。
测试进度根据测试阶段定义的进入和退出规则采用相对日期,显然测试任务依赖于其它先完成的可交付内容。
11、测试用例
用什么方法编写测试用例,在哪里保存测试用例,如何使用和维护测试用例。
12、软件缺陷报告
方式:使用粘性便笺、使用复杂的缺陷跟踪数据库......
13、度量和统计
度量和统计是跟踪项目发展、成效和测试的手段。测试的计划过程应该明确收集哪些信息,要做什么决定,谁来负责收集。
实用的测试度量的例子:
在项目期间每天发现的软件缺陷总数;
仍然需要修复的软件缺陷清单;
根据严重程度对当前软件缺陷评级;
每个测试员找出的软件缺陷总数;
从每个特性或者区域发现的软件缺陷数目。
14、风险和问题
测试计划中常用而且非常实用的部分是明确指出项目的潜在问题或者风险区域——这是对测试工作有影响的地方。
软件测试员要负责明确指出计划过程中的风险,并与测试经理和项目经理交换意见。
应该在测试计划中明确指出,在进度中给予说明。