测试方案包含哪些内容-落地执行的完整测试实施细则
做项目测试的这几年,踩过最多的雷,就是拿着空白模板瞎写测试方案,以为随便填几句测试流程、测试范围就够用,直到线上频繁出低级bug,才彻底摸清测试方案包含哪些内容,每一项都是实打实落地能用的实操模块,没有任何虚的框架话术。
最开始写方案,只会照搬网上的通用模板,通篇只写测试功能、测试时间,完全没梳理测试依据。上次接手一个小程序改版项目,直接套用旧方案开工,测试全程凭感觉,开发改了哪些接口、产品定了哪些新需求标准,全都没写进方案里。结果测试一半,产品突然说有几个交互细节是新增规范,不在旧需求文档里,之前测的内容全部作废,白白浪费了两天工期。后来才固定下来,方案开篇必须写清测试依据,就是项目需求文档、原型图、接口文档,还有历次版本的变更记录,所有测试动作都必须对照这些文件,不能凭空测试。
测试范围是方案里最容易写模糊的部分,也是最容易出漏洞的地方。之前做电商订单模块测试,笼统写了“测试订单下单、支付、退款功能”,没有细化具体场景。上线后出现了积分抵扣叠加优惠券的异常订单,就是因为方案里没明确把优惠叠加场景纳入测试范围,测试时直接跳过了这类冷门场景。现在写范围都会拆分的特别细,明确标出本次要测的所有功能模块、兼容机型、系统版本,同时会单独列清楚不测试内容,比如第三方支付平台底层逻辑、服务器硬件性能,避免测试范围无限扩大,导致工期不够、重点模糊。
测试环境与资源,是很多新手会直接忽略的模块。最离谱的一次测试,没在方案里标注测试环境地址、账号权限,团队三四个人同时测试,有人用测试服、有人用预发布服,测出的问题完全对不上,bug重复提交、漏测问题一大堆。除此之外,测试需要的设备、工具、权限也必须写死在方案里,比如需要安卓10以上机型、抓包工具、后台管理员权限,提前列明,避免测试开工后,临时找设备、申请权限,打断测试节奏。
测试用例与执行策略,是整个方案的核心主体。不再像以前一样笼统写“编写用例、执行测试”,而是会明确用例编写标准,比如正常场景、异常场景、边界场景的覆盖比例,接口测试、UI测试的用例区分。执行阶段会拆分每日测试进度,第一轮全功能回归、第二轮bug复测、第三轮极限场景兜底测试。之前吃过用例覆盖不全的亏,现在会在方案里备注重点模块用例100%覆盖,次要模块简化覆盖,既保证测试质量,又不浪费人力。
很多人遗漏的bug管理规则,也是测试方案必不可少的内容。早期做测试,没有统一的bug标准,有人随便写bug标题、有人不标注复现步骤、严重等级划分混乱,导致开发看不懂、改不全、反复返修。现在方案里会明确bug的提交规范、等级划分、修复时效、复测标准,明确致命bug、严重bug、一般bug、轻微bug的处理方式,规定致命bug必须立刻暂停迭代优先修复,轻微bug可延后迭代优化,让整个bug闭环流程有规可依。
最后必须敲定测试准入和准出标准,这是项目能否上线的关键判定依据。之前吃过最亏的一次,就是没有准入标准,需求文档没定稿、代码没合并完毕就开始测试,测一半代码反复改动,所有工作全部白费。现在准入标准固定为需求文档定稿、开发代码提测完成、测试环境搭建完毕;准出标准为所有致命、严重bug全部修复复测通过,核心功能100%测试覆盖,无遗留高危问题。
每次写完测试方案,最后一步都会逐一核对所有模块,剔除模糊化的描述,把每一项内容都改成可直接落地的执行标准,确保后续测试全程可以直接对照方案执行。