测试计划是一个过程,而不仅仅是一个文档
1 需求评审
在各种沟通形式中,自然、面对面的沟通形式效率最好,但是在口头交流达成统一意见后,最后须通过文档、邮件或工作系统等记录下来,作为备忘录。
1.1 需求评审的标准
(1).正确性。
(2).完备性。涵盖系统需求的功能、性能、输入/输出、条件限制、应用范围等方面,覆盖率越高,完备性越好。例如:是否有漏掉的功能?功能性需求是否覆盖了所有非正常情况下的处理?出现异常情况系统如何响应?
(3).易理解性。需求描述是否足够清楚和明确,使其已能够作为开发设计说明书和功能性测试数据的基础?
(4).一致性。
(5).可行性。
1.2 项目的测试需求和任务
测试需求是测试设计和开发测试用例的基础,测试需求分解的越细,对测试用例的设计质量的帮助越大,详细的测试需求还是衡量测试覆盖率的重要指标。
1.3 确定软件功能测试需求
1.4 非功能性的系统测试需求
(1).纯客户端软件。对性能、容错性、稳定性等有一定的要求,而且能运行在不同的操作系统上。
(2).B/S应用系统。对性能、可用性、安全性有一定的要求,主要是保证数据的备份和登录权限。
(3).C/S应用系统。可能也有大用户并发。
对于企业级应用系统来说,存在着不同的应用模块,其系统的结构也不一样,可以分为“以功能为中心、以数据库为中心、以业务逻辑(工作流)为中心”。
(1).以功能为中心的,强调模块化的低耦合和高内聚,这类系统的可扩充性、维护性要求很高;
(2).以数据库为中心的,强调数据处理的性能、正确性和有效性,使数据具有良好的一致性和兼容性,同时,确保数据的安全性,包括数据的存储、访问控制、加密和恢复等
(3).以应用逻辑(工作流)为中心的,强调灵活、流畅和实时间性,系统的可配置性强,接口规范。
1.5 各阶段的测试任务
2.测试范围分析和工作量估计
2.1 功能测试范围的分析
(1).功能点的拆分
(2).接口测试
(3).UI测试
2.2 系统测试范围的分析
(1).容错处理。如断网、业务处理过程中断等
(2).兼容性要求
(3).配置要求
(4).性能要求
(5).安全性要求
(6).可靠性、日志文件
2.3 工作量的估计
2.3.1 工作分解结构表方法评估工作量
(1).列出本项目需要完成的各项任务
(2).细化每个任务,尤其是测试阶段,需要对模块进行拆分,拆分到可衡量和细化的维度
(3).预先设计测试点,按照测试点来估算
(3).给每个维度估算时间,需要优化和重复操作的部分,参照公司W=W0+W1*R1+W2*R2..计算
(4).在已估算结果上浮动10%-15%
2.3.2 测试资源需求
2.4 测试里程碑和进度安排
2.5 测试风险分析
风险识别的有效方法是建立风险项目检查表,按风险内容进行逐项检查、逐个确认。
2.5.1 风险项目检查表
2.5.2 测试风险的控制方法
1.根据风险发生的概率和带来的影响确定风险的优先级,然后才去措施避免那些可以避免的风险;
2.风险转移,比如去掉新功能,转移风险;
3.不可避免的风险,就设法降低风险,如提高测试用例的覆盖率;
4.事先做好风险管理计划,喜欢里程碑和验收管理;
5.有一套应急、有效的处理方法,比如全员了解,注意日常观察,及时发现风险出现的征兆;
6.做计划时,要留有余地
7.制定文档标准。
2.6 制定有效的测试策略
2.6.1 为了更好确定软件测试策略,可以问如下一些问题:
(1).回归测试的范围如何确定?
(2).如何利用可重复性的测试?
(3).测试缺乏可预见性,如何收集衡量测试结果的指标?
(4).如何建立稳定的、模拟系统实际运行的测试环境?
(5).如何从无穷的输入数据中选择合理的、有效的测试数据集?
(6).如何加强静态测试-规格说明书、设计文档和程序代码等的审查?
(7).如何处理单元测试和集成测试的关系?
(8).如何衡量这份测试策略的有效性?
2.6.2 基于测试技术的测试策略
(1).任何情况下都要使用边界值分析方法
(2).等价类划分法是对边界值分析方法的有效补充
(3).如果功能的输入数据/条件存在多种组合情况,则使用因果图
(4).错误推测法
(5).对照程序逻辑来审查已有测试用例的逻辑覆盖程度
(6).白盒测试
2.6.3 分阶段的测试策略
(1).严格执行代码审查
(2).单元测试和集成测试,准备自动化测试BVT
(3).正规的自动化BVT测试100%通过才能可接受,才能进入下一步测试
(4).系统测试中,以每次发布用户基线为结束标志
(5).不能忽略安全性测试、可用性测试、配置测试和数据完整性测试
(6).在功能测试、安全性测试、配置测试中进行探索性测试
2.6.4 基于测试方案的综合测试策略
(1).测试优先级,优先级越高,越早测试,测试力度越大
(2).使用尽可能少的测试用例,发现尽可能多的程序错误
(3).测试策略尽量简单、清晰
(4).基于缺陷分析的测试策略
2.7 完整生成测试计划书
2.7.1 什么是测试计划
测试计划本身是为了解决目标是什么、细化的任务是什么、每项任务的进度和里程碑式什么、为了达到目的所采用的方法有哪些、资源有哪些(包括已有的和需要的)、可能存在的风险有哪些等问题。解决了这些问题,那么测试测试计划就是写好这个文档了
2.7.2 测试计划内容焦点
(1).目标和范围
包括产品特性、质量目标,各阶段的测试对象、目标、范围和限制
(2).项目估算
根据历史数据和采用恰当的评估技术,对测试工作量、所需资源做出合理的估算
(3).风险计划
对可能的风险分析、识别,对风险回避、监控和管理,提早设置风险预案
(4).进度安排
WBS分解项目工作,使用时限图、甘特图等方法制定时间/资源表
(5).资源配置
(6).跟踪和控制机制
2.7.2 测试计划主要工作
(1).确定软件的测试需要,以及各阶段的测试任务
(2).测试范围分析,对测试工作量进行估算
(3).测试资源需求、团队组建和培训
(4).测试进度安排和里程碑
(5).测试风险分析及其对策
(6).总体测试策略和阶段性测试策略