作者简介
Lilian,TestBird自动化测试高级专家,16年测试工作经验,主持过多个产品的测试验证、测试技术能力的规划和实施落地。主导多项测试技术:组件测试、敏捷测试、测试能力提升、测试评估的方案和成功落地。擅长测试分析设计、测试管理、敏捷测试、探索性测试、基于模型的测试、测试过程改进、缺陷根因分析、测试评估等。
测试的两大原则也揭示了:完整测试是不可能的;测试只能证明系统存在缺陷,不能证明系统不存在缺陷。
作为Test Manager 或 Tester 可能会有这样的疑问:
• 怎么在有限的资源下发现最重要的缺陷?
• 测试的难点和重点是什么?
• 测试的深度和广度如何把控?
• 如何划分测试层级?
• 如何安排各种测试活动?
• 如何评价测试效果?
• 如何确定测试的退出条件?
• 迭代开发需求变化快,交付快,测试该如何应对?
这些问题概括来讲就是“怎么测”的问题,一个合适的测试策略要能回答这些问题,好的测试策略一定要做到最少的成本达到最好的测试效果,那么有几项指导原则需要重点关注:基于风险,尽早测,自动测,尽快测,代表客户测。
今天我们就一起讨论下如何制定合适的测试策略,比较复杂的产品,测试策略一般分为总体测试策略、阶段测试策略、测试执行策略。
•总体测试策略:确定产品质量目标,进行项目整体的风险识别,从产品层面来确定测试重点和测试难点、测试深度和测试广度,是测试策略的总纲。一般由产品测试架构师负责制定,需求开始分析时启动,计划阶段结束时完成。
•阶段测试策略:确定测试设计策略和测试执行策略需要达到的质量目标(产品质量目标的分解)以及能够进行这些测试活动的出入口条件。一般由产品测试系统工程师负责制定。
•测试执行策略:确定每个版本每个测试层级的测试目标、测试内容、测试活动的安排和出入口条件。一般由产品测试工程师负责制定。
测试策略在IPD的V模型的研发流程中的位置如下图:
(点击可看大图)
总体测试策略是总纲,本次我们重点讨论总体测试策略的制定,RRFC四步法和HTSM启发性测试策略模型。
RRFC 四步法
总体测试策略从概念阶段开始,在计划阶段前期完成比较合适。此时产品的需求、质量目标和整体形态都已经确定,已具备了制定总体测试策略的条件,而且也需要这样一份文档来指导后面的测试活动,让测试团队成员心中有数。
主要包括下面四步:现状分析(Reality)、 风险分析(Risk)、确定分层及重点(Focus)、分解落实评估指标(Criteria)
1、Reality: 分析产品/版本现状,确定测试范围,明确质量目标
产品的研发状况对该产品的测试策略具有决定性的影响,不同的产品状况将可能导致完全不同的测试策略,应根据产品的研发状况确定正确的测试策略以达到最优的测试效果。在制定测试策略之前,收集了解更多的项目信息非常重要:
• 项目范围
• 市场定位
• 上级要求
• 人力投入
• 历史情况
• 开发协同
• 运作要求
。。。。。。
以此明确测试范围和质量目标,明确“产品质量目标”是制定测试策略过程中十分关键的一个步骤。
测试目标需要聚焦质量目标,让产品在发布的时候能够满足事先约定的质量目标,围绕产品质量目标进行刚刚好的测试,将目标—测试活动—评估形成闭环。从最终用户使用的角度,可将产品质量目标分为如下等级:
•完全商用:完全满足用户的需求,有少量(或者无)遗留问题,用户使用时无任何限制。
•受限商用:无法满足用户的某些特定场景,有普通以上的遗留问题,但有规避措施。
•测试、演示或小范围试用:只能满足用户部分需求,有严重以上的遗留问题,且无有效的规避措施,问题一旦出现就会影响用户的使用,只能用于测试或演示,或者小范围试用。
•不能使用:无法满足用户需求,存在严重以上的遗留问题,会导致用户基本功能失效,且无规避措施,产品根本无法使用。
软件测试架构师需要对此项目中包含的需求,逐一明确“产品质量目标”,确定初步的测试深度,完全商用:需要进行全面测试,功能、性能、可靠性、可维可测等;受限商用:功能测试,可靠性测试等;演示:功能测试。并和系统工程师、产品经理、研发经理等核心利益相关人达成一致,样例如下表:
(点击可看大图)
2、Risk:风险分析,进一步确定测试覆盖的深度
基于风险的测试活动,简称为:RBT(Risk-Based Testing),是指在测试工作开展之前,提前进行针对项目产品的风险分析,把风险分析活动应用到对应的测试领域,通过产品风险的分析与评估的结果决定测试策略,以此指导整体测试过程的一种方法。
风险分析通常发生在编写测试计划阶段之前,在产品特性划分完毕之后,开发和测试统一对于特性进行风险识别和对识别出来的风险进行分析,即采用系统的产品风险分析的方法在系统层面和特性层面进行产品风险的识别与评估。
基于风险的测试策略决定测试的资源投入程度和方向,目标是用最少的资源尽可能早的发现最重要的缺陷。
在制定测试策略的过程中,两种风险需要重点关注:产品风险即产品质量的风险和项目风险即影响项目进度的风险,相关风险检查清单可参考如下:
(点击可看大图)
识别出的风险进行单独管理和闭环,这里不详述。基于风险发生概率和风险影响程度,逐一确定每个特性的风险等级,更新质量保障活动,完善总体测试策略。
(点击可看大图)
3、Focus:确定测试分层,明确每层的重点和深度
前面两步我们已经结合研发现状,产品质量目标和风险分析,有了一个初步的总体测试策略框架,那么这些内容如何安排呢?质量目标如何转化为测试目标?测试目标如何在产品测试中落地?如何有效闭环目标-》测试活动-》评估呢?我们需要适配产品研发流程,进行测试分层。
传统的开发模型及测试分层如下:
(点击可看大图)
敏捷开发模式下的测试分层:
•单元测试(UT test):针对代码或者组件的测试。
• 功能测试(function test):针对产品功能方面的测试。
•非功能测试(non-functional test):指非功能方面的其他质量属性的测试
•探索测试(Explore test):基于任务的测试。
典型的测试分层:单元测试、集成测试、系统测试和验收测试。对于质量要求高、复杂性高、风险大的产品或特性可增加或细化测试分层,如通信公司把系统测试又分为产品级的ST、SDV、SIT测试和解决方案级的系统测试等。对于小型的复杂度低的产品和特性可以减少测试分层。
确定测试分层后,明确每层的分工协作,尽早测试,尽快测试、自动测试,保证确保各层之间做到立体的测试防护,又没有过多的重复工作。
4、Criteria: 分解目标,落实评估指标
明确了测试分层,进一步把质量目标具体化到每层的测试目标和测试评估上。一个好的测试目标评估需要满足下面三点:
1、定量定性相结合:明确客观的指标进行量化,主观的分析进行补充。
2、多维度指标综合评估:覆盖质量评估的各个方面,能够帮助评估者全面分析和考虑。
3、过程结果双向评估:不仅评估测试结果,也要对过程进行分析和评估。
下面的测试目标评估纬度供参考:
1、测试覆盖度评估:对测试范围及测试的深度与广度进行分析和评估。
2、测试过程评估:对测试过程和测试的投入情况来进行分析与评估。
3、缺陷分析:对测试结果进行分析和评估。
我们可以根据项目的实际情况、历史情况和公司整体基线,确定出一个分级的标准,作为产品质量目标的分解项,把产品质量等级和评估项关联起来,从而达到分解产品质量目标的目的。
(点击可看大图)
测试架构师可以和各特性负责人一起把测试目标分解到每个特性的每层测试中去,形成总体测试策略的一个完整分析表,作为总体测试策略文档的重要输入。
(点击可看大图)
至此,RRFC四步法制定总体测试策略主要内容已经完成,但并不意味着总体测试策略就已经完工了。因为需求、项目环境、风险一直在变,测试策略也需要持续的迭代更新,以及时指导测试的各项活动。基于风险,尽早测,自动测,尽快测,代表客户测是测试策略的指导原则,需要贯穿整个项目周期。
下期预告
HTSM启发性测试策略模型的制度策略
感兴趣的小伙伴可以长期关注哦~~
往期测试干货内容
领取专属 10元无门槛券
私享最新 技术干货