需求评审之实战演练

我在面试时,经常会出一道简易计算器需求的编程题,完了之后再让写一下这个需求的用例,题目看起来很简单,但是几乎可以把我想了解到的基础测试理论全部都涵盖了。

今天我还拿这个例子来实操下在《测试人员参与需求评审的价值是什么?》中提到的需求评审关注点。

比如我现在是产品的角色,我给的需求描述是这样的:

现在有一个 PC 客户端的命令行工具,这个工具可以接收三个命令行参数,其中,前两个是数字,最后一个是运算符,运算符只支持加减乘除四种,工具的功能就是把前两个数字使用运算符做下运算,然后输出运算结果。

下面是模拟针对这个需求的需求评审。

先是需求合理性的讨论。

测试:「命令行的计算器,干嘛用的,为啥不用系统自带的计算器?」
产品:「恩,目前是演示环节,先不用考虑使用者,请忽略这个问题。」
测试:「为啥是命令行工具?命令行的可控性太差,建议改成 GUI 实现。」
产品:「本次针对的是特定的 Geek 群体,习惯于命令行操作,而且市面上已经有很多 GUI 的实现工具了。」
测试:「前面两个是数字,最后是运算符,不太符合操作习惯,建议把运算符放中间。」
产品:「恩,这个我们回去考虑下。」
测试:「确定只需要支持加减乘除么?是不是功能太弱了?」
产品:「这是第一版迭代,后面会根据用户需求再酌情扩展,所以这地方开发记得别写死了。」

只是做了下简单的需求合理性讨论,就变更了一次需求---参数位置的问题,同时让开发在功能实现时提前考虑了可扩展性,这些问题如果是在测试阶段提出来,大部分的可能是先不动了,不然又得改代码,如果真的改,开发和测试的工作量都会相应增加,如果不改就会增加下次迭代时候的工作量,总之,早提出需求合理性讨论,有百利而无一害。

接着是需求全面性的讨论。

测试:「最大支持的运算数是多少?」
产品:「浮点型的最大值就行。」(懂技术的产品都是好产品。)
测试:「工具是每次运行后只做一次运算,还是一次运算结束可以继续接收新的参数输入?」
产品:「第一版不做太复杂,每次都需要重新执行,只接收直接执行时候的参数传入。」
测试:「三个参数之间用什么分隔?」
产品:「空格或逗号,两个都支持。」
测试:「这个得有个说明吧,不然用户会傻傻分不清。」
产品:「对,如果参数格式错误输出一个使用说明的提示。」
测试:「如果缺少参数提示什么错误信息呢?」
产品:「提示说,你输入的参数个数不正确,请按照 [运算数 运算符 运算数] 的格式输入。」
测试:「如果参数类型错误提示什么错误信息呢?」
产品:「提示说,你输入的参数类型不支持,请重新输入。」
测试:「这个提示不明确吧?参数类型不支持,那具体支持哪些类型呢?用户还是会懵逼呀。」
产品:「那改一下,你输入的参数类型不正确,运算数只支持浮点型,运算符中只支持+-*/,分隔符支持空格和的逗号。」
测试:「如果除数为零,提示什么错误信息呢?」
产品:「提示说,你输入的除数为零,请重新输入。」

除了一个主分支的问题,其他的都属于旁支,旁支是对主分支的补充和完善,也是大家最容易忽视的地方,也是用户环境最容易出现问题的地方。

怎么样?这么简单一个 if 语句就可以搞定的需求,竟然可以提出 12 个有效问题,如果这些是在测试过程中提出,考虑下每个问题从提出到产品确认,然后开发修复,然后测试验证,这过程的损耗有多大,而如果是在需求评审阶段提出的话,开发就可以完全按照既定的需求,提前考虑各种场景的处理,极大的减少了需求变化造成的沟通和返工成本。

然后再罗嗦一句,面试过程中会发现很多人自己写的代码,会被自己之后写的测试用例测的漏洞百出,就比如除数为零的考虑吧,如果我们从测试的角度写用例,很多人都能考虑到,但是写代码呢,99% 的人都没处理,当然不排除一部分人是面试时候的简单实现,但是仍然能说明开发思维和测试思维的差异性,所以我想说的是:

1.作为测试,我们对开发的要求,自己尽量也以身作则,这样才能从开发的角度上更好的和开发沟通;
2.作为开发,20% 的代码做实现,80% 的代码处理异常,是很正常的事,所以请不要等 bug 上来了才去处理异常;
3.作为产品,要考虑到所有可能出现的和用户交互的地方,对于细节的处理,一直都是作为产品功底的体现,这也是为什么彩蛋称之为彩蛋,尽可能不要让它变成臭蛋。

好了,这次是从一个简单的需求着手,说说关于需求评审的两个关注点,可以想象一下,如果是比较大的需求,测试要提出的问题会很多,那么就需要考虑一些策略的问题了,比如分批次进行评审,每一次评审确定下合理的颗粒度,方便大家聚焦,但是不管怎么说,测试参与需求评审的作用是很大的。

别看上面的例子简单,可能也还有我没考虑到的点呢,如果你有补充的内容,欢迎给我留言。

本文首发于公众号「sylan215」,十年测试老兵的原创干货,关注我,涨姿势!

原文地址:http://blog.51cto.com/sylan215/2286850

时间: 2024-09-30 11:24:22

需求评审之实战演练的相关文章

需求评审之隐性需求

前两周,我分别通过两篇文章<测试人员参与需求评审的价值是什么?>和<需求评审之实战演练>对需求评审阶段要做的事情做了大概的说明,今天是第三篇,主要想说说需求评审过程中对隐形需求挖掘的重要性. 一 我们先来看一个例子: 「爸爸,我想吃面条.」「现在太晚了,饭店已经关门了,明天我带你去吃好不好?」「不好不好,我就要吃面条.」「你这孩子,这都 11 点了,哪还有面条?快给我睡觉去.」「哇--」 脑补下宝宝大哭的画面. 来,我们现在换一个爸爸来对话: 「爸爸,我想吃面条.」「今天太晚了,饭

需求评审五个维度框架分析及其带来的启示-3-典型需求评审

典型情境是指软件开发的常见情境,本文选择如下来进行分析: 1. 传统瀑布模型开发下的需求评审 2. 使用IEEE Std. 1028的需求评审 3. 敏捷开发下的需求评审 传统瀑布模型下的需求评审 对传统瀑布模型现有需求评审的分析 传统瀑布模型在需求阶段末期安排有关键的需求里程碑评审,其特征参见2.8节情况1.在业界实际操作中,往往出现如下情况: 1,召集包括领导在内的各方代表,历经1-2小时会议,评审30页以上需求规格说明书,走过场式各方签字通过评审: 2,各方对需求规格书有各种各样意见,历经

为什么要一线研发参加需求评审和工作量评估

一.概述 现在互联网的竞争越来越激烈,对研发人才的争夺也已白炽化.但是如果发挥好每一个员工,每一个研发的聪明才智,让团队有很强的战斗力却是一件让人头痛的问题. 今天我就从让一线研发参加需求评审和工作量评估来谈谈这方面的问题. 二.研发参加需求评审的好处 1.增加研发工程师的参与觉,提高研发工程师的积极性和认同感 2.从人角度看,提高研发工程师对需求的认识,更加熟悉业务和流程,提高研发工程师的业务技能 3.从项目的角度看,增加研发工程师对需求的认识,利于尽早发现需求问题,解决问题,需求了解了,工作

怎样进行需求评审?

一. 注意对需求规格说明的正确性进行评审 需求规格说明的正确性通常可以从如下方面得以体现: 1.是否有需求与其他需求相互冲突或者重复? 2.是否清晰.简洁.无二义地表达了每个需求? “清晰”是让人能够读懂:“简洁”是让人愿意去读:“无二义”决定”读”的效果,是让大家对需求描述的理解能够达成一致 . 3.是否每个需求都通过了演示.测试.评审,分析是否得到了验证? 4.是否每个需求都在项目的范围内? 5.是否每个需求都没有内容和语法上的错误? 6.在现有的资源内, 是否能实现所有的需求? 7.每一条

软件需求评审之规格说明的正确性

软件需求,即客户对于软件产品的要求,是软件项目开展的基础.在大多数情况下,对于需求,客户本身也并不十分清楚或客户认为需求和限制条件过于明显以至于并不将它们作为需求专门向软件开发团队提出.与此同时,软件产品的规模越来越大,实现的业务越来越复杂,因而促使人们采用一些工程化方法对软件产品需求进行研究,需求规格说明的正确性能获得准确.清晰和全面的需求,促进软件项目顺利进行.需求规格说明的正确性通常可以从如下方面得以体现: 1 是否有需求与其他需求相互冲突或者重复? 通常一份长达几百页的需求规格说明书都不

需求评审流程规范图

软件项目需求开发过程实践之业务建模用例图

本次软件工程项目是重建办公业务流程管理平台,需要在继承原370个流程基础上,还需要提供快速流程开发能力,并要求体现出流程管理的规范性,以及流程的执行力.效率.效益,最终为企业管理创新提供流程再造的能力. 在项目前期及需求分析阶段,开发人员致力于"降低成本",以最小的代价完成项目,其可预见性的软件产品是经过系统平台升级的,并经过改良的第二个办公业务流程管理平台.按客户验收要求,"只能打60分,是不能给予验收". 在软件开发中,需求工作致力于解决"产品好卖&q

浅谈软件项目的需求管理

软件项目区别于其它项目的最显著的特征是其不可见性,它不像硬件购销.建筑工程,都是实实在在可见的东西.而软件项目在系统交付之前很长一段时间,客户是无法感知自己想要的系统究竟是什么样子.因此,需求管理就显得十分重要,据相关统计数据分析,软件项目90%以上失败的原因都在于没有重视需求或者需求管理方面做的不到位导致的. 需求管理作为软件项目管理的一个重要内容,贯穿项目实施的全生命周期.俗话说:万事开头难.需求作为软件开发的第一个环节,其重要性不言而喻.市面上关于需求管理的相关理论和书籍很多,但多数停留在

负责的产品经理是如何跟进需求落地的?

一个产品经理可以随时随地的知晓自己需求的进度,并且能够及时检验,是对产品负责的一个态度. 产品经理中打酱油的节点 最近负责的产品模块进入开发周期,需求评审.产品设计过一段落,是时候歇一口气的周期.往往很多产品经理在这个时候,最常用的是要么在有任务或需求指标下,不快不慢地进入下一个需求:要么是在下一个版本时间.或需求没明确的时候,没有事情的等待产品上线:不得不说这个周期,我认为是评判一个产品经理是否负责的PM. . 有没有跟进时间计划 . 有没有跟进产品节点 . 有没有全局考虑全在这里体现 01