如何制定语境驱动的测试计划

本指南旨在帮助读者制定测试计划。请注意,真正的测试计划是实际指导自己实施测试的一套想法。不管读者是否制定书面测试计划,我们设计的这个指南都会有所帮助。

  本指南并不是一种模板,不是供读者填写的表格,而是一组旨在帮助读者思考的思想,用于降低读者遗忘重要内容的可能性。我们使用的是简洁语言和描述,有可能不太适合测试新手。本指南主要向有经验的测试员或测试组长提供支持。

  以下分 七个任务主题。这些主题没有一定顺序。实际上,读者可以按任何顺序阅读。只是需要注意,测试计划的质量与是否很好地执行了任务以及使否很好地考虑了像这里提出的问题相关。状态检查部分有助于读者确定是否制定了足够好的测试计划,但是我们建议读者要在整个项目开发过程中,重新检查并修改测试计划(至少要在心中修改)。

  1. 监视影响测试计划的主要问题

  确定影响制定实用、有效的测试策略中时间、工作量或可行性要素的风险、障碍或其他挑战。要把握计划的整体作用。在整个项目开发过程中,全程监视这些问题。

  ____ 状态检查___________________________________________________

  □ 是否有要满足的特别关键或很难度量的产品质量标准?

  □ 产品是否复杂或很难学会?

  □ 测试员是否需要特殊培训或工具?

  □ 是否很难得到或配置的部分测试平台?

  □ 是否将测试未集成或半可操作的产品组件?

  □ 是否存在具体的可测试性问题?

  □ 项目团队是否缺乏产品设计、技术或用户群的经验?

  □ 测试是否必须很快开始?

  □ 是否有制定测试计划所需的信息还没有收集到?

  □ 是否能够评审被测产品的某个版本(甚至是演示版、原型版或老版本)?

  □ 是否有足够的难以录用或组织的测试人员?

  □ 是否必须遵循自己所不熟悉的测试理论?

  □ 项目计划的制定是都没有考虑测试需要?

  □ 计划是否要经过漫长的协商或批准?

  □ 测试员是否远离客户?

  □ 计划是设计的一个内容吗?

  □ 客户是否说不出测试员能够为他们做什么?

  2. 明确任务

  本节给出的任何一部分或全部目标都可能是具体测试任务的一部分。有些任务比另外一些更重要。根据对具体项目的了解,为这些目标排队。对于所有使用的目标,找出可以用来评判的具体的成功指标。

  需要考虑的任务要素

  □ 快速找出重要问题。

  □ 进行综合质量评估。

  □ 确认产品质量是否达到具体标准。

  □ 尽可能缩短测试时间或降低测试成本。

  □ 尽可能提高测试效率。

  □ 就提高质量或可测试性问题,向客户提出建议。

  □ 就如何测试向客户提出建议。

  □ 保证测试过程总是可以充分说明的。

  □ 严格遵守特定的方法或指示。

  □ 使特定的项目相关人员感到满意。

  可能的工作产品

  □ 说明测试任务的简短电子邮件。

  □ 一页纸篇幅的测试要求。

  ____ 状态检查___________________________________________________

  □ 是否知道谁是自己的客户?

  □ 关键人物是否赞同测试任务?

  □ 测试任务是否足够清晰,以作为制定计划的基础?

3. 分析产品

  了解被测试产品及其内部技术。了解如何使用被测产品。需要深入下去。随着对产品了解的深入,测试会变得越来越好,因为自己越来越接近成为产品专家

  分析什么

  □ 用户(用户是谁,他们的职业是什么)。

  □ 结构(代码、文件等)。

  □ 功能(产品做什么)。

  □ 数据(输入、输出、状态等)。

  □ 平台(外部硬件和软件)。

  □ 运营(产品是用来完成什么任务的)。

  分析方式

  □ 执行探索式测试。

  □ 评审产品和项目文档。

  □ 与设计人员和用户面谈。

  □ 与类似产品进行比较。

  可能的工作产品

  □ 测试覆盖大纲。

  □ 带注释的规格说明。

  □ 产品问题清单。

  ____ 状态检查___________________________________________________

  □ 设计人员赞同产品覆盖大纲吗?

  □ 设计人员认为测试员了解产品吗?

  □ 测试员能够可视化产品并预测产品行为吗?

  □ 测试员能够产生测试数据(输入和结果)吗?

  □ 测试员能够配置并操作被测产品吗?

  □ 测试员理解产品将被怎样使用吗?

  □ 测试员是否发现设计中的不一致问题?

  □ 测试员是否找出显式和隐式规格说明?

  4. 分析产品风险

  被测产品可能怎样以一种重要方式失效?开始测试员最多也智慧有一个一般想法。随着测试员对产品了解的深入,测试策略和测试会变得越来越好,因为对被测产品的失效机理了解的越来越多。

  分析对象

  □ 威胁(具有挑战性的条件和数据)。

  □ 脆弱性(在什么地方可能失效)。

  □ 失效模式(可能的问题种类)。

  □ 失效影响(问题的严重程度)。

  分析方式

  □ 评审需求和规格说明。

  □ 评审实际失效。

  □ 与设计人员和用户面谈。

  □ 对照风险启发和质量评判大纲评审产品。

  □ 找出一般问题和失效模式。

  可能的工作产品

  □ 组件/风险矩阵。

  □ 风险清单。

  ____ 状态检查___________________________________________________

  □ 设计人员和用户对风险分析认可吗?

  □ 测试员能够找出所有重要的问题种类吗?这些问题都应该在测试期间出现吗?

  □ 为了尽可能提高测试效果,测试员知道该把测试工作集中到哪些对象上吗?

  □ 设计人员是否采取措施使重要问题更容易被检测,或降低发生的可能性?

  □ 测试员如何发现自己的风险分析是否准确?

  5. 设计测试策略

  为了根据已有的产品最佳信息快速、有效地测试,测试员可以做什么?首先尽可能做出最好的决策,同时又要让测试策略能够在项目整个开发过程中改进。

  考虑五方面的手段

  □ 以测试员为核心的手段。

  □ 以覆盖率为核心的手段(结构覆盖率和功能覆盖率)。

  □ 以问题为核心的手段。

  □ 以活动为核心的手段。

  □ 以评估为核心的手段。

  计划方式

  □ 针对风险和产品域确定手段。

  □ 可视化具体和实用手段。

  □ 使测试策略多样化,尽可能减少遗漏重要问题的机会。

  □ 寻找通过自动化测试扩展测试策略的途径。

  □ 不要计划得过死,使测试员能够发挥自己的才智。

  可能的工作产品

  □ 逐项列出的每条所选测试策略以及如何运用的说明。

  □ 风险/任务矩阵。

  □ 所选测试策略固有的问题或挑战清单。

  □ 针对没有充分覆盖的产品部分提出的建议。

  □ 测试用例(仅当需要时)。

  ____ 状态检查___________________________________________________

  □ 客户认同测试员制定的测试策略吗?

  □ 测试策略给出的所有内容都是必要的吗?

  □ 测试策略是否能够实际贯彻?

  □ 测试策略是否过于通用?可以容易地用于任何产品吗?

  □ 是否还有不准备测试的任何重要问题?

  □ 测试策略利用了可用的资源和帮助者吗?

6. 条件计划

  测试经理将如何实现测试策略?测试策略会受到条件约束或指示的很大影响,努力争取所需的资源,并尽量利用可用的所有资源。

  保障条件方面的问题

  □ 测试工作量估计和进度评估。

  □ 可测试性宣传。

  □ 测试团队力量(合适技能)。

  □ 测试员培训与管理。

  □ 测试员任务分配。

  □ 产品信息收集与管理。

  □ 项目团队会议、沟通和协同。

  □ 与项目团队所有其他小组、包括开发小组的关系。

  □ 测试平台的获得和配置。

  □ 约定和协议。

  □ 测试工具和自动化测试。

  □ 插桩和模拟需要。

  □ 测试包的管理和维护。

  □ 构建和传送协议。

  □ 测试周期管理。

  □ 错误报告系统和协议。

  □ 测试状态报告协议。

  □ 代码冻结与增量测试。

  □ 项目最后的压力管理。

  □ 测试停止协议。

  □ 测试效果的评估。

  可能的工作产品

  □ 问题清单。

  □ 产品风险分析。

  □ 责任矩阵。

  □ 测试进度计划。

  ____ 状态检查___________________________________________________

  □ 项目团队的保障条件是否支持已制定的测试策略?

  □ 是否存在阻碍测试的问题?

  □ 测试条件和策略是否能够修改,以适应可以预见的问题?

  □ 现在是否可以开发测试,以后再解决其余问题?

  7. 共享测试计划

  测试员并不孤独。测试过程必须服务于项目团队。因此,要吸收项目团队成员参与测试计划的制定。不必夸大这个问题,至少要与团队的关键成员讨论,从而得到他们的理解和隐含的支持,以争取实现测试计划。

  共享方式

  □ 吸收设计人员和项目相关人员参加测试计划制定过程。

  □ 积极征求有关测试计划的意见。

  □ 尽自己所能帮助开发人员获得成功。

  □ 帮助开发人员理解他们的行为会对测试产生的影响。

  □ 与技术文档编写员和技术支持人员就分享质量信息进行沟通。

  □ 请设计人员和开发人员评审和批准参考材料。

  □ 记录和跟踪约定。

  □ 请别人分段评审测试计划。

  □ 通过减少测试计划文档中不必要的文字,来改进文档的可评审性。

  目标

  □ 对测试过程的一致理解。

  □ 对测试过程的一致承诺。

  □ 测试过程的合理参与。

  □ 管理层对测试过程的合理预期。

  ____ 状态检查___________________________________________________

  □ 项目团队是否关注测试计划。

  □ 项目团队,特别是一线管理人员是否理解测试小组的角色?

  □ 项目团队是否感觉到测试小组关心项目团队的最佳利益?

  □ 测试小组和项目团队其他小组之间是否有对立或积极的关系?

  □ 是否有人认为测试员没有将注意力集中到重要的测试上?

  =========================================================================

  这是一篇很长的文章,是讨论如何制定语境驱动测试的测试计划。会有很多的检查项,帮助读者不要忘记重要的内容。如果想照搬,肯定是不现实的。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-26 01:43:51

如何制定语境驱动的测试计划的相关文章

软件测试的语境驱动方法

我们属于有时叫做软件测试语境驱动学派的一帮人.经过多年(断断续续),我们最后开发出一种原则描述,我们相信这种描述反映了这些松散地聚合在一起充当这一派思想领导的人们的共同观点. 本书给出了语境驱动思维的大量例子,并解释了我们在团建开发中的体会.随着本书的出版,我们也创建了一个网站,即context-driven-testing.com,以进一步发展这个学派. 如果读者阅读了以下给出的原则和说明,决定也亲自加入这个学派,可访问context-driven-testing.com并加入这个集体. 语境

语境驱动测试7原则

本文系<探索式测试实践之路>第1.2节,简要的讨论了"语境驱动测试"(Context Driven Testing)的7条原则. 探索式测试的奠基人和积极实践者Cem Kaner和James Bach都支持语境驱动测试.语境驱动测试的7条基本原则对于正确理解并应用探索式测试具有重要意义. 原则1:任何实践的价值都取决于其语境(Context). 这条原则几乎是不言自明的.中国人很早之前就有相似的认识,"南橘北枳"[ 语出<晏子春秋>,其成书于

探索式测试的问与答(2)

接探索式测试的问与答(1) 既然学习非常重要,那么如何才能高效地学习呢?软件专家Andrew Hunt指出:"一种高效的学习环境应该允许你安全地做三件事情:探索.创造和应用."Andrew的解释如下: 探索就是在陌生的环境中玩(Play).你需要自由地探索才能学习.我们不仅仅接受信息,而是亲自探索和构建思维模型.玩引入了一种新奇的感觉,也就是 乐趣.用一种好玩的方式学习新资料或者解决问题,可以让这个过程变得更让人享受,也让学习变得更容易.为了更好地学习,请更好地玩. 你需要自由地创造-

探索式测试的问与答(1)

本节用对话的形式讨论探索式测试的概念与实践.提问者是本书的一位虚拟读者,回答者是本书的作者们. 问:探索式测试中的"探索"该如何理解? 答:所谓探索是指有目的的漫游,即带着使命在某个空间中漫游,但没有预先确定的路线.探索包括对产品与技术的深入研究和基于研究成果的实践应用. 问:如何实施探索式测试? 答:本书第3部分将专门讨论该问题.这里先介绍一种可行的探索式测试实施方法,其灵感来源是基于测程的测试管理(Session-Based Test Management). 探索式测试鼓励测试人

51Testing专访史亮:测试人员在国外

版权声明:51Testing软件测试网原创出品,转载时请务必以超链接形式标明文章原始出处.作者信息和本声明,否则将追究法律责任. 史亮,东南大学计算机软件与理论专业博士,研究领域为软件分析与测试.2006年加入微软(中国)有限公司,任职软件开发测试工程师,负责微软在线业务与商业智能产品的测试工作.2011年调至微软总部,从事Microsoft Office 2013的测试工作.2012年与淘宝测试工程师高翔合著了<探索式软件测试实践之路>一书.2014年,独自出版了<软件测试实战:微软技

PHP知识点笔记

显示错误:PDOException could not find driver. 是表示PDO没有安装对应数据库的扩展,比如没有安装PDO_mysql http://pecl.php.net/package/PDO_MYSQL 下载源码 phpize ./configure --with-php-config=/usr/local/php/bin/php-config ./make ./make install  phpExcel的使用需要使用到php的xmlreader和xmlwriter扩展

负载压力测试中监理的工作重点

一.负载压力测试概述 系统的负载压力是指系统在某种指定软件.硬件以及网络环境下承受的流量,包括并发用户数.持续运行时间.数据流量等等,其中并发用户数是负载压力中比较重要的指标. 负载压力测试基础概念 负载压力测试是指在一定约束条件下测试系统所能承受的并发用户量.运行时间.数据量,以确定系统所能承受的最大负载压力.例如当一个系统在少量用户同时使用时,系统能够正常运行,但当有大量用户同时使用,可能会出现功能失效.性能衰退,甚至系统崩溃的现象. 负载压力测试是性能测试的重要组成部分,它包括并发性能测试

软件工程之测试和维护

文章脉络 测试的重要性在此就不赘述了,先说一下测试基础:测试的目标很简单,就是为了找到软件中尚未发现的错误的缺陷:测试阶段在整个开发过程中所占比例不小,测试也不是想起两个数据来就测试一下,而是需要规范的测试用例来完成,测试用例要既有输入更要有输出,同时需要有一个整体的规划. 如何评价一个测试用例的好坏?不用看定义,按测试的目标即可知道,一个好的测试用例就是可以发现错误和缺陷,一个更好的测试就是可以发现更多的错误. 软件测试不是等编码完成后在开始的,而是贯穿于整个开发过程,从开始的可行性分析阶段即

云计算成功落户北京移动

IT服务行业的规模化生产带来了云计算,同时互联网又将云计算的效应快速放,形成了IT服务行业的变革.通过集中资源和共享,加上管理手段自动化,云计算帮助服务提供商,交付低成本的同时又提供了灵活的服务. 信息能够像日常生活中的水和电一样使用方便并且触手可得,这是许多人的梦想,云计算想要真正落地在中国,需要的是从现在开始实施具有前瞻性的战略规划,这其中电信运营商所承担的角色将会是举足轻重的.中国移动通信集团北京有限公司副总经理范冰认为,在云计算推广方面,应该优先推进私有应用,展开私有应用后,稳步尝试公共