软件测试是一项有计划、有组织和有系统的软件质量保证活动,而不是 随意、松散、杂乱的实施过程。为规范软件测试的内容、方法以及过程,在对软件进行测试前,必须创建规范的测试计划。
IEEE 826-1998 将测试计划定义为:“一个叙述了预定的测试活动的范围、途径、资源及进度安排的文档。它确认了测试项、被测特征、测试任务、人员安排,以及任何偶发事件的风险。”
软件测试计划是指导测试过程的大纲性文件,其包含产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员可对测试任务和测试方法有明确的了解,保持顺畅的测试实施过程,跟踪和控制测试进度,应对测试过程中的各种变更。
做好软件的测试计划并非易事,需要综合考虑各种影响测试工作的因素。为了做好软件测试计划,需要注意以下几个方面
1.明确测试的目标,增强测试计划的实用性
现今各种商业软件都拥有丰富的功能,因此,软件测试的内容千头万绪。如何在众多测试内容之中提炼出准确的测试目标,是制订软件测试计划时首先要明确的问题。首先,测试目标必须是明确的,并且可以量化和度量,而不是模棱两可的概述;其次,测试目标应该相对集中,避免罗列出一系列目标,轻重不分。应通过深入分析用户需求文档和设计规格文档,确定被测软件的质量要求以及测试最终所要达到的目标。
在测试过程中更多地发现软件的缺陷是编写软件测试计划的重要目的。因此软件测试计划的价值取决于它是否能够有效地帮助管理测试项目、找出软件潜在的缺陷。另外,软件的功能需求必须被软件测试计划中的测试范围高度覆盖,测试方法必须切实可行,测试工具必须具备较高的实用性,且生成的测试结果直观、准确。
2.坚持“5W1H”规则,明确内容与过程
“5W1H”规则指的是“What(做什么)”“Why(为什么做)”“Who(何人做)”“When(何时做)”“Where(何处做)”“How(如何做)”。利用“5W1H”规则创建软件测试计划,可以帮助测试团队(Who)理解测试的目的(Why),明确测试的范围和具体内容(What),确定测试工作的开始和结束日期(When),指出测试工作中所用到的方法和工具(How),给出测试文档和软件的存放位置(Where)。
为了使“5W1H”规则具体化,需要准确无误地理解被测软件的功能特征、所应用行业的相关知识以及软件测试技术,在需要测试的内容里突出关键部分,针对测试过程中的阶段划分、文档管理、缺陷管理、进度管理给出切实可行的方法。
3.采用评审和更新机制,保证测试计划满足实际需求
如果没有经过评审,测试计划的内容有可能会不准确或遗漏某些测试内容。如果软件需求变更引起测试范围增减,而测试计划的内容没有得到及时更新,就会误导测试执行人员。测试计划的内容包含很多方面,编写人员可能受自身测试经验和对软件需求的理解所限,且软件的开发是一个渐进的过程,最初编写的测试计划可能存在不完善、需要更新的问题,因此,需要采取相应的评审机制对测试计划的完整性、正确性、可行性进行详细评审。例如,在编写完测试计划后,将其提交至由项目经理、开发经理、测试经理、市场经理等组成的评审委员会审阅,根据评审意见和建议进行修改和更新。
4.分别编写测试计划与测试详细规格说明书、测试用例
编写软件测试计划一定要避免“大而全”,篇幅长而没有突出重点,这样的测试计划既浪费编写时间,也浪费测试人员的阅读时间。将详细的测试技术标准、测试用例等内容统统编写入测试计划,就是“大而全”的常见表现。
实际上最好的方法是把详细的测试技术标准编写到独立创建的测试详细规格说明书中,将用于指引测试小组执行测试的测试用例编写到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试技术标准、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试技术标准、测试用例都是完成测试任务的具体战术。