现实中,大多数软件测试项目经理或者测试负责人、Test Leader其实内心都是恐惧写文档的。很多时候不是不会写,而是不重视或者只是为了应付工作。原因其实很简单,无外乎有以下几种:

 

  1. “文档无用论”,写文档还不如多用一些时间在解决项目问题上;

  2. 写了软件测试计划其实也没有几个人看;

  3. 文档其实不被重视;

  4. 仅仅是为了应付公司品质部门、QAO的检查或者CMMI评估;

  5. 在工作中测试管理的具体实践活动,依赖的是经验,而不是一份写在纸上的测试计划书;

  6. 敏捷过程是“轻文档”化的;

  7. 其它种种原因……

  8. 软件测试计划真的仅仅只是一份文档吗?

  9. 软件测试计划真的没有用吗?

  10. 敏捷过程就真的不需要测试计划了吗?

 

 

这些显然是一些借口或者错误的认识。

 

为什么我们需要测试计划?

无论做什么工作,都是计划先行,然后按照所制定的计划去执行、跟踪和控制。软件测试也一样,先要制定测试计划,是做好整个测试工作的前提。所以在进行实际测试之前,应制定良好的、切实可行的、有效的测试计划。软件测试计划的目标是提供一个测试框架,不断收集产品特性信息,对测试的不确定性(测试范围、测试风险等)进行分析,将不确定性的内容慢慢转化为确定性的内容,该过程最终使得我们对测试的范围、用例数量、工作量、资源和时间等进行合理的估算,从而对测试策略、方法、人力、日程等做出决定或安排。

 

在编写测试计划之前,可以考虑下面几个问题:

 

为什么要编写测试计划?

  • (1)Test Manager/测试主管等能够根据测试计划做宏观调控,进行相应资源配置等;

  • (2)测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等;

  • (3)便于其他人员了解测试人员的工作内容,进行有关配合工作

 

什么时间开始编写测试计划?

(测试需求分析前总体测试计划书/测试需求分析后详细测试计划书)

 

由谁来编写测试计划?

具有丰富经验的测试负责人Test Leader

 

测试计划编写的基本思路(5W1H)

  • (1)why——为什么要进行这些测试;

  • (2)what—测试哪些方面,不同阶段的工作内容;

  • (3)when—测试不同阶段的起止时间;

  • (4)where—相应文档,缺陷的存放位置,测试环境等;

  • (5)who—项目有关人员组成,安排哪些测试人员进行测试

  • (6)how—如何去做,使用哪些测试工具以及测试方法进行测试。

 

测试计划的要点

测试规划与软件开发活动同步进行,在需求分析时,就开始测试策划,确定测试需求、目标、资源等。测试计划可以按不同的测试阶段(集成测试、系统测试等)来组织,也可以为每个测试任务或目标(安全性、性能、可靠性等测试)进行考虑。

 

测试计划主要集中在测试目标、质量标准、测试策略、测试范围、测试用例设计方法、所需资源和日程安排等,其关键是制定有效的测试策略,界定清楚地测试范围,识别出测试中所存在的各种风险并找出风险回避、监控和管理的方法,针对不同的测试目标或阶段确定测试方法,对测试工作量及所需的资源、时间进行合理的估算。所有这些,都是为了两个根本目的:测试的质量和效率。

 

测试计划中需要明确测试范围

测试主要依据“产品设计规格说明书”、代码所发生的变化及其影响的区域,来确定哪些功能和特性要测试,哪些功能和特性不需要测试。在确定测试范围时,主要考虑的因素有:

 

  •  优先级最高的需求功能

  • 新增加的功能和编码改动较大的已有功能

  • 容易出现问题的部分功能

  • 过去测试不够充分的地方

  • 经常被用户使用的功能和配置(占20%)

  • 哪些不需要测试的功能和特性(排除出测试范围)

 

 

在实际的测试实施中,有时候存在测试执行到一定阶段,由于某种原因(例如:环境不具备、测试账号的问题、测试数据的问题、公司安全策略的限制等等导致测试条件不满足,从而一些之前计划在测试范围内的功能,需要排除出测试范围)测试范围需要发生变更。那么这就需要遵守变更流程,并且更新测试计划文档,以及更新后的测试计划获得审批。

 

这个环节其实常常被Test Leader和Test Manager或忽视。

 

测试估算:所需资源和日程安排

为了合理、准确地安排日程,对测试工作量要进行正确的估计。除了对工作量的估计之外,还要正确评估参与该项目人员的培训时间、适应过程和工作能力等。由于涉及到不同的项目、不同的测试人员、不同的前期介入方式,要对每人每天能够完成的平均测试用例数目做出一个准确的估计确实很困难,但是可以根据以前一些项目测试的经验或历史积累下来的数据进行判断推理,并适当增加10%-20%的余量,估算结果就比较准确了。

  

在估算的基础上,进行有效的、合理的资源安排。在不同的测试阶段人力资源的需求是不一样的,所以人力资源的计划要有一定的灵活性和动态性,形成有机的动态平衡,保证测试的进度和资源的使用的效率。

 

需要精心编写准备测试计划

要做好测试计划,测试设计人员要仔细阅读有关资料,包括用户需求规格说明书、设计文档等,全面熟悉系统,并建议注意以下方面:

 

让所有合适的相关人员参与测试项目的计划制定,特别是在测试计划早期;

测试所需的时间、人力及其它资源的预估,尽量做到客观、准确、留有余地;

测试项目的输入、输出和质量标准,应与各方达成一致;

 

测试计划的主要内容

测试计划的主要内容包括以下要点:

 

  1. 测试计划标识

  2. 版本修订记录

  3. 简介(目的)

  4. 主要阅读者

  5. 测试项(交付测试的一切内容)

  6. 需要测试的功能

  7. 不需要测试的功能

  8. 测试项通过/失败的准则

  9. 测试准则(入口准则、出口准则、暂停和恢复准则)

  10. 测试交付物/产出物

  11. 测试任务

  12. 进度计划(可以与10.测试任务合并做出一个进度和任务的矩阵,关键里程碑点的描述)

  13. 环境需求

  14. 工具

  15. 职责矩阵

  16. 人员和培训的需求

  17. 风险和缓解风险/预防风险的对策

  18. 批准(测试计划需要进行评审和审批)

 
 

 

测试计划需要评审

测试计划不可能一气呵成,而是要经过计划初期、起草、讨论、审查等不同阶段,才能将测试计划制定好。测试计划的评审是完成测试计划关键的一个环节,包括测试组织内部的自我评审、讨论和修改,然后交到评审会进行正式的评审,直至测试计划得到审批。

 

汇智动力测试计划的正式评审,项目中的每个人(产品经理、项目经理、开发工程师等)都应当参与。计划的审查是必不可少的,每一个参与者都可能根据其经验及专长提出问题或建议,弥补在测试范围、工作量、风险等各方面的不足,进一步完善测试计划。