测试策略制定方法和技巧
测试策略是对测试活动中的系统的思考,确定测试的对象和范围是什么,测试目标是什么,测试的重点和难点是什么,如何保证测试的深度和广度,测试的顺序如何确定,最终评估测试的效果。简而言之,就是确定测什么和怎么测。
测试策略的本质是一种选择,好的测试不是测试的越多越好,而是在该测的多的地方测的多,该测的少的地方又敢测的少,进行一种刚刚好的测试。测试策略应该贯穿测试的始终,不是制定好之后就一成不变的,会随着当前的测试状况变化和调整。
如何制定测试策略呢,一般可采用四步测试策略制定法。
1、明确产品质量目标
2、进行风险分析
3、适配产品开发流程
4、进行测试分层
下面我们对这四个步骤逐个来分析。
一、明确产品质量目标
和产品经理沟通确定质量等级,一般质量等级可分为:完全商用、受限商用、演示和外测。不同的质量等级所要达到的质量目标是不一样的,对于完全商用产品,需要使用功能、性能、可靠性和易用性中所有的测试方法;对于受限商用产品,需要使用功能测试的所有测试方法,可靠性中故障植入法和稳定性测试法;对于演示和外测的产品,只需要使用功能测试方法即可。
确定好质量等级和相应的质量目标后,可以把功能划分为不同的特性,针对不同的特性确定不同的质量要求,根据功能特性在测试策略中发布不同的质量目标,确定不同的质量目标和过程中的一些关键活动。在这一阶段,需要对功能特性进行指标分解,确定哪些特性是上完全商用,哪些特性是受限商用,哪些特性是演示和外测,从而在测试过程中来制定合理的测试覆盖率,如需求覆盖率达到多少,路径覆盖率达到多少,测试用例的执行率和通过率达到多少,缺陷比例达到多少等等。
二、进行风险分析
质量目标相同的功能特性,在项目中的风险情况可能不同。需要基于风险来进行测试。
在测试策略中进行风险分析的目的是,识别项目中可能会阻塞测试顺利进行的因素:
1、对高风险的地方加强测试
2、对风险没有那么高的地方减少测试
如何去进行风险分析呢,一般有三个步骤:风险识别、风险评估、风险应对。
1)风险识别
Step1:分析该项测试活动需要关注哪些测试内容
Step2:分析上述内容都能够保质保量顺利的进行,需要哪些条件
Step3:逐一分析这些条件是否能够满足
在风险识别中可制定相应的checklist,该特性是全新开发的特性还是历史特性,如果是历史特性需要对老功能进行差异性分析,分析历史测试情况,对老功能在老版本中的测试情况进行分析,来确定老功能在新版本中需要采取怎样的测试策略。
2)风险评估
风险评估主要是确定风险的优先级,可以从风险发生的频率和风险的影响程度进行评估。一般风险可分为需求类的风险和设计类的风险,针对不同的风险项可以制定相应的表格来确定风险优先级。
下面表格可作为参考:
3)风险应对
在风险管理中,风险应对只要分为如下四类:
1、回避风险:指主动避开损失发生的可能性
2、转移风险:指通过某种安排,将自己面临的风险全部或者部分转移给其他一方
3、减轻风险:指采取预防措施,以降低损失发生的可能性和影响程度
4、接受风险:指自己理性或非理性的主动承担风险
风险应对举例:新需求在开发过程中不断被增加
回避风险的做法:置之不理
转移风险的做法:将新需求外包给第三方
减轻风险的做法:寻求额外资源或者裁剪其他优先级低的需求
接受风险的做法:将新需求加入项目范围,通过加班来完成新需求
可结合实际情况采取不同的风险应对方法。
根据质量目标和风险因素来确定优先级,进一步确定测试深度和广度。
三、适配产品开发流程
每个公司都有自己的产品开发流程,需要注意的是,是流程来适配产品,而不是产品来适配流程。
根据PID流程,整个产品开发流程分为:概念阶段、计划阶段、开发阶段、验证阶段、发布阶段。每个不同的阶段,需求、开发和测试都有不同的分工,在测试环境主要有策略层、活动层和保证层三个方面。在策略层需要制定总体测试策略、阶段测试策略和测试执行策略。在活动层分为测试分析、测试设计、单元测试、集成测试、系统测试、验证测试。在保证层主要是各个环节的准入准出需要保证,如需求验证、开发概要设计评审、测试策略和测试方案评审、各种输出物是否满足交付条件等。
四、测试分层
测试分层和产品的特点息息相关,可参考双V模型,此处不在赘述。
考虑了测试流程和测试分层后,就可以预估测试结果了,即缺陷分析,在不同的阶段如集成开发和测试阶段、系统测试阶段、验收测试阶段,统计各个阶段累计发现的缺陷数,制定相应的曲线,一般纵轴为累计发现缺陷数,横轴为测试时间,观察曲线的拐点,分析拐点出现的原因,预估测试结果。
以上为测试策略制定的一些方法和技巧,仅供有需要的测试人员参考,具体制定需结合项目实际情况和公司的特点来因地制宜。
|