首先,我们先参考一下ISTQB定义的测试流程,如下图。

其中明确了测试计划为测试流程中一个重要的环节。

本文将从测试计划&策略的定义、构成部分、制定方法,来进行详细阐述。

测试计划的定义

  • 测试计划的主要活动是:识别测试任务、定义测试目标以及为了实现测试目标和任务确定必要的测试活动。-- ISTQB
  • To prescribe the scope, approach, resources and schedule of the testing activities. To identify the items being tested, the features to be tested, the testing tasks to be performed, the personnel responsible for task, and the risks associated with this plan(规定测试活动的范围、方法、资源和时间表。识别要测试的项目、要测试的功能、要执行的测试任务、负责任务的人员以及与此计划相关的风险  ) –IEEE829-1998

测试策略的定义

  • 在特定项目中,测试方法是测试策略的具体实现。测试方法的选择取决于实际情况,应当考虑风险、危害和安全、可用资源和人员技能、技术、系统的类型(比如客户定制与商业现货软件的比较)、测试对象和相关法规。-- ISTQB
  • Describe the overall approach to testing. For each major group of features or feature combinations. Specify the approach that will ensure that these feature groups are adequately tested. Specify the activities, techniques, and tools that are used to test the designated groups of features (描述测试的整体方法。对于每个主要的特性组或特性组合。指定确保这些特性组得到充分测试的方法。指定用于测试指定功能组的活动、技术和工具。) –IEEE829-1998

测试计划和测试策略的区别与联系

测试计划是对测试全过程的组织、资源、原则等进行规定和约束,并制定测试全过程各个阶段的任务以及时间进度安排,并提出对各项任务的评估、风险分析和管理需求。简言之,测试计划是从管理角度对整个测试活动进行规划和控制。

测试策略:在不同的项目背景下,根据产品需求和指标,分析产品的功能项和业务逻辑,并判断测试的重点和方向,在当前有限的条件下,统筹各方资源、采取合理有效的方法来推动项目的测试活动开展,以最少的软硬件、人力资源投入得到最佳的测试效果,达到符合当前环境的最优决策。

测试计划提出“做什么”,测试策略明确“如何做”

测试计划的构成

  1. 测试计划标识:用于唯一标识测试计划文档的名称和版本。组成标识的最小元素必须包含计划的名称、版本以及其状态。在其他项目文件中,通过该标识必须能够清晰准确地引用到该文件。标识文档的标准通常是由项目经理或组织的主要文档管理部门所指定的规范集所规定的。状态(草稿/发布)
  2. 介绍:介绍部分提供了该项目背景的简短概述。其目的是帮助参与项目的人员(客户、管理者、开发人员以及测试人员)能够更好地理解测试计划的内容。
  3. 测试对象或测试项:描述被测对象,包括其版本、修订级别, 详细说明传输介质的特性和规格说明.
  4. 要测试的特性:这一部分应该确定系统中所有应该被测试的功能和特征。
  5. 不测试的特性:为了避免误解和防止不切实际的预期,应该定义产品中哪些是不需要或者无法进行测试的(这可能是由于资源限制或者技术原因导致的)。由于测试计划是在项目前期就准备好的,所以上面的列表是不完善的。随着项目的进展,会发现有些组件或者特性是无法测试的。测试经理应该在状态报告中报告这些问题。
  6. 测试方法或策略:描述测试将使用的总的方法,对于测试每一个主要的特性和特性的组合将使用的方法、主要活动、技术、工具。基于风险,测试资源,测试对象,最后期限等维度,必须清楚地阐明所选择的方法是否可以到达测试目标以及为什么能够到达目标。基于风险分析来制定测试方法(假如缺少测试导致错误无法发现,将会产生哪些风险)。测试方法描述详细以识别主要任务,估算每个测试任务所需要的时间。描述期望的达到的测试广度。列出用来判断测试工作量的技术(基于经验或历史数据)、完成标准(如,错误频率)、 需求跟踪的工具。列出测试的重要约束,如测试项是否可得、测试资源是否可得和最后期限。]
  7. 测试准入准出条件:定义本测试项目的准入准出标准。在测试未开始时,只有达到规定的测试准入条件,才可以开始测试。在测试结束时,只有达到规定的测试准出条件,测试才可以结束。测试环境已经准备好;测试所需人力已到位;测试产品版本号无误;
  8. 暂停和恢复的标准:在测试过程中时,规定测试活动全部/部分暂停的标准;规定测试恢复时必须重做的测试活动。一旦触发测试活动暂停和恢复的条件,测试活动就进入另一种状态,此时应及时通知项目关系人。(一般情况,暂停和恢复都会引起测试周期的变化)。 准出:“执行的测试用例达到100%”,“Critical bug数目为0”和“Major缺陷率不高于80%”。暂停:server down, critical bug阻止测试,遇到重大自然灾害。; 测试重点方向偏离,测试策略错误,测试分配不均。任何影响测试交付的事情。重启:server up, critical bug was fix.
  9. 测试交付物:主要内容:测试计划;测试设计规格说明;测试用例规格说明;测试过程规格说明;测试项移交报告;测试日志;测试事件报告;测试总结报告
  10. 测试任务:列出测试活动所需的任务集、他们之间的依赖性以及所需技能。
  11. 测试环境准备: 列出期望的测试环境,包括硬件、通信、系统软件的物理特性,以及任何其他支撑测试所需的软件或设备。
  12. 责任划分:指出负责管理、环境准备、设计、执行、检查、培训、技术支撑的人员。
  13. 人员安排和培训:列出需要培训的人员,以及他们应该具有的技能级别,所需的技能培训。
  14. 进度表:列出项目时间表中的测试相关的里程碑以及测试项迁移事件。定义所需的测试里程碑,估计完成每项测试任务所需的时间,说明每个测试任务和测试里程碑的时间表。对每项测试资源(即辅助物、工具、人员),规定使用期限。
  15. 风险和应对措施:列出所有高风险假设,说明他们的应急措施。风险的应对措施:规避(放弃高风险任务) / 遏制(注入资金) / 转移(大额保险) / 化解 / 消减 / 容忍
  16. 审批:本计划必须由哪些人(姓名和职务)审批。留下签名和日期的空间。

测试策略的构成

  1. 范围和总览:列出需要执行的测试活动和阶段,测试计划中的时间表,地点,参与人员以及职责。使用到的测试类型:单元测试,集成测试,系统测试,验收测试(Alpha、Beta、用户验收、运营验收、功能验收),回归测试,黑盒测试:功能测试、逻辑功能测试、界面测试、易用性测试、兼容性测试,白盒测试,灰盒测试,接口测试。性能测试:对时间的要求、对资源的使用等。
  2. 测试方法:实现测试目标的具体方法;测试策略分为预防式和应对式两种;定义测试过程、测试级别以及每个团队成员的角色和职责。如果使用自动化测试,则需定义自动化策略和工具使用细节。预防式:在问题还没有发生前,预防问题发生的策略。应对式:在出现问题出现以后,如何应对的策略。
  3. 测试环境:列举测试环境配置信息。包括测试平台、内存要求、操作系统和硬件(测试设备: 手机/Mac/Linux)要求。
  4. 测试工具:测试执行所需的管理工具和自动化工具。为了进行性能、负载和安全性测试,组织需要列出所需的所有工具和方法。Confluence, JIRA, x-ray, MS(excel, project)
  5. 风险分析: 本节将对所有可能的风险进行概述。制定减轻风险,减少失败的详细计划。
  6. 评审和授权:本测试策略文档需要被审查和授权。根据组织结构,项目相关负责人员(项目经理,业务分析,开发经理,测试经理等)需要签字授权。测试策略文档是动态的,可以在以后需要时进行更改。

制定测试计划和策略

参考IEEE829标准,如下图流程。

https://www.guru99.com/what-everybody-ought-to-know-about-test-planing.html

Step 1: 分析产品。

在测试一个产品之前,你必须先了解产品。创建测试计划的第一步是分析产品、其特性和功能,以获得更深入的理解。进一步,探索业务需求和客户希望从最终产品中实现什么。理解用户和用例,从用户的角度开发测试产品的能力。

  • 与客户,产品部门,开发部门的人面对面地交流。最高效最准确的方式,理想状态下,适合小型产品。
  • 查看产品和项目相关的文档。最常用的方式,产品需求规格说明书/user story/用户手册/以前的用例/以前的bug/以前的计划书(总结书)/概要设计…
  • 完整的使用一遍产品。

Step 2: 制定测试策略。

测试策略是制定测试计划的关键步骤,属于高级别文档。分析完产品,就可以为不同测试级别创建测试策略了。测试策略可以由几种测试技术组成,产品需求将决定使用哪些测试技术。(项目的测试目标和实现这些目标的方法,确定测试工作和成本)

  • 定义测试范围(了解准确的客户需求,考虑项目预算,参考产品需求说明书,测试团队的技能和才干)
  • 确定测试类型 (测试软件产品的测试类型有很多。您的团队不可能有足够的努力来处理所有类型的测试。作为测试管理者,您必须设置测试类型的优先级。)
  • 风险和问题
    团队成员缺乏测试所需技能 组织提供培训
    项目时间太紧,不能按时完工 为测试活动设置优先级
    测试经理管理能力不足 对管理者进行领导力培训
    团队缺乏合作 增加鼓励,团队建设
    预算失误,成本超支 注重项目计划,加强监控和跟踪
  • 测试运筹。谁来干(Who),什么时候开始干(When)

Step 3: 具体化测试目标

测试的目的是发现尽可能多的软件缺陷;确保被测试的软件在发布之前是没有bug的。

  • 列出所有可能需要测试的软件特性(功能/性能/GUI)(思维导图x-mind)
  • 根据上述特性,定义测试目标

Step 4: 定义测试标准

测试过程中判断各项指标的标准或规则。

举例:

暂停标准: 指定测试的临界暂停条件。如果在测试期间满足了暂停条件,则活动测试循环将暂停,直到解决该条件为止。

出口标准:它指定了表示测试阶段成功完成的标准。退出标准是测试的目标结果,是进入下一阶段开发之前的必要条件。示例:所有关键测试用例的95%必须通过。

入口标准/重启标准:用例设计标准/缺陷报告标准/结果统计标准。

这个标准由测试经理/开发/产品经理共同来制定,作为测试的代表,在制定该标准时要有所底线,争取到更有利于测试的标准。如果标准定义不当,导致产品体验不佳,就会引起客户抱怨,蒙受巨大损失。

Step 5: 资源安排

资源可以是完成一个项目所需的人力、设备和材料

资源计划是测试计划的重要因素,因为它有助于确定项目要使用的资源(员工、设备……)的数量。因此,测试经理可以为项目做出正确的计划和评估。

人力资源:Test Manager, Tester, Test Admin, QA…

系统资源:Server, Test tool, network, Computer, Phone…

资源的安排:可依据个人特长安排不同的测试模块,以达到最佳测试效果。

系统资源:需要和公司IT部门进行协商合作(了解当前公司的IT政策,各项设备担当,目前拥有的硬件资源,显得尤为重要)。在测试过程中,IT需要承担怎样的协助任务。

Step 6: 测试环境

测试环境是软件和硬件的设置,测试团队将在其上执行测试用例。

为了完成这项任务,需要测试团队和开发团队之间加强合作

测试环境由真实的业务和用户环境以及物理环境(如服务器、前端运行环境)组成。

防火墙申请。电脑分辨率/容量有无规定。浏览器版本/语言有无要求。

  • 这个网站同时能处理的最大用户连接是多少
  • 硬件/软件需求为何
  • 用户电脑有无特别设定

Step 7: 计划和评估

将工作划分为测试活动并估计所需的工作。估计每个任务所需的资源。有助于控制测试过程的进度。

当一切都计划好后,需要书面的文档进行记录和跟踪。

输出测试计划,使用管理工具(Excel, JIRA, X-Ray, MS Project)

Step 8: 测试交付

测试交付物是为了支持测试工作而必须开发和维护的所有文档、工具和其他组件的列表。

实际问题思考

1. 在测试资源不足的情况下,要按时完成测试目标,应如何制定测试策略?

请求增加测试资源(人)/请求减少测试目标/ 降低测试颗粒度(low level ->high level)/知会测试遗留风险/加班

2. 测试环境不具备(例如无法访问Google)时,测试策略应如何制定?

任务分摊,能测的地方测Google/购买VPN/舍弃该功能不测

3. 测试暂停后,在测试时间表不变的情况下,应如何改善测试策略?

优先级高的进行/从测试工程师中选择一两名测试经验丰富的进行探索性测试,其他人执行用例/增加人力/加班

以下为相关的一些参考资料,共享出来一起学习

  1. 测试计划:参考模板 https://strongqa.com/qa-portal/testing-docs-templates/test-plan
  2. 测试设计规格说明:test design specification.   http://www.professionalqa.com/test-design-specification / http://dicom.nema.org/Dicom/Geninfo/GUIDELIN/TDV2L3.HTM
  3. 测试用例规格说明: test case specification. 什么场景需要测试,多久测一次,优先级,case区分标准。http://www.professionalqa.com/test-case-specification
  4. 测试过程(规程)规格说明: test procedure specification.测试用例的开发、实现、确定优先级和组织都应该包含在测试规程规格说明中,测试规程(或者手工测试脚本)描述了测试用例执行的顺序. http://www.professionalqa.com/test-procedure
  5. 测试项移交报告: test item transmittal report.  有时候也称为 Release Note. https://qa-platforms.com/test-item-transmittal-report/
  6. 测试日志: test log  即我们说的test result执行结果  http://www.professionalqa.com/test-log
  7. 测试事件报告: test incident report. 记录所有的缺陷/问题/测试事故/测试人员在测试中发现的所有问题。  http://www.professionalqa.com/test-incident-report
  8. 测试环境准备:列出测试所需的特殊工具及需求(书籍、办公室)安全性要求比较高。需要和客户密切沟通。

---END---

如何制定 - 测试计划和策略 (详细讲解)相关推荐

  1. 【华为云技术分享】【测试微课堂】 有的放矢制定测试计划

    本文着重介绍如何确定测试目的,划定测试范围,制订测试策略,组件测试团队,准备测试工具和环境,制订测试计划. 凡事预则立,不预则废.个人事项,团队协作都离不开计划.外出游玩有出行计划,产品立项有商业计划 ...

  2. 【华为云技术分享】测试微课堂 | 有的放矢制定测试计划

    本文着重介绍如何确定测试目的,划定测试范围,制订测试策略,组件测试团队,准备测试工具和环境,制订测试计划. 凡事预则立,不预则废.个人事项,团队协作都离不开计划.外出游玩有出行计划,产品立项有商业计划 ...

  3. 软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型

    文章目录 软件危机 软件的定义 软件危机典型表现 产生软件危机的原因 消除软件危机的方法 软件工程 什么是软件工程 软件工程的本质特征 软件工程的基本原理 软件工程方法学 传统方法学 面向对象方法学 ...

  4. 一文详细讲解API网关核心功能和API管理扩展

    本文将详细讲解API网关的基础概念,使用场景和核心功能,以及基于API网关核心引擎做的API全生命周期管理功能扩展等,最后介绍当前主流的开源API网关引擎. API网关概述 在微服务架构体系里面,我们 ...

  5. oracle怎么将一列挪到另一列,详细讲解Oracle数据库的数据迁移方法

    <详细讲解Oracle数据库的数据迁移方法>由会员分享,可在线阅读,更多相关<详细讲解Oracle数据库的数据迁移方法(4页珍藏版)>请在人人文库网上搜索. 1.详细讲解 Or ...

  6. mybatis-plus超详细讲解

    (6条消息) mybatis-plus超详细讲解_zdsg45的博客-CSDN博客_mybatis-plushttps://blog.csdn.net/zdsg45/article/details/1 ...

  7. PHP 操作redis 详细讲解

    2019独角兽企业重金招聘Python工程师标准>>> Redis 菜鸟教程学习网址 http://www.runoob.com/redis/redis-install.html 挺 ...

  8. Redis最详细讲解

    Redis最详细讲解 原文地址 本文脑图 redis基本数据结构 本文脑图 前言 Redis核心对象 String类型 int SDS SDS与c语言字符串对比 String类型应用 Hash类型 字 ...

  9. 2.5万字详细讲解个人网站的开发过程和项目的部署

    目录 简介 1 技术介绍 1.1 个人博客功能 1.2 技术组合 1.3 工具与坏境 2 项目的环境配置 2.1 vue的环境配置 2.2 解决跨域问题 2.3 关于图标的获取 3 前端技术 3.1 ...

最新文章

  1. scanf(%s,a)和gets(a)的差别
  2. 安防工程商必须知道的PoE供电真相
  3. Apache安装遇到的相关问题
  4. PAT甲级1046 Shortest Distance:[C++题解]前缀和
  5. JVM中GC小对象配置
  6. 什么是代理模式?代理模式有什么用?通过一个小程序分析静态代理和动态代理。自己简单实现动态代理。JDK动态代理和CGLIB动态代理的区别。
  7. 20145318赵一《网络对抗》后门原理与实践
  8. Flutter 实现微信摇一摇的功能 Flutter 加速度感应
  9. LeetCode(872)——叶子相似的树(JavaScript)
  10. 修改数据表DataTable某一列的类型和记录值
  11. 南阳oj-----D的小L(algorithm全排列用法)
  12. JAVA数据转换常用方法
  13. 变编程用户输入月份,判断这个月份是属于哪个季节?
  14. 免费在excel密码破解--超好用
  15. FMI飞马网 | AI人工智能:54份行业重磅报告汇总(附下载)
  16. 设置linux定时任务,linux定时任务的设置
  17. Vue 加载 SVG 图片文件
  18. 自发光效果(控制自发光的颜色、强度,呼吸光可选)
  19. 彩票,双色球,模拟开奖小项目
  20. 再说说TCP和UDP源端口的确定

热门文章

  1. 基于JAVA框架的电脑测评系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  2. flink stream 终于上local 集群 运行起来
  3. 100W个微信红包封面,人人都能领取到!!!
  4. 互联网电影院带来新突破,5G+4K’
  5. 思科交换机密码清除方法记录
  6. 物竞天择2 NS2 -MOD制作教程 -制作工具
  7. 吐槽板。(就当是个留言板吧....)
  8. Canvas绘制网格
  9. 奇异值分解的物理意义
  10. Git学习笔记之时光穿梭机