测试计划的创建(带示例)
测试计划是一份详细的文档,描述了执行软件产品测试所需的测试策略、目标、时间表、评估、交付成果和资源。测试计划作为蓝图,将软件测试活动作为已定义的过程进行管理,该过程由测试经理进行详细的监视和控制。
根据ISTQB的定义:“测试计划是描述预期测试活动的范围、方法、资源和时间表的文档。”
让我们从以下测试计划示例/场景开始:在一次会议上,想要与团队成员讨论测试计划,但很多组员对此不感兴趣。
在这种情况下,会怎么做?选择答案,如下图所示
-
我是经理,一切按我说的做
-
好的,我解释一下为什么需要一份测试计划
作为一名正确的测试经理,必须向他们解释测试计划的重要性,而不是强迫团队做想要做的事情。
测试计划的重要性是什么?
制作测试计划文档有多种好处
- 帮助测试团队之外的人员(如开发人员、业务经理、客户)了解测试的细节。
- 测试计划指导思考。它就像一本规则手册,需要遵守。
- 测试计划中记录了测试评估、测试范围、测试策略等重要方面,因此管理团队可以对其进行审查,并在其他项目中重复使用。
如何编写测试计划
已经知道,制定测试计划是测试管理过程中最重要的任务。按照以下七个步骤创建符合IEEE 829的测试计划
- 分析产品
- 设计测试策略
- 定义测试目标
- 定义测试标准
- 资源规划
- 计划测试环境
- 进度和估算
- 确定测试交付内容
步骤1) 分析产品
怎么能在没有任何相关信息的情况下测试产品呢?答案是不可能的。在测试产品之前,必须彻底了解它。
正在测试的产品银行网站,应该对客户端和最终用户进行研究,以了解他们对应用程序的需求和期望
- 谁将使用该网站?
- 它是用来做什么的?
- 它将如何运作?
- 产品使用的软件/硬件是什么?
应该浏览一下被测试网站,并查看一下产品文档。查看产品文档有助于了解网站的所有功能以及如何使用。如果对任何项目不清楚,可以与客户、开发人员和设计师沟通,获得更多信息。
步骤2) 制定测试策略
测试策略是软件测试中制定测试计划的关键步骤。本文档定义了测试策略文档:
- 项目的测试目标和实现这些目标的方法
- 确定测试工作量和成本
回到项目,需要开发用于测试银行网站的测试策略。应该按照以下步骤操作
步骤2.1) 定义测试范围
在开始任何测试活动之前,应该知道测试的范围。一定要好好考虑一下。
- 要测试的系统组件(硬件、软件、中间件等)被定义为“在范围内”
- 不会进行测试的系统组件也需要明确定义为“超出范围”。
定义测试项目的范围对所有涉众都非常重要。精确的范围可以帮助
- 让每个人都对正在进行的测试有信心和准确的信息
- 所有项目成员都将清楚地了解哪些内容需要测试,哪些内容不需要测试
如何确定项目范围?
为确定范围,必须-
- 精确的客户要求
- 项目预算
- 产品规格说明
- 测试团队的技能和能力
明确界定测试的“范围内”和“范围外”。
- 作为软件需求规格书,银行项目只专注于测试网站的所有功能和外部接口(在范围测试中)
- 目前不会压力测试、性能测试或逻辑数据库等非功能测试。(超出范围)
问题场景
客户希望测试他的API。但是这种情况下会怎么做呢?
嗯,在这种情况下,需要说服客户,Api测试是一项额外的工作,将消耗大量的资源。告诉他如果API检测包括在范围内,预算将增加XYZ金额。
客户同意,因此新范围、超出范围的项目
- 范围内项目:功能测试、API测试
- 超出范围的项目:数据库测试、硬件和任何其他外部接口
步骤2.2) 识别测试类型
测试类型是提供预期测试结果的标准测试过程。
每种测试类型都是为了识别特定类型的产品错误而制定的。但是,所有的测试类型都旨在实现一个共同的目标:“在将产品发布给客户之前,及早发现所有的缺陷”。
常用的测试类型如下图所示
常用测试类型
测试软件产品的测试类型繁多。作为测试经理,必须设置测试类型的优先级
- Web应用程序测试应关注哪些测试类型?
- 为了节约成本,哪些测试类型应该忽略?
现在让我们练习一下项目。要测试的产品是一个银行网站。在这种情况下,应该关注哪些测试类型?选择所有适用的选项
-
单元测试
-
API测试
-
集成测试
-
系统测试
-
安装/卸载测试
-
敏捷测试
我们只选择B) API测试,C) 集成测试,D) 项目的系统测试
步骤2.3) 记录风险和问题
风险是未来具有发生概率和潜在损失的不确定事件。当风险真正发生时,它就成了“问题”。 在“风险分析和解决方案”一文中,已经详细了解了“风险”分析,并确定了项目中的潜在风险。 在QA测试计划中,将记录这些风险
风险 | 缓解 |
---|---|
团队成员缺乏网站测试所需的技能。 | 计划培训课程以提高会员的技能 |
工程进度太紧,很难按时完成这项工程 | 为每个测试活动设置测试优先级。 |
测试经理的管理技能很差 | 为经理制定领导力培训计划 |
缺乏合作会对员工的生产力造成负面影响 | 鼓励每个团队成员完成任务,激励他们更加努力。 |
错误的预算估计和成本超支 | 开工前确定范围,高度重视项目规划,不断跟踪和衡量进度 |
步骤2.4) 创建测试任务分发
在测试中,测试经理应回答以下问题:
- 谁来测试呢?
- 测试什么时候进行?
谁来测试呢?
可能不知道将进行测试的测试员的确切姓名,但可以定义测试员的类型。
要为指定的任务选择合适的成员,必须考虑他的技能是否符合任务的要求,并估计项目预算。为任务选择错误的成员可能会导致项目失败或延迟。
具备以下技能的人员最适合执行软件测试:
- 能够理解客户的观点
- 对质量的强烈渴求
- 注重细节
- 良好的合作关系
在项目中,负责测试执行的成员是测试人员。根据项目预算,可以选择开源或外包成员作为测试员。
测试什么时候进行?
测试活动必须与相关的开发活动相匹配。 当拥有所有必需的项目时,将开始测试,如下图所示
步骤3) 定义测试目标
测试目标是测试执行的总体目标和成果。确保所测试的软件在发布之前没有错误。 要定义测试目标,应该执行以下两个步骤
- 列出所有软件功能(功能、性能、图形用户界面…)可能需要测试一下。
- 根据上述特征定义测试的目标或目标
步骤4) 定义测试标准
测试标准是测试程序或测试判断所依据的标准或规则。有两种类型的测试标准,如下所示
暂停标准
指定测试的关键挂起标准。如果在测试过程中满足暂停标准,则活动测试周期将暂停,直到解决。
测试计划示例:如果团队成员报告有40%的测试用例失败,应该暂停测试,直到开发团队修复了所有失败的用例。
结束条件
它指定了表示测试阶段成功完成的标准。结束标准是示例的目标结果:95%的关键测试用例必须通过。
定义结束标准的一些方法是通过指定目标运行率和通过率。
- 运行率是执行的测试用例数量与测试规范的测试用例总数之比。例如,测试规范总共有120个TC,但是测试员只执行了100个TC,所以运行率是100/120=0.83(83%)
- 通过率是通过的测试用例数/执行的测试用例数之比。例如,在执行的100个以上的TC中,有80个TC通过,因此通过率为80/100=0.8(80%)
可以在测试指标文档中检索此数据。
- 运行率必须是100%,除非给出明确的原因。
- 通过率取决于项目范围,但达到高通过率是一个目标。
测试计划示例:团队已经完成了测试执行。他们向报告测试结果,并希望确认结束标准。 在上述情况下,强制运行率为100%,但是测试团队只完成了90%的测试用例。这意味着运行率不满足,所以不要确认结束标准
步骤5) 资源规划
资源计划是完成项目任务所需的所有类型资源的详细汇总。资源可以是完成项目所需的人力、设备和材料
资源计划是测试计划的重要因素,因为它有助于确定资源(员工、设备…)的数量将用于该项目。因此,测试经理可以为项目做出正确的计划和估计。
以下表示为项目推荐的资源。
人力资源
下表表示项目团队中的各个成员
编号 | 成员 | 任务 |
---|---|---|
1. | 项目管理 | 管理整个项目 定义项目方向 获取适当的资源 |
2. | 测试人员 | 确定并描述适当的测试技术/工具/自动化体系结构 验证和评估测试方法 执行测试,记录结果,报告缺陷。 根据项目预算,测试人员可以是内包型或外包型成员 对于技能要求不高的任务,建议选择外包成员,以节省项目成本。 |
3. | 测试中的开发人员 | 执行测试用例、测试程序、测试套件等。 |
4. | 测试主管 | 建立并确保测试环境和资产得到管理和维护 支持测试人员使用测试环境执行测试 |
5. | SQA成员 | 负责质量保证工作 检查以确认测试流程是否满足指定的要求 |
系统资源
对于Web应用程序的测试,应按下表规划资源:
序号 | 资源 | 描述 |
---|---|---|
1. | 服务器 | 安装测试中的Web应用程序 这包括单独的Web服务器、数据库服务器和应用程序服务器(如果适用 |
2. | 测试工具 | 测试工具是自动化测试,模拟用户操作,生成测试结果 有大量的测试工具可以用于此项目,例如Selenium、qtp…等。 |
3. | 网络 | 需要一个包含LAN和Internet的网络来模拟真实的业务和用户环境 |
4. | 电脑 | 用户经常用来连接Web服务器的PC |
步骤6) 规划测试环境
什么是测试环境
测试环境是测试团队将在其上执行测试用例的软件和硬件的设置。测试环境包括真实的业务环境和用户环境,以及服务器、前端运行环境等物理环境。
如何设置测试环境
回到项目,如何为这个银行网站设置测试环境?
要完成此任务,需要测试团队和开发团队之间的大力合作。应该问开发人员一些问题,以便清楚地理解测试中的Web应用程序。当然,如果需要的话,可以问其他问题。
- 本网站可以同时处理的最大用户连接是多少?
- 安装此网站的硬件/软件要求是什么?
- 用户的计算机需要任何特定设置才能浏览网站吗?
下图描述了银行网站的测试环境
步骤7) 进度表和评估
在“测试评估”一文中,已经使用了一些技术来评估完成项目的工作量。现在,应该在测试计划中包括该评估和时间表。在测试评估阶段,假设将整个项目分为多个小任务,并为每个任务添加评估,如下所示
任务 | 参与人员 | 估计工作量 |
---|---|---|
创建测试规范 | 测试设计者 | 170 工时 |
执行测试执行 | 测试员、测试管理员 | 80 工时 |
测试报告 | 测试人员 | 10 工时 |
测试交付 | 20 工时 | |
总计 | 280 工时 |
然后创建计划以完成这些任务。
制定进度计划是项目管理中的一个常用术语。通过在测试计划中创建可靠的进度表,测试经理可以将其用作监控项目进度、控制成本超支的工具。
要创建项目进度表,测试经理需要几种类型的输入,如下所示:
- 员工和项目截止日期:工作日、项目截止日期、资源可获得性是影响进度的因素
- 项目评估:基于评估,测试经理知道完成项目需要多长时间。这样他就可以制定合适的项目时间表
- 项目风险:了解风险,有利于测试经理在项目日程中增加足够的额外时间来处理风险
用一个例子来练习: 假设老板希望在一个月内完成A项目,已经在测试评估中估计了每项任务的工作量。可以按如下方式创建计划
步骤8) 测试交付内容
测试交付项是为支持测试工作而必须开发和维护的所有文档、工具和其他组件的列表。
在软件开发生命周期的每个阶段都有不同的测试可交付内容。
测试交付件在测试阶段之前提供:
- 测试计划文档。
- 测试用例文档
- 测试设计规范。
测试期间提供测试交付件 :
- 测试脚本
- 模拟器
- 测试数据
- 测试可追溯性矩阵
- 错误日志和执行日志。
测试交付件在测试周期结束后提供:
- 测试结果/报告
- 缺陷报告
- 安装/测试程序指南
- 发行说明