软件需求的质量决定了开发、测试的质量,而使用5W1H模型进行需求评审,能够帮助我们获得高质量的、完整的需求。
什么是需求的5W1H模型?
5W,即why,Who,Where,When,What;1H即How,通过对需求进行5W1H的提问,获得对需求更为准确的理解。
5W1H模型如下图所示:
软件需求一般分为三个层次:业务需求、用户需求和软件需求。在需求的5W1H模型中,Why适用业务需求,Who,Where,When,What适用用户需求,How适用软件需求。
业务需求(why)
作为高层需求,业务需求对用户需求和软件需求的定义有着决定性的作用。如果在定义用户需求和软件需求时发生分歧,应以是否符合业务需求作为取舍的最终标准。业务需求描述客户想要解决什么问题,达成什么目的。这是客户提出需求的根本原因,所以,适用“Why”。
用户需求(Who,Where,When,What)
用户需求是站在用户的角度,期望通过软件操作来帮助用户完成业务活动。具体来说,就是由什么角色(Who),在什么条件下(When),在哪个功能入口(Where),使用什么功能的什么操作(What)来达成业务目的。这是用户需求最主要的内容,它准确地描述了功能需求,包含功能触发的入口、功能说明、功能使用约束、触发功能的事件,以及执行完成后的响应和结果等。
软件需求(how)
软件需求是用来描述如何实现用户需求的,这是软件需求规格说明书的主要内容。软件需求将用户需求分解为各个模块或子系统的功能,包含功能的主流程和备选流程、数据对象和接口等。
现实项目中,对于用户需求(Who,Where,When,What)(对应软件研制任务书)和软件需求(how)(对应软件需求规格说明)基本能够定义清楚,但对于业务需求(Why)却不够重视。这既可能使得真正的用户需求和软件需求被遗漏,也可能使得只开发出基本使用功能没有让用户期望甚至兴奋的功能。
业务需求远比功能需求更为重要。
在需求调研时,无论是客户还是需求开发人员,都倾向于一开始就谈具体的功能,这是不恰当的。因为功能需求经常会发生变更,而决定功能需求的业务需求几乎不会变。
业务需求需要需求开发人员与客户的深入沟通才能获得,而深入沟通的前提是需求开发人员了解软件应用的行业和客户的组织结构及其职能这些背景知识。
这正是:
需求分为三层次,5 W 1 H 用其中
业务需求别忽视,避免遗漏好功能
参考书目:软件测试价值提升之路,作者:杨晓慧,出版社:机械工业出版社
联系客服