测试员在项目中的作用只是测试吗?
我们就只是按部就班的进行需求分析、用例编写/评审、提测验证、Bug回归验证吗?
为了能够交付高质量的产品,测试人员更重要的是做好项目风险把控。
“项目风险管理”听上去像是项目经理或scrum master的活儿,但基于“一旦产品出了问题,第一想到的就是QA没把控好质量”的惨痛现状,做好项目风险的把控是当今测试人员不可或缺的技能与素质。
风险的来源
根据“人机料法环”分析方法,项目风险主要来源,见下图:
即若考虑风险,你可以根据以上所列出的方面进行考虑(但不限于此)。
那测试人员具体该如何控制风险,我将根据项目流程阶段进行阐述。
阶段划分为:
需求分析 -> 测试方案制定 -> 用例设计 -> 提测验证 -> 上线回归 - 总结
无论是采用的是何种开发模型,瀑布、V型、原型,还是敏捷运作,拿放大镜细分后都离不开以上几个阶段,只是每个阶段的开始时间不同,阶段有时会有重叠部分。
需求分析阶段:发挥主动性
为什么从需求分析阶段我们就要开始风险控制呢?这时候有测试的工作吗?
从需求雏形浮现起,全员就必须参与进来,特别是敏捷团队,一定要有这样的意识“整体团队运作”、“每个人都必须为最终产品负责”。
必须有关注整体项目的意识,每个阶段的输出都是下个阶段的输入,风险只会越滚越大,不会消失。所以在需求阶段就开始把控风险十分重要。
我们需要考虑以下:
- 1、了解客户要什么?当前方案能解决客户痛点吗?
- 2、影响到哪些现有的功能?
- 3、考虑“人机料法环”风险来源图中的风险点,在此项目中是否存在此风险?如何解决?
- 4、根据经验,挖掘风险。如“对于类似这样的方案,以前有出现过xx问题;这个方案中需要先确认会不会有相同风险存在?”
- 5、关注开发和产品的讨论,如哪一部分比较难实现?如何实现?(其中做出的变动和难点就是测试的时候必须重点关注的部分;不能因为这些暂时和你没有关系就不去关注,后期会带来麻烦)需求颗粒度合理吗?
- 6、评估工作量,时间是否足够?(包括所有角色:Dev/ SDET/ QA等)
- 7、剩余需求待确认点的明确时间。
- 8、开发的提测时间。
- 9、求评审结束后,要求项目经理及时更新需求,任何改动都及时更新。尽量将所有需求都变成“显性”需求,白纸黑字写上。
关于第6、7点, 是测试人员在没事找事做吗?是在准备甩锅吗?当然不是!!!
测试人员必须有关注整体项目的意识。如果你不关注项目进度,什么时候提测,你什么时候开始测试,在测试过程中你就会遇到测试的内容和最初的需求不一致,增加新的内容从而增加工作量,或是产品和开发一起来压缩测试时间的情况,到时你想不加班都难。
需求一旦明确了由你来负责的时候,就要时刻按排期来关注项目的情况。中间变更需求的时候,要评估是否影响项目进度,如果影响了需要重新进行排期。如果开发提测时晚了,是否会影响上线时间,如果可能会影响,马上就要给相关的人员发预警邮件,通知大家详细的情况。
测试方案制定阶段:方案方面
测试方案选择必须全面,即便你是一个功能测试人员,可能不会编写自动化测试脚本,不会性能测试、安全测试,但是你必须能根据需求想到要实施哪方面的测试(性能、安全、接口、功能、集成、单元、容错等等)
我们需要考虑以下:
- 测试需要哪些方面,重要程度排序
- 我们有哪些工作,不同工作风险定级,工具优先级排序
- 具体工作量计算
- 多少需要手工,多少可以自动化
- 人员足够吗?根据人员特性进行最优安排
- 需要什么环境、工具?都已经ready了吗?
用例设计阶段:不遗漏
测试用例是每个测试人员工作过程中必须要完成的工作,不管你是采用什么编写和管理方式。
在此阶段的,我们需要考虑以下:
- 测试用例必须写清楚:用例名、步骤、预期结果、优先级
- 透过需求,从用户的角度来写用例才对(你是第一个用户)
- 用例校验点(即AC)和用例必须有审核,并通过审核(每个角色,至少有一人参与:PM/ Dev/ SDET/ QA)
提测验证阶段:注重质量、进度与风险预警
在此阶段的最低要求,我们需要考虑以下:
- 实现的与预期的一样吗?
- 是否有需求变更
- Bug描述清晰、准确分级
- 关注测试进度与bug趋势,有风险要预警这个团队,必要时需及时调整方案
- 二八法则,有bug群聚现象吗
上线回归段:做好善后
我们需要考虑以下:
- 及时进行线上回归
- 不能影响到的原有的功能
- 多分支合并风险
- 高响应处理回归bug
项目总结阶段:汲取教训、输出行动方案
在整个项目流程中都要做好记录:出现什么问题?怎么解决的?到这个阶段时进行分析与总结。
我们要做好以下总结:
- 本次工作评估准确吗?风险评估、工作量评估
- Bug分析。Bug数、不同级别的bug数、常出现在什么地方?
- 项目中的难点与瓶颈,及解决方案
- 一些常见问题的排查及解决方案
- 产品的哪块功能容易出现问题,或是开发怎么实现相应的功能可能出现问题?产品的功能模块之间是如何工作的,修改部分功能后可能会对其他模块产生影响?等等。
- 类似本次的项目,有什么工具能够辅助测试,提高质量与效率?
做好以上总结,列出可行的行动方案。那么再下一次接到相应的需求后就能快速的评估测试范围,选择测试方案,规划测试时间等。
如果你有实打实地做好以上每个点,将能有效地从测试角度管理好项目风险,交付一个更具高质量的产品。
源自公众号 有温度的testing