如何编写测试方案
1. 测试方案内容
2. 测试周期如何安排
3. 需求的测试成本与质量风险
测试方案概览图
1. 测试方案内容
测试目标
- 测试对象
- 测试完成时间
测试范围
- 测试目标
-
- 新增功能
- 回归模块
- 优先级
-
- 测试顺序
- 测试深浅
测试策略
- 测试方法:黑盒、白盒、灰盒
- 测试阶段:单元、集成、系统、验收
- 测试类型:
-
- 功能性
- 性能和稳定性
- 安全
- 自动化
- ...
测试工具
- 测试脚本/工具
- 缺陷管理平台
- ...
测试资源
- 测试环境
- 相关维护人员(运维、DBA、安全室)
- 测试人员(模块划分)
- 测试所需数据
- ...
测试周期安排
- 测试总周期(上线时间 - 提测时间)
- 阶段划分(如里程碑)
- 阶段目标
准入 / 准出标准
准入:如没有致命 bug,冒烟测试跑得通,系统不会发生崩溃、死锁等现象。
准出:如所有的测试用例全部执行完毕,系统已经实现需求所规定的全部功能。
- 致命/严重 bug 无遗留
- 一般 bug 遗留率不超过 5%
- 轻微 bug 遗留率不超过 10%
- ...
测试风险及应对方案
要注意测试风险一定要有明确的可执行的应对方法。否则如果在测试过程中出现了风险防范中列举的风险,但是没有可执行的方法,可能会严重影响到测试工作。
常见风险与应对方案的示例如下:
1)计算机软件/硬件故障。
应对方案:准备备用机器(虚拟机)。
2)测试人员没有实际参加过项目,可能导致测试造成一定的影响。
应对方案:
- 由开发人员、需求人员或其他高级测试及时进行培训和指导。
- 增加评审的频率和力度。
3)测试人员突发性事假/病假/离职导致项目无法继续开展。
应对方案:
- 安排测试人员周期性做好工作记录与总结文档,以防交接不充分。
- 从其他组抽取1名资深/高级测试工程师,一直参与本项目的所有会议并作为应急人员。
4)测试阻塞或需求变更。
应对方案:
- 制定测试进度报告及时(如每日)反馈测试进度与风险项。
- 调整测试顺序或优先级。
可增加项
参考文档、代码库地址、交付物等。
2. 测试周期如何安排
测试计划中,测试时间安排是最重要的一个方面,要将测试时间安排的相对合理,主要有两个考量因素,一个是测试人员的能力,一个是测试工作量的估算。
测试人员的能力
能力决定了测试人员擅长或者不擅长的方面,分配测试工作的时候,应该量体裁衣,每个测试工作人员做自己最擅长的部分,对于能力较弱的,可以分配一些简单的测试工作,但是量可以多一点。
测试工作量的估算
测试工作量的估算,它决定了测试时间安排的合理与否,测试项目可以分为好几个测试阶段,每个测试阶段的测试内容可以分为不同的测试任务,而每个测试任务又可以分为测试子任务,不能再分的测试子任务才能作为一个独立的测试任务,估算该测试任务需要花费的时间。
在估算测试工作量的时候,还要考虑缓冲,测试工作量如果估算的十分精确,一定要有缓冲时间,因为人不可能完全按照计划工作。
周期估算的方法:
- 总周期:如两个月后上线,待提测需要 1 个月,那么测试总周期为 1 个月。
- 第 1 轮:可根据测试用例的执行时间来安排第 1 轮,如测试用例 400 条,每天执行 100 条,则需要 4 天,加上开发会花 2、3 天修复 bug,因此第 1 轮测试周期是 7 天。
- 第 2/3 轮:将总周期减去第 1 轮测试周期的剩余时间,按照一般性的等差递减规律分给剩余的回归周期。
- 参考一线测试人的意见;测试分工尽量征求参与人员的意见等。
3. 需求的测试成本与质量风险
需求的测试成本与质量风险是在阅读需求文档后会被频繁讨论的事情,值得大家深入思考。一般来说常见的有两种问题:
-
测试和开发的成本比较高,难以匹配当前的产品进度。
-
目前已有的测试手段不能有效保证功能的质量。
针对这两种问题,建议是尝试提出多种测试策略,在每种方案后标注测试成本和风险,并将方案与多方进行讨论,选择大家都可以接受的方案。