5

你如何组织用户故事?

我为 Web 应用程序所做的是:

为“索引”之类的网页制作标题,然后列出用户可以在此页面上进行的所有商店。

我继续阅读所有页面。

这是最有效的方法吗?

4

5 回答 5

8

我个人喜欢 BDD 风格的用户故事和任务。通常,在 BDD/Agile 下,您将在计划会议中按照以下方式创建用户故事:

As a [role] I need [capability] so that [desired outcome].

用户故事真的不应该比这更复杂,因为它们实际上只是未来对话的占位符(大多数公司误解的敏捷的一个关键方面。)一旦你在迭代中达到准备实施的地步用户故事,您将为该故事生成一个或多个任务,通常以关注/上下文/观察的形式:

关注点:一些活动
上下文:做某事的时候
观察:这个东西应该被添加到数据库
观察:这个东西应该得到一个新的唯一ID
观察:这个东西应该和那个东西相关

现在,每个任务的编写方式都可以直接转换为 BDD 样式的“规范”测试,该测试设置上下文、执行关注的操作并验证观察结果。(有关如何与 xUnit.NET 一起使用的一个很好的示例,请参阅此站点。)

在创建用户故事时不要过于技术性地思考,这一点很重要。您真的不想将您的故事分解为高度技术性和低级的内容,例如“创建一个标题为 'xyz' 的网页。在此页面上显示商店 a、b 和 c”。那是超级技术,实际上并没有描述任何有用的业务需求。故事应该更加流畅和动态,并代表真正的业务需求:“作为客户,我需要查看包含我正在寻找的产品的所有商店,以便我可以以优惠的价格购买我需要的东西。” 从该用户故事中,您最终将完成定义创建此页面的更多技术方面的任务(我从我在您的问题中读到的内容进行了很多推断……请原谅我在扩展概念时获得的任何艺术许可):

关注点:寻找商店
上下文:寻找价格最优惠的产品时
观察:网页应显示包含用户搜索产品的商店缩略图网格
观察:商店应进行排序,以使价格最低的商店出现在附近页面顶部
观察:单击商店的缩略图应将我带到该商店网站上的页面,该页面包含用户搜索的产品

上面的故事水平很高,涵盖了整个页面的预期行为。上述规范可用于验证结果页面的正确行为,用作创建自动化 UI 测试等的基线。但是,也会有驱动该页面的代码,并且应该为那些较低级别的事物创建额外的任务,例如出色地。

关注点:检索商店
上下文:搜索包含特定产品的商店实体时
观察:应返回 StoreResultDetail的集合
观察:商店的集合可能为空
观察:每个 StoreResultDetail 应包含商店名称
观察:每个 StoreResultDetail 应包含价格产品
观察:每个 StoreResultDetail 应包含商店网站的 URL
观察:每个 StoreResultDetail 可能包含该商店网站上产品的 URL

上述任务可以通过某个服务上的服务方法以及实现整个页面规范所需的任何其他行为来实现。

完成任务后,您可以创建可视化设计以匹配、实施代码和单元测试(或 BDD 规范),并使用正确、清晰和简洁的文档对您的应用程序进行 QA 测试,以验证您的测试。

于 2009-06-06T03:42:35.690 回答
2

按“网页”分隔用户故事对我来说似乎不是最理想的——您应该根据用户故事选择页面集,反之亦然。我会按照用户的“角色”进行分类——事实上,在以用户为中心的设计中,按照游戏中的“角色”。

于 2009-06-06T01:36:32.493 回答
1

在我们的商店中,我们编写了用例。用例示例:

Create New Customer Account
Assign User Rights
Receive Order
Accept Payment

我们有一个包含两列的表单。第一列是用户,第二列是计算机系统。在这两列中,我们开始列出操作。用户这样做,系统像这样响应,等等。我们在条目之间留有间隙,以便步骤自然地从左到右流动,然后再返回。表单上有一个地方说明了用例适用于哪些角色(例如项目经理、管理员)。

从用例开始,我们开始勾画网页。

您还可以制作用例图:

替代文字

于 2009-06-06T01:40:43.310 回答
0

我们按功能或更好的最小可销售功能 (MMF) 对它们进行分组,以便为​​产品增加价值。确实,例如,没有办法展示无法创造的东西,或者创造还看不到的东西。因此,我们将创建/显示分组,以便一起交付。更新和删除可以稍后进行,YMMV。

于 2009-06-06T16:41:18.237 回答
0

我首先确定用户将使用应用程序执行什么场景。通常,这些都是可以预测的。用户登录到他/她脑海中的某个任务的网站并希望完成该任务。

我会将自己限制在一个场景中,作为一个顺序步骤列表。例如,用户登录、用户选择产品、用户选择数量、用户结帐、结束。

写下场景还可以帮助您确定应用程序的哪些部分比其他部分更重要,以及哪些场景可以轻松实现“中间”。最后,哪个场景可能会成为应用程序启动的阻碍。

于 2009-06-06T01:45:15.063 回答