转载

没有验收标准的软件需求,你敢开发吗?

对于软件需求的描述,不应仅仅描述要实现的功能或非功能需求,还应对每条需求都要给出一个验收标准。

  1. 什么是验收标准

所谓验收标准,就是使用可度量的数据对用户需求进行宣描述,以便在“验收”的时候,能够用量化的数据确认需求是否实现。这里的验收标准,不是针对软件产品的,而是针对用户需求,针对每一条的用户需求。

这么说来,验收标准原来就是对需求的定量描述。可是用户需求是那么好定量描述的吗?

对于功能需求,相对来说,还是比较容易的,而那些非功能性需求,比如,性能、安全性、易用性等要定量描述却是常常让人摸不到头脑。其实,这只不过是因为你还没有理解用户的真正意图。

比如这样的一条需求:产品应该用户友好。如何定量描述“用户友好”?这就要求你要去了解“用户友好”的更准确的含义。例如,是指易于学习,或易于使用,或其他含义?

假定用户的意图是“我希望我的用户能快速学会使用该产品”,这表明度量的尺度是“掌握给定任务所需的时间”。那么,对“用户友好”的验收标准建议是:在新用户第一次使用该产品时,他们将能够在30分钟内完成增、改、删等基本操作。

2.  为什么软件需求一定要有验收标准?

软件需求有验收标准,至少可以带来以下3方面的好处:

  • 有助于需求的一致理解

当需求用定量数据描述时,存在误解的可能性应非常小了。比如这样的需求描述:在90%的情况下,工程师将在15秒钟内得到软件系统产生的工程计划。这样的描述,无论用户、开发人员、测试人员对需求的理解都不会有偏差。

  • 有助于对需求的确认

在消除了需求的歧义,达成了需求的一致理解,用户对于需求的确认,就会很容易进行。因为这些需求描述都很清楚,确定其重要性以及排定其优先级,就不算什么难事。

  • 有助于对需求实现的验证

需求实现的验证通常是通过测试来进行的。在编写测试用例的时候,需要给出预期的结果,需要给出有效输入数据和无效输入数据的测试用例,这些要求,在每条需求都有验收标准的情况下将很容易满足。

3.  验收标准示例

那么,验收标准应该怎样写呢?下面举几个例子:

  • 功能需求

一项功能性需求是产品必须做的某件事情,是产品必须采取的一项动作,因此验收标准指明了如何得知产品已经成功地完成该动作。

比如,一项功能需求描述是:产品将记录气象站的读数。 对应的验收标准:记录的气象站读数将与气象站发送的读数相符。

如果功能需求是进行某种计算,那么验收标准将指出,计算的结果必须与权威机构对数据的看法一致。

例如,如果需求是“产品将记录……”,那么验收标准就类似“取得的数据将符合……(数据的最初来源)”。如果需求是“产品将检查……”,那么验收标准将是“被检查的数据将符合……(权威的数据来源)”。

  • 性能需求

一项性能需求的描述:响应速度足够快,以避免打断用户的思路。

验收标准:在95%的情况下,响应时间将不超过1.5秒,在其他情况下不超过4秒。

  • 安全性需求

需求描述:只有使用A类登录的工程师能够修改气象站的数据。 验收标准:在1000次气象数据的修改k全部由A类登录的工程师完成,没有例外。

  • 易用性需求

需求描述:产品将是直观的和自解释的。 验收标准:在首次使用该产品时,工程师能够在30分钟内得到一份正确的除冰预报。

4.  小结

需求的验收标准/定量描述对于需求管理和需求开发,以及验证和确认来说都是至关重要的。不抓好它,可能会在开发过程中引入大量的潜在缺陷,给软件研制带来巨大的风险。

没有验收标准的软件需求,你敢开发吗?

微信号:IdeaofSE

原文  http://mp.weixin.qq.com/s/yNZGZRzHqCO05DFCp0U8lQ
正文到此结束
Loading...