测试计划是进行测试的路由图,在需求活动一开始要着手编写测试计划,随着开发过程的逐步展开添加内容,在编程活动和单元测试活动之后完成测试计划的编写。测试计划按标准或行业标准规定的格式和内容编写。
测试计划要针对测试目的来规定测试的任务、所需的各种资源和投入、人员角色的安排、预见可能出现的问题和风险,以指导测试的执行,终实现测试的目标,保证软件产品的质量。
编写测试计划的目的是:
● 为测试各项活动制定一个现实可行的、综合的计划,包括每项测试活动的对象、范围、方法、进度和预期结果。
● 为项目实施建立一个组织模型,并定义测试项目中每个角色的责任和工作内容。
● 开发有效的测试模型,能正确地验证正在开发的软件系统。
● 确定测试所需要的时间和资源,以保证其可获得性、有效性。
● 确立每个测试阶段测试完成以及测试成功的标准和要达到的目标。
● 识别出测试活动中各种风险,并消除可能存在的风险,降低那些不可能消除的风险所带来的损失。
测试计划是一个重要文档,因此在形成测试计划的过程中要对测试计划和测试用例进行检查,当发现错误和遗漏时能在开发过程的早期对测试计划进行必要的增加和修改,减少测试用例的错误。因此形成一份完整、精确和全面的测试计划需要经过计划、准备、检查、修改和继续5个步骤。
1. 测试策略的制定
测试策略描述当前测试的目标和所采用的测试方法。这个目标不是上述测试计划的目标,而是针对某个应用软件系统或程序。具体的测试任务要达到的预期结果,包括在规定的时间内哪些测试内容要完成,软件产品的特性或质量在哪些方面得到确认。测试策略还要描述测试不同阶段(单元测试、集成测试、系统测试)的测试对象、范围和方法以及每个阶段内所要进行的测试类型(功能测试、性能测试、压力测试等)。在制订测试策略前,要确定测试策略项,测试策略包括:
● 要使用的测试技术和工具,如60%用工具自动测试,40%手工测试。
● 测试完成标准,用以计划和实施测试,及通报测试结果。如95%测试用例通过并且重要级别的缺陷全部解决。
● 影响资源分配的特殊考虑,例如有些测试必须在进行,有些测试必须通过远程环境执行,有些测试需考虑与外部接口、或硬件接口的连接。
在确认测试方法时,要根据实际情况,结合测试策略的特点来选择合适的方法:
● 根据是否需要执行被测软件来划分,有静态测试和动态测试。静态测试,如规格说明书、程序代码的审查,在工作中容易被忽视,在测试策略上应说明如何加强这些环节。
● 根据是否针对系统的内部结构和具体实现算法来划分,有“白盒”测试和“黑盒”测试。如何将“白盒”测试和“黑盒”测试有机地结合起来测试,也是测试策略要处理的问题之一。尽管用户更倾向于基于程序规格说明的功能测试,但是“白盒”测试能发现潜在的逻辑错误,而这种错误往往是功能测试发现不了的。
综合起来,可能要在“基于测试技术的测试策略”和“基于测试方案的综合测试策略”之间做出一个选择。
2. 测试计划阶段划分
测试计划不可能一气呵成,而是要经过计划初期、起草、讨论、审查等不同阶段,才能将测试计划制订好。而且,不同的测试阶段(集成测试、系统测试、验收测试等)或不同的测试任务(安全性测试、性能测试、可靠性测试等)都可能要有具体的测试计划。
● 计划初期是收集整体项目计划、需求分析、功能设计、系统原型、用例报告等文档或信息,理解用户的真正需求,了解技术难点和弱点或新的技术,和其他项目相关人员交流,在各个主要方面达到一致的理解。
● 测试计划关键的一步是确定测试需求、测试层次。将软件分解成单元,对各个单元写成测试需求,测试需求也是测试设计和开发测试用例的基础,并用来衡量测试覆盖率的重要指标。
● 计划起草。根据计划初期所掌握的各种信息、知识,确定测试策略,设计测试方法,完成测试计划的框架。
● 内部审查。在提供给其他部门讨论之前,先在测试小组/部门内部进行审查。
● 计划讨论和修改。召开有需求分析、设计、开发人员参加的计划讨论会议,测试组长将测试计划设计的思想、策略做较详细的介绍,并听取大家对测试计划中各个部分的意见,进行讨论交流。
● 测试计划的多方审查。项目中的每个人都应当参与审查(即市场人员、开发人员、技术支持人员及测试人员)。计划的审查是必不可少的,尽管测试工程师努力地完成一个对产品的全面定义,但出自于一个测试工程师的定义不一定是完整或准确的。此外,像开发者很难测试自己的代码那样,测试工程师也很难评估自己的测试计划。每一个计划审查者都可能根据其经验及专长提出修改建议,有时还能提供测试工程师在组织产品定义时不具备的信息。
● 测试计划的定稿和批准。在计划讨论、审查的基础上,综合各方面的意见,可以完成测试计划书,然后报给测试经理或 QA 经理,得到批准,方可执行。测试计划不仅是软件产品当前版本而且还是下一个版本的测试设计的主要信息来源,在进行新版本测试时,可以在原有的软件测试计划书上做修改,但要经过严格审查。
3. 测试计划的要点
软件测试计划的内容主要包括:产品基本情况、测试需求说明、测试策略说明、测试资源配置、计划表、问题跟踪报告、测试计划的评审、结果等。除了产品基本情况、测试需求说明、测试策略等,测试计划的焦点集中在:
● 计划的目的:项目的范围和目标,各阶段的测试范围、技术约束和管理特点。
● 项目估算:使用的历史数据,使用的评估技术,工作量、成本、时间估算依据。
● 风险计划:测试可能存在的风险分析、识别,以及风险的回避、监控、管理。
● 日程:项目工作分解结构,并采用时限图、甘特图等方法制定时间/资源表。
● 项目资源:人员、硬件和软件等资源的组织和分配,人力资源是重点,日程安排是核心。
● 跟踪和控制机制:质量保证和控制,变更管理和控制等。测试计划书的内容也可以按集成测试、系统测试、验收测试等阶段去组织,为每一个阶段制订一个计划书,也可以为每个测试任务/目的(安全性测试、性能测试、可靠性测试等)制订特别的计划书。
此外,可以对上述测试计划书的每项内容,制订一个具体实施的计划,如每个阶段的测试重点、范围、所采用的方法、测试用例设计的思想、提交的内容等进行细化,供测试项目组的内部成员使用。对于一些重要的项目,会形成一系列的计划书,如测试范围/风险分析报告、测试标准工作计划、资源和培训计划、风险管理计划、测试实施计划、质量保证计划等。
4. 测试计划的编写内容
我们要按照标准或有关行业标准编写测试计划,测试计划要提供被测软件的背景信息、测试目标、测试步骤、测试数据整理以及评估准则。它包括:
● 测试环境。在不同的条件下进行测试,所得到的结果是不同的。在测试计划中测试环境指用户使用环境或业务运行环境。
● 测试基本原理和策略。
● 测试计划阶段划分。
● 测试计划要点。
● 功能描述和功能覆盖说明。
● 测试用例清单,说明每个测试用例所测试的内容。
● 测试开始准则和退出准则。
每个测试用例的序言至少包括下列信息:
● 测试用例说明和用途。
● 设置需求(输入、输出)。
● 运行测试用例的操作命令。
● 正常和异常信息。
● 编写测试用例的作者。