在SBE和其他产品文档之间取得平衡

时间:2013-11-26 14:32:46

标签: bdd agile specifications requirements atdd

阅读在线资料(例如FowlerGerard),似乎规范说明故事不应该是完整的功能规范。

问题1 :从SBE开始,如何在描述系统的所有功能方面决定他们的故事需要多么全面?即我什么时候可以停止写故事,因为我抓够了?

问题2 :在测试团队根据产品文档验证产品的组织中,如果商店不是完整的规范,我认为“其他”产品文档需要包含所有内容SBE没有涵盖的案例?

1 个答案:

答案 0 :(得分:1)

关于问题1:

开发任何系统最重要的部分是开发团队与产品所有者进行对话。首先找出他们需要的功能的关键。我将通过一个例子回答这个问题;让我们说产品所有者可能希望设施登录他们的新网站。此要求可写为:

In order to gain access to the website's facilities
As a user
I want to be able to login to the website

(请注意,我正在使用Gherkin域特定语言编写此答案中的方案和功能。)

根据产品所有者的关键要求,您现在应该与他们讨论如何从用户的角度来实现此功能(保持高级别,不要使用技术术语,与业务部门讨论,找出他们想要什么)。因此,您可能确定的第一个“快乐路径”场景可能是:

Given a user is on the login screen
When they submit valid login credentials
Then they gain access to the main website

在与产品所有者进一步讨论后,他们会告诉您,由于网站包含极其敏感的信息,因此应将任何失败的登录尝试报告给系统管理员。这将导致另一种情况:

Given a user is on the login screen
When they submit invalid login credentials
Then the system administrator is informed of the failed log-in attempt
And the user is informed that their login attempt failed

此时,产品所有者可能会说这些是他们想要登录系统的唯一方案。因此,从开发团队的角度来看,不需要对此功能进行更多调查(因此您不需要再编写任何用户故事)。当然,在项目开发的稍后阶段,产品所有者可能还会告诉您,他们希望在用户上次登录到主网站之前通知用户,但您只需要担心这一点当他们要求时。

关于问题2:

组织应根据“生活”文档验证产品,例如使用Cucumber(例如)从上面详述的场景生成测试。

正如我在问题1的答案中所说,您应该确定“足够”的方案/用例以满足产品所有者。产品所有者要求的是完整的规范。不要试着再次猜测产品所有者可能想要什么,因为这可能会导致YAGNI的典型案例。