软件测试需求分析案例
需求文档写了三十页,软件测试用例设计了五百条,测试上线后用户反馈的需求第一个问题,文档里压根没提。分析这不是案例段子,是软件我上个月真实踩的坑。 那个项目做的测试是企业内部审批流。产品经理在需求评审会上讲得头头是需求道:发起人填单、主管审批、分析财务复核、案例归档。软件流程图漂漂亮亮,测试字段定义清清楚楚。需求我们测试团队按部就班,分析把每个节点的案例输入输出、边界值、异常分支全覆盖了。结果上线第三天,一个部门主管在群里骂人——他手底下五个人同时请假,系统只允许他一条一条批,批到第三条的时候前两条的状态莫名其妙变成了“已撤回”。 问题出在哪儿?需求文档里有一句“支持批量审批”,但没定义“批量”的边界。产品经理想的是“一次勾选多条记录点通过”,开发理解成了“逐条调用接口但界面不刷新”,测试用例里只验证了单条审批和两条同时审批,没人想到五条以上会触发前端状态管理的竞态条件。 这就是典型的需求分析断层。写需求的人觉得“批量”是个常识词,读需求的人默认对方和自己想的一样。测试如果只做需求的“翻译器”,把文字转成用例,那永远只能测出已知的已知,测不出已知的未知。 后来我养成了一个习惯:拿到需求文档先不急着写用例,干三件事。 第一,把文档里所有形容词圈出来。“快速响应”“友好提示”“合理范围”——这些词在开发眼里是空气,在测试眼里应该是刺。什么叫快速?200毫秒还是2秒?友好提示是弹窗还是行内红字?合理范围是1到100还是1到10000?圈完直接拉产品经理对质,逼他把形容词换成数字或枚举。有次一个“适当延长超时时间”被我追着问了十分钟,最后定下来是“从30秒改成120秒”,开发看完补了一句:“哦,那我缓存策略得改。” 第二,画状态流转图,不画流程图。流程图是给领导看的,状态图是给测试用的。每个实体的生命周期里,哪些状态可以跃迁,哪些跃迁需要条件,哪些跃迁是禁止的。上面那个审批流的坑,如果画了状态图,就会看到“已提交→审批中→已通过”这条链上,批量操作可能让多条记录同时进入“审批中”,但“审批中”是否允许并发修改状态?没定义,那就是风险。 第三,找开发聊实现方案。别等提测了才看代码。需求评审完,拎杯咖啡坐开发旁边问一句:“这个批量审批你打算怎么实现?”他要是说“循环调接口”,你就知道要测并发;他要是说“前端攒一批再发”,你就得测数据一致性和失败回滚。有个开发被我这么一问,自己发现需求里漏了“部分成功”的场景——十条记录里三条审批通过、七条因为权限不足失败,界面该显示什么?用户能不能重试?这些全是测试点,但需求文档里一个字没有。 说白了,软件测试需求分析不是把PRD翻译成测试用例。PRD是产品经理的想象,测试需求分析是把这个想象拆成可验证的、有边界的、能证伪的断言。产品经理说“用户能方便地管理订单”,你得拆成:用户能按订单号精确搜索、能按时间范围筛选、能批量导出、导出时超过一万条要分页、分页时排序字段必须稳定、导出文件名不能有非法字符…… 这些细节没人会写进需求文档。但测试如果不挖出来,上线后用户就会用脚投票。那个审批流项目后来回滚了批量功能,重新设计花了两周。两周里我每次看到那个主管在群里发“?”都觉得自己当初少问了一句。 需求分析做得好不好,不看用例数量,看上线后第一个星期有没有人骂娘。这话难听,但比任何测试覆盖率报告都准。
-
上一篇
-
下一篇
- 随机阅读
- 搜索
-
- 友情链接
-