测试策略 VS 测试计划、测试方案

日常测试工作中,或多或少有听说过测试策略的术语,一开始所理解的概念比较模糊,很容易和测试计划、测试方案混淆,但这个东东实实在在的贯穿在测试过程中不可忽略。鉴于此,对实际工作的相关场景作一些简单的梳理和总结,以作参考,不完善之处后续再作优化。

一、测试计划

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

制定测试计划所包含的内容,主要有:
1.概述
项目背景、测试范围(所需测试的特性)、参考文档(需求文档、会议记录、同类项目的参考说明)
2.组织形式
测试涉及人员及其职责的划分
3.测试范围
确定被测特性有哪些,然后按照功能性、非功能性的分类,对系统模块&子模块进行划分,重要级别的设置
4.测试通过与否的标准
根据对测试系统的预判,与项目经理协商并由其确认来定义项目通过&不通过的准则(如:测试覆盖率、缺陷修复率...)
5.测试挂起&恢复条件
1)测试挂起:考虑测试过程中发生一些内外部问题致使测试受阻,用例无法执行的情形,由项目经理确认
2)测试恢复:导致阻塞的问题确认已被修复后,由项目经理确认恢复测试
6.测试进度人力分布计划
计划编制原则:
1)尽量准确预估整个测试活动所需的人力和持续时间
2)讲一个阶段分成若干个能进行有效监控的小阶段
3)计划结构和进度须清晰明了,便于阅览、检查
4)结构包括:任务、负责人、检查人、时间进度条

二、测试方案

测试方案:是描述被测对象需要测试的特性、测试的方法、测试环境的规划、测试工具的设计和选择、测试用例的设计方法、测试代码的设计方案。简言之,测试方案是从技术角度对整个测试活动进行规划和控制。

制定测试方案所包含的内容,主要有:
1.概述
描述软件项目的背景(如:项目名称、项目时间、项目目的)、测试范围、参考文档
2.测试环境
1)软硬件环境
硬件设备:电脑配置、无线路由器、手机...
软件设备:应用服务器、数据库服务器-型号&版本
2)网络构成
测试环境的网络结构、拓扑图
3)环境搭建
测试所需的环境搭建步骤、要求、注意事项
4)测试工具
所需的测试工具,如:LR、Jmeter、Postman、AppScan、AWVS...
3.测试策略
说明此项目将要采取哪些测试手段与方法
结构包括:功能性/非功能性-系统模块&子模块、测试要点、测试要点说明、测试数据描述、优先级、测试方法、用例设计方法
4.测试风险评估与预防
评估项目测试过程中可能存在的风险,设置不同的风险等级,并提前分析相应的预防措施
结构包括:风险描述、风险等级、风险来源、产生阶段、预防措施、对策责任人


测试计划提出“做什么”,测试方案明确“如何做”,测试方案需要在测试计划的指导下进行。

三、测试策略

测试策略:如何用尽量少的资源来尽量好的完成测试,给测试活动提供技术上的明确指导,以便测试活动的实施者能够很快的开展自己的工作。

从宏观角度来看,网络上部分文章中的测试策略是站在全局整体的角度上进行考虑,为了增加对测试策略的多层面了解,此时可以作简要总结,如下:
测试策略:在不同的项目背景下,根据产品需求和指标,分析产品的功能项和业务逻辑,并判断测试的重点和方向,在当前有限的条件下,统筹各方资源、采取合理有效的方法来推动项目的测试活动开展,以最少的软硬件、人力资源投入得到最佳的测试效果,达到符合当前环境的最优决策。

而从微观角度来看,测试策略可以归属到测试方案中的一个重要组成项,通过采用有效的测试手段与方法,对产品模块&子模块进行划分,明确测试要点,然后按照功能性与非功能性(易用性、兼容性、性能、安全性...)的分类,明确所采用的测试方法(黑盒/白盒/单元/集成/系统/回归/验收...)、用例设计方法(等价类、边界值、流程分析法、),并设置不同的测试优先级,从而指导后面编写测试用例等工作的开展

测试策略描述测试工程的总体方法和目标

描述目前在进行哪一阶段的测试(单元测试、集成测试、系dao统测试)以及每个阶段内在进行的测试种类(功能测试、性能测试、覆盖测试等)。

测试策略的制定主要包含三个方面的内容:

(1)确定测试过程要使用的测试技术和工具;

(2)制定测试启动、停止、完成标准;

(3)进行风险分析和应对方案。例如测试与外部接口或者模拟物理损坏、安全性威胁。测试计划最关键的一步就是将软件分解成单元,按照需求编写测试计划。


测试策略描述了软件开发过程中进行测试方法,用来告诉测试过程中所有可能的参与者,测试活动应该如何进行。其中主要会包括测试目标,测试新功能的方法,测试项目的时间和资源,以及测试环境等等。

除此以外,测试策略应该描述测试过程中存在哪些风险,以及如何能够规避或者降低这些风险。同时,测试策略也会提到测试的级别,哪些测试应该被执行,入口出口条件是什么。创建测试策略时候我们可以参考各种需求文档和设计文档。

一般来说,测试策略在结构上可以包括以下一些要点:

(1)测试级别:常见的测试级别有单元测试,集成测试和系统测试。大部分的测试组织里面,单元测试由开发负责,而集成测试和系统测试由测试部门或者质量保证部门负责。

(2)角色与职责:需要在测试策略里面明确定义各个角色,以及该角色的职责。比如项目经理,测试组长,测试工程师…

(3)环境需求:这一点非常重要,它将描述测试时需要的系统环境,包括软硬件以及网络环境等等。在澄清环境需求的时候,测试组织可以识别出资源方面的风险。

(4)风险分析:影响测试过程的风险都应该尽早被识别出来,而且必须有相应的解决办法以便消除或者减轻这些风险。

(5)测试进度:测试进度将会评估完成测试所需要的时间。在设定进度的时候,首先需要明确测试范围,然后根据测试资源的多少来制定能被各方面认可的测试进度计划。做一个非常准确的进度计划是困难的事情,因为测试过程中充满了各种不确定性,所以一般计划者需要考虑增加一定的buffer。当然,制定进度计划的时候可以参考已有的项目的数据。如果是一个全新的软件项目,专家认为将初始计划的时间翻倍比较靠谱!

(6)回归测试方法:回归测试用来保证之前fix bug的代码不会影响软件的其他部分,这样需要我们选择已经执行过的测试用例重新运行。测试人员需要找到一个方法来确定哪些测试用例应该在回归测试中运行,用例不能太多,因为资源有限,用例也不能太少,否则会达不到必须的测试强度。不过,如果测试部门对待测系统以及软件架构非常了解的话,就比较容易找到合适的回归测试集合。

(7)测试范围:这个没啥好说的,就是你要测试的内容,可能是某些模块,可能是某些指标,比如功能,性能,易用性…

(8)测试优先级:测试范围内的东西不会都是一样重要的,加上测试资源各种有限,所以为测试排定优先级是十分的必要。

原文地址:https://www.cnblogs.com/wsy0202/p/13355577.html