大家好,我是阿萨。今天学习测试计划如何书写。 虽然很多人日常工作中都知道测试计划是什么,但是写好测试计划,其实并不容易。今天就来一起学习下测试计划如何书写。
什么是测试计划?
测试计划是一份为软件产品所准备的详细文档, 其中包含测试策略,测试目标,测试日程,测试评估,测试可交付成果以及测试执行过程中的测试资源。 测试计划可以帮助我们识别验证应用程序质量所需要的所有投入。 测试计划作为一个蓝图,将软件测试活动作为一个被定义的过程来进行,它被测试经理详细地监控和控制。
就像ISTQB 定义的那样:软件测试计划是一份描述了测试范围,测试方法,测试资源和包含各项计划测试活动的日程。
为什么测试计划很重要?
准备测试计划有很多好处:
1. 帮助非测试团队成员比如:开发人员,业务管理人员,客户等理解测试的详细情况。
2. 测试计划帮助我们思考,它就像一份规则指南一样,需要被严格 遵守。
3. 像测试评估,测试范围,测试策略等重要方面会列到测试室计划里,它可以被管理团队评审或者其他项目重复利用。
如何编写一份测试计划?
你已经知道了测试室管理流程里最重要的一份工作就是死制定测试计划。请参考如下8大步骤完成测试计划:
1. 分析产品
2. 设计测试策略
3. 定义测试对象
4. 定义测试准入准出准则
5. 规划资源
6. 规划测试环境
7. 计划和评估各项测试活动
8. 确定测试可交付成果
步骤1:分析产品
如果不了解一个产品,如何测试它?答案是不可能测试它。所以在测试前必须了解一个产品。比如要测试一个 银行网站,肯定要研究客户和最终用例来了解它们对应用程序的需求和期望。
- 谁会用这个网站?
- 用它来干什么?
- 它如何工作?
- 产品中用到了哪些软件和硬件?
你可以用如下方法来分析一个网站:
浏览下改网站,查看相关产品文档是必须要做的事情。查看相关文档可以帮助理解改网站的所有需求以及如何使用它。如果不清楚相关条目,就可以和客户,开发人员或者设计师了解相关背景。
步骤2:准备测试策略
测试策略是软件测试过程中测试计划里非常重要的一个步骤,测试策略经常是测试经理准备的高级的测试文档。该文档包含了:
- 测试目标以及如何达成测试目标。
- 确定测试的成本和投入
回到刚才的项目里,如何为一个银行项目准备测试策略呢,请参考如下步骤:
步骤2.1:定义测试范围
开始任何测试活动之前,首先应该了解测试范围。
- 系统要被测试的所有组件包括但不限于硬件,软件,中间件等等,都应该被定义到范围内。
- 所有不在 测试范围内的内容都应该被定义到 不在测试范围内。
对所有项目干系人来说,定义测试范围都是一件非常重要的。一份精确的范围可以帮助我们:通过精准测的测试信息给所有人信心。让所有项目成员对哪些会做测试和那些不做测试都有一个精准的理解。如何确定测试范围?首先必须了解如下信息:
- 精准的客户原始诉求
- 产品预算
- 产品详细说明书
- 测试团队当前的技能水平
有了如上信息后,范围内和范围外就有了明确的定义。就拿银行系统来说:
- 软件需求说明书只能怪,讲了银行项目只集中在测试所有功能和银行网站的外部接口。
- 非功能测试包括,压力测试,性能测试以及当前的逻辑数据库都不在测试范围内。
有问题的场景客户想要测试API,但是项目预算不允许测试,该怎么办?这种情况下,需要让客户确信 接口测试是额外的工作,同时需要消耗十分重要的资源。 需要数据支撑事实。 必须明确API 测试如果要包含在测试范围内需要增加 XXX 预算。
如果客户同意了新的范围后,不在范围内和范围内的条目就变更为:
- 范围内:功能测试和API 测试
- 范围外: 数据库测试,硬件测试和任何外部接口
步骤2.2:确定测试类型
测试类型是给出预期测试结果的标准测试过程。每一种测试类型都是为了发现某一种产品的缺陷而制定的。但是所有的测试类型都是为了达成一个目标:在发布产品给客户之前发现所有的缺陷。常见的测试类型如下:
单元测试:软件测试的最小单元接口测试:测试应用程序的接口集成测试:组合所有软件模块然后作为一个测试组合来测试。
系统测试:在一个完整的集成好的系统里根据系统的合规说明和需求文档来执行的测试。
安装卸载测试:主要集中在客户安装和卸载以及成功安装和删除过程中 的测试。
敏捷测试:在系统中使用敏捷测试方法执行的测试在测试软件产品的过程中有成千上百的软件类型。
测试团队肯定没有足够的经历去处理各种类型的测试四。 作为测试经理,必须对测试类型设置一个优先级。
- 哪些测试类型可以集中在测试web 应用程序测试中?
- 哪些测试类型应该作为节省成本被忽略?
步骤2.3:描述风险和问题
风险是未来不确定会发生但是又一定概率发生同时会给系统带来潜在损失的事件。当风险发生后,它就叫问题。常见的测试计划中的风险和消减措施有:
风险 | 消减措施 |
团队成员缺少网站测试的必备技能 | 规划相关培训课程来提升技能 |
项目日程太紧张,很难在规定时间内完成。 | 为每一项测试活动添加优先级。 |
测试经理管理技能比较差 | 计划管理能力的培训计划 |
团队成员缺少积极合作精神,工作积极性差 | 在团队工作中鼓励每一个团队成员 |
成本估算错误,成本超支 | 开始工作前,评估范围,尤其是项目计划以及持续追踪当前项目进度 |
步骤2.4:组织测试工作
在测试组织工作中,测试经理需要回答如下问题:
- 谁会测试?
- 测试什么时候开始?
谁来测试?
您可能不知道将要测试的测试人员的确切名称,但是可以定义测试人员的类型。为了选择合适的成员来完成特定的任务,你必须考虑他的技能是否胜任该任务,还要估计项目预算。为任务选择错误的成员可能导致项目失败或延迟。具备以下技能的人最适合进行软件测试:
- 能够理解客户的观点
- 强烈的品质要求
- 注重细节
- 良好的合作
在您的项目中,负责测试执行的成员是测试人员。根据项目预算,您可以选择团队成员或外包成员作为测试人员。测试什么时候进行?测试活动必须与相关的开发活动相匹配。当你拥有如下图所示的所有所需项目时,你就可以开始测试
步骤3):定义测试目标
测试目标是测试执行的总体目标和成果。测试的目标是发现尽可能多的软件缺陷;在发布之前,确保所测试的软件没有错误。要定义测试目标,您应该执行以下两个步骤
- 列出所有可能需要测试的软件特性(功能、性能、GUI…)
- 基于上述特征定义测试的目标或目标
让我们应用这些步骤来找到银行测试项目的测试目标你可以选择“自上而下”的方法来找到网站可能需要测试的功能。在这种方法中,您将被测试的应用程序分解为组件和子组件。在前面的主题中,您已经分析了需求规范并浏览了网站,因此您可以创建一个思维导图来查找以下网站功能
该图显示了银行网站可能具有的所有功能。基于以上特性,您可以定义项目的Test Objective,如下所示
- 检查网站功能(帐户,存款…)是否正常工作,在真实的商业环境中没有任何错误或错误
- 检查网站的外部界面,如用户界面是否正常工作,并满足客户的需求
- 验证网站的可用性。这些功能对用户是否方便?
步骤4):定义测试标准
测试标准是测试程序或测试判断所依据的标准或规则。有以下两种测试标准暂停标准指定测试的严重暂停标准。如果在测试期间满足暂停条件,则活动测试周期将暂停,直到问题得到解决。测试计划示例:如果您的团队成员报告有40%的测试用例失败,那么您应该暂停测试,直到开发团队修复了所有失败的用例。
退出标准它指定了表示测试阶段成功完成的标准。退出标准是测试的目标结果,是进入下一个开发阶段之前所必需的。示例:95%的关键测试用例必须通过。定义退出标准的一些方法是通过指定目标运行率和通过率。
- 运行率是测试规格中执行的测试用例数量/测试用例总数之间的比率。例如,测试规范总共有120个测试用例,但是测试人员只执行了100个用例,所以运行率是100/120 = 0.83 (83%)
- 通过率是通过的测试用例数与执行的测试用例数之间的比率。例如,在执行的100个测试用例中,有80个测试用例通过,因此通过率为80/100 = 0.8 (80%)
这些数据可以在测试度量文档中检索。
- 除非给出明确的理由,否则运行率必须为100%。
- 通过率取决于项目范围,但达到高通过率是一个目标。
测试计划示例:您的团队已经完成了测试执行。他们向您报告测试结果,并希望您确认退出标准。在上面的例子中,强制运行率是100%,但是测试团队只完成了90%的测试用例。这意味着运行速率不满足,所以不要确认退出条件
步骤5)资源规划
资源计划是完成项目任务所需的所有类型资源的详细总结。资源可以是完成一个项目所需的人力、设备和材料资源计划是测试计划的重要因素,因为它有助于确定用于项目的资源(员工、设备……)的数量。因此,测试经理可以为项目制定正确的计划和评估。此部分表示项目的推荐资源。人力资源下表表示项目团队中的各种成员
序号 | 成员的任务 |
1. 测试经理 | 管理整个项目确定项目方向获取合适的资源 |
2. 测试人员 | 确定并描述适当的测试技术/工具/自动化体系结构验证和评估测试方法执行测试、记录结果、报告缺陷。根据项目预算,测试人员可以是内部成员,也可以是外部成员对于技能要求不高的任务,我建议你选择外包成员来节省项目成本。 |
3.测试中的开发人员 | 实现测试用例、测试程序、测试套件等。 |
4.测试管理员 | 建立并确保测试环境和资产得到管理和维护支持测试人员使用测试环境进行测试执行 |
5.SQA成员 | 负责质量保证工作检查以确认测试过程是否满足规定的要求 |
系统资源
对于测试一个web应用程序,你应该像下面的表格那样规划资源:
序号 |
资源 | 描述 |
1 | 服务器 | 安装测试中的web应用程序这包括一个单独的web服务器、数据库服务器和应用程序服务器(如果适用的话) |
2 | 测试工具 | 测试工具是自动测试,模拟用户操作,生成测试结果你可以在这个项目中使用大量的测试工具,比如Selenium、QTP等等 |
3 | 网络 | 您需要一个包括局域网和Internet在内的网络来模拟真实的业务和用户环境 |
4 | 电脑 | 用户经常用来连接web服务器的PC机 |
步骤6):规划测试环境
什么是测试环境测试环境是软件和硬件的设置,测试团队将在其上执行测试用例。测试环境包括真实的业务环境和用户环境,以及服务器、前端运行环境等物理环境。如何设置测试环境回到银行项目,您如何为这个银行网站设置测试环境?为了完成这项任务,您需要测试团队和开发团队之间的强有力合作您应该向开发人员询问一些问题,以便清楚地了解被测试的web应用程序。以下是一些推荐问题。当然,如果需要,你也可以问其他问题。本网站可同时处理的最大用户连接数是多少?安装本网站有什么硬件/软件要求?用户的计算机是否需要任何特定的设置来浏览网站?常见的web 网站使用场景:用户----浏览器----网络----Web服务器---数据库服务器
步骤7):计划和评估
在测试评估这篇文章中,您已经使用了一些技术来评估完成项目的工作量。现在您应该将评估和时间表包括到测试计划中在测试评估阶段,假设您将整个项目分解为小任务,并为每个任务添加如下所示的评估
任务 | 成员 | 估计工作量 |
创建测试规范 | 测试设计人员 | 170工时 |
执行测试执行 | 测试员,测试管理员 | 80工时 |
测试报告 | 测试人员 | 10个工时 |
测试交付 | 20个工时 | |
总计 | 280工时 |
然后创建完成这些任务的计划。
制定进度计划是项目管理中常用的术语。通过在测试计划中创建一个可靠的进度表,测试经理可以将其用作监控项目进度、控制成本超支的工具。要创建项目进度表,测试经理需要以下几种类型的输入:
- 员工和项目截止日期:工作日、项目截止日期、资源可用性是影响进度的因素
- 项目评估:基于评估,测试经理知道完成项目需要多长时间。这样他就可以制定合适的项目时间表
- 项目风险:理解风险有助于测试经理在项目计划中增加足够的额外时间来处理风险
步骤8)测试交付成果
测试可交付成果是为了支持测试工作而必须开发和维护的所有文档、工具和其他组件的列表。在软件开发生命周期的每个阶段都有不同的测试交付物。在测试阶段之前提供测试成果。
- 测试计划文档。
- 测试用例文档
- 测试设计规范。
测试过程中提供测试成果
- 测试脚本
- 模拟器。
- 测试数据
- 测试跟踪矩阵
- 错误日志和执行日志。
测试周期结束后提供测试可交付成果。
- 测试结果/报告
- 缺陷报告
- 安装/测试程序指南
- 发布说明
完整的一个测试计划就准备好了。