【问题标题】:Requirement, design, code derivation需求、设计、代码推导
【发布时间】:2012-11-06 20:48:33
【问题描述】:

我正在关注验证和验证线程,我认为一个示例可能会有所帮助。我不是经验丰富的开发人员,所以我想知道这是否正确:

  1. 用户需求:我想将我朋友的姓名、地址和电话号码保存到系统中
  2. 软件要求规范:用户希望能够输入和保存姓名、地址、电话号码。
  3. 技术分析:用于数据输入的 Web UI。数据将保存到 SQL 数据库中。
  4. 详细设计:UI元素:字符串类型的3个字段,1个按钮,对象XYZ,dbConnection....
  5. 代码:(UI实际代码,db脚本)

是这样的吗?任何人都可以更正或添加我在这里缺少的内容吗?

至于验证,每个阶段都可以根据需求进行验证(可追溯性)。至于验证,功能代码应该按预期工作(保存三个属性)。

【问题讨论】:

  • 我觉得大体思路是对的,但要尽量具体。

标签: documentation verification


【解决方案1】:

虽然这在理论上是正确的(我不得不这么说),但在所有实际和现实世界的场景中都是完全错误的。

捕捉用户需求和为什么他想做某件事。这使您可以只构建用户想要的软件,消除作为虚构要求、技术要求、拥有等方面的一部分的浪费。

所以不是,

I want to be save my friend's name, address and phone number to the system...

我希望下面的内容强调为什么?用户的真正需要

我想在朋友生日那天给他寄一张贺卡。

现在,我知道我只需要他的姓名和地址。由于这是为了将来,我也想存储这些信息。所以我接下来要写的是一套满足上述客户需求的验收标准。如果我可以将它们捕获为一组可执行规范,那就更好了,因为它们可以通过编程方式验证

忽略其他一切。可追溯性是不必要的开销。如果我们根据虚构的需求构建软件,我们就需要它。

阅读下文

【讨论】:

  • +1:“可追溯性是不必要的开销。”。我会将 BDD 添加到您的列表中。
  • 一旦有人搜索 atdd 或可执行要求,那么 DVD 肯定会出现。我不希望帖子中充斥着流行语,所以...
【解决方案2】:

我从未见过一种在单个冲刺/时间框之外将代码跟踪到需求的好方法。而且,您的列表中缺少测试人员!除非您的测试人员同时也是您的业务分析师(根据我的经验,专业测试人员会发现很多需求不一致 - 也就是错误)。

我认为最好的方法是让每个人都尽可能参与,这样您就可以经常交叉引用每个人的期望。如果每个人都一起工作,您就不需要实施一种货物崇拜流程,即批量信息以一种方式向下游传输。

具有可追溯性的最简单工具是您的 VCS,其中每个提交都包含与该提交相关的用户故事/用例的 ID。

【讨论】:

  • 一旦代码可执行,测试人员就会参与验证。验证很少由测试人员完成,而不是分析师、开发人员(静态分析)
  • 嗨特里,我非常不同意你所说的。测试人员可以为停止需求的验证做出很多贡献,其中包括:需求中的差距、以微妙方式相互矛盾的需求、在实现之前发现 UI 可用性缺陷。显然,这取决于您雇用的测试人员的类型。专业测试人员对比可以使用鼠标、键盘和阅读测试脚本的人。如果您想对此进行更多调查,建议您阅读本书Agile Testing
猜你喜欢
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 2020-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
相关资源
最近更新 更多