在与客户合作时,我经常会遇到测试策略文档。它们很长——100 页或更多——并且充满了单调的文本,这些文本通常从一个项目到另一个项目重复使用。再次打哈欠——测试停止和恢复情况、缺陷管理程序、进入和退出标准、不必要的一般风险,事实上,一种常用模型复制了教科书测试的要求,从压力到系统集成。
我对这样的测试文档有很多问题。在许多企业文化中,强制性文件经常与它们所代表的事物混淆。测试策略文档是文档,而不是测试策略。它可能用于也可能不用于传达计划。一份文件越大越重,它包含的重复材料越多,它就越不可能传达读者可以从中获得意义的任何有意义的东西。实际上,大多数真实的测试程序可能会在少数图表或一两页纯文本中得到适当说明。
手头有一个更根本的问题。大型测试策略文档很少包含连贯的策略。这让我怀疑我们作为测试人员是否真正掌握了“策略”的含义。我稍后会回到文档问题。目前,接受您必须以某种形式将您的测试计划传达给项目利益相关者并协商他们的同意。
首先,什么是测试策略?
从了解战略是什么以及您为何需要战略开始是至关重要的。这有时是一个绊脚石,因为很少有人真正了解战略是什么。战略经常与战术、目标甚至行动混为一谈。它源自法国的 stratégie、希腊的 stratgia“将军”和希腊的 stratgos,暗指军事演习和部队部署。
牛津词典将策略定义为:
“旨在实现长期或总体目标的行动计划” “在战争或战斗中规划和指挥整体军事行动和行动的艺术”
关于什么构成测试“策略”,有多种定义,但这是我在描述它时经常选择的一种。顾名思义,测试策略是指用于测试某个软件应用程序的方法。换句话说,测试策略是关于如何在整个软件开发生命周期中执行测试的概述或策略。其目的是从测试的角度指定测试团队将用于实现公司目标的精确过程。
如果你想去检查其中一个正式定义,这里是它在 wiki 上的描述:
测试策略是描述软件开发周期的测试方法的大纲。测试策略的目的是从组织的高层目标到实际测试活动提供合理的推论,以从质量保证的角度满足这些目标。测试策略的创建和记录应该以系统的方式进行,以确保所有目标都被所有利益相关者完全涵盖和理解。随着组织和产品的不断发展,它还应该经常被审查、质疑和更新。此外,测试策略还应旨在在术语、测试和集成级别、角色和职责、可追溯性、资源规划等方面协调质量保证的不同利益相关者。
测试策略描述了如何在测试级别减轻利益相关者的产品风险、要执行哪些类型的测试以及适用哪些进入和退出标准。它们是根据开发设计文档创建的。主要使用系统设计文档,偶尔会参考概念设计文档。设计文档描述了将在即将发布的版本中启用的软件功能。对于开发设计的每个阶段,都应该创建相应的测试策略来测试新的功能集。
测试策略的类型
以下测试方法可用作组织测试策略的一部分(还有一些,但我将重点关注重要的):
标准或符合流程的策略——遵守美国食品和药物管理局 (FDA) 指南的医疗系统是这种方法的理想示例。在这种情况下,测试人员遵循标准委员会或行业专家小组制定的协议或建议来选择测试环境、开发测试用例并组织测试团队。对于 Scrum 敏捷项目,测试人员将构建整个测试策略,从建立测试标准、创建测试用例、执行测试、报告状态等开始,以每个用户故事为中心。
有条不紊的方法——这种方法本质上是基于采用一组预定义的测试方法,这些方法可能适用于某种应用程序测试。在这种情况下,测试团队遵守既定的质量标准(例如 ISO 25000)、检查表或只是一组测试环境。特定类型的测试(如安全性)和应用领域可能有标准的检查表。
分析策略——该策略侧重于风险评估或基于需求的项目需求测试和来自不同利益相关者的反馈。测试策略是根据风险分析来设计的,以计划、设计测试活动并确定测试活动的优先级。在基于需求的测试实例中,检查需求以确定测试环境。然后,为了满足这些标准,编写、构建和执行测试。甚至需求的结果也被记录下来,例如那些已经测试并通过的,那些已经测试但失败的,以及那些没有完全测试的,等等。
基于模型的方法——这种方法使用各种统计模型开发测试策略。测试团队选择一个真实世界或假设的场景并对其建模,同时考虑所有相关流程、输入、输出和潜在结果。此外,在开发模型时还考虑了当前的软件、硬件、数据速率、基础设施等。让我们考虑一下测试移动应用程序的情况。可以创建模型来模拟移动网络上的传入和传出流量、活动/非活动用户的数量、预测的增长等,以便执行其性能评估。
总体目标
随着您获得有关项目和产品的知识,与测试相关的概念开始形成。您将采用什么策略,您是否已经有了可行的测试设计?您不可能严格测试每种方法中的所有内容。因此,决定如何以及在什么基础上定义覆盖范围边界是一个至关重要的战略选择。(这可以说是利益相关者需要理解的最重要的概念。)
例如,您会根据风险确定测试类型和覆盖范围的优先级吗?您所说的风险到底是什么意思,您将如何识别和评估测试可能会降低的风险?谁是你的关键球员?实际上,产品质量对他们意味着什么?他们如何定义他们预期从产品中获得的好处?在大多数公司中,某些利益相关者的利益比其他利益相关者的利益更重要。组织和人有不同的风险偏好和风险认知。这些是选择测试内容和方式的重要因素。
总体事实、道德和情感可以推动或显着降低测试优先级。举个例子:
1、该产品将在高度受控的环境中运行。某些类型的漏洞可能会导致公司高管受到起诉。
2、该产品是一个网站,作为基于事件的促销活动的一部分,数百万访问者将在指定日期访问该网站。如果它损坏或爬行,您公司的声誉将会恶化,并且会失去最重要和最受尊敬的供应商。
3、该产品对于组织的发展绝对至关重要。公司公开宣布的发布日期面临的风险将对其声誉和股价造成灾难性影响。
这种价值陈述给出了测试策略选择的“原因”。虽然这看起来很明显,但预先定义项目价值可以让利益相关者表达你的战略是否基于对他们最重要的因素。当您调查项目背景并确定风险、限制和可能的结果时,您会得到其他战略建议。例如,利用一个或多个高级模型(例如“收入周期”或“用户体验生命周期”)是否合乎逻辑?您会使用探索性测试、预先设计的测试还是两者的结合?主要测试程序应如何排序以获得最大测试值?
应该如何传达测试策略?
通过谈判就重要选择达成共识对于通过大多数项目控制利益相关者的期望至关重要。利益相关者必须意识到可能阻碍或禁止重要测试的任何障碍,因为他们将不得不接受或消除这些障碍。假设您发现没有在银行系统上进行年终期间测试的选项,或者您发现公司的新限制阻止您对中央产品数据库进行数据库查询。如果项目时间表规定您只能对复杂的应用程序进行一次粗略的功能确认,请清楚地说明这一点并让利益相关者有时间回复。
与其采用战略文件模板来通知利益相关者,不如寻找一种简单的格式来有效地传达关键点,而不会过于详细。这可能是您用来整理想法的方法。思维导图、便利贴和演示幻灯片都用到了。与我一起工作的组织和测试的性质影响了我的决定。无论您使用何种格式,它都应该作为一种可移植的解决方案来吸引利益相关者或在会议中激发对话。
这并不是说您当前的模板没有意义,但它很可能会要求您提供不需要的东西,而忽略了您需要的东西。您可能会被要求填写空白,以便将其保存在保险库中。但是,不要从那里开始。大型文档模板是鼓励讨论和就战略达成共识的无效工具。
思考比写作更重要
你必须处理的复杂性和风险,以及项目已经理解和接受的程度,将决定你必须做什么来制定你的测试策略。无论需要几个小时还是四百小时,您都会了解您的利益相关者,以及在此过程结束时哪些价值观和理想对您的测试至关重要。您将指定测试的高级边界和方法,并且您将能够吸引利益相关者注意任何可能阻止在这些边界内进行测试的风险、挑战或限制,以及您认为合适的任何断言表达。
但不要过分执着于您的战略,也不要在您的利益相关者中培养其一成不变的观念。随着项目的发展和您对产品的更多了解,测试策略可能会发生巨大变化。“思考”是这里的基本词。将每个测试项目视为需要完成的新冒险,并了解在项目完成之前您将学习和解决障碍。即使您是在熟悉的道路上测试知名产品,也请尝试退后一步,采用全新的战略视角。它可能会激发创新思维,从而增强您的测试并为您的业务节省金钱和精力。
卓码软件测评是一家[ 具备CMA、CNAS双重资质 ]的专业做软件测试的第三方软件测试服务机构, 可根据您的需求提供各类软件测试服务,并出具合格有效的软件测试报告。点击→→可了解测试报价
部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。负责人:曾菲 电话:4006070568