我正在尝试学习如何将BDD用于我们的开发过程,有时我有时会撰写意味着UI设计的内容,因此对于全新的开发或新功能,UI并不总是存在。

例如,如果我在“单击列标题”的情况下说这句话,则意味着此功能基于某种表格或网格,但是此时,我们仍然只是编写用户故事,因此没有UI然而。

这让我感到困惑,知道我们在该过程的什么时候提出了UI设计?

请记住,我只阅读了有关BDD的文章,我认为这将对我们的团队有很大帮助,但仍然非常新!谢谢!

有帮助吗?

解决方案

如果您以关注系统功能的重点编写场景,则可以更轻松地在这些方案中重构基础步骤。它使它们保持灵活。所以我会问 - 单击列为您获得什么?您正在选择某物吗?您打算如何处理选择?您是否正在寻找某事并按值进行排序?

我喜欢看到说话的场景:

  • 当我寻找条目时
  • 当我去一月的日记
  • 当我看最新条目时
  • 当我看着黑色的同一件T恤时

这些都可能涉及单击列标题,但是实现细节并不重要。这是系统的功能。

在这些高级场景和步骤之下,我喜欢创建一个屏幕或页面,其中包含较小的步骤,例如单击其中的按钮。这使得很容易重构。

我用DSL而不是英语写了这篇文章,但它可以使用相同的想法 - 您无法从这些步骤中分辨出是GUI或网页,并且某些步骤涉及多个UI操作:

http://code.google.com/p/wipflash/source/browse/example.petshop.scenarios/petregistrationandpurchase.cs

希望您发现它很有趣,也许会有所帮助。祝你好运!

其他提示

我猜你 能够 通过说 “当我按x对信息进行排序时,……” 但是,您将不得不调整您的方案,以删除以网格格式显示的数据,这可能会导致一些相当钝的写作。

我认为最好尽快从UI设计开始。在您上面提到的情况下,我认为使用相关UI的草图来增强用户故事是完全有效的,然后在您继续前进时进行完善。一张纸上的铅笔素描应该很好。或者您可以使用平板电脑 素描本专业人士 如果您想要所有数字化的东西。

我的观点是,我看不出UI设计被排除在用户故事中的真正原因。您可能已经知道您将要构建Windows,WPF或Web应用程序。可以肯定地假设,当您要显示表格数据时,您将使用网格。将这些假设放在要求之外,无需添加任何实际价值就可以混淆它们。

用户故事受益于这一事实,即您描述了具体的交互,并且一旦知道系统的具体数据和行为,就可以添加有关交互方式的更多信息。这使您可以使用一些工具,例如黄瓜,这些工具使您可以将故事翻译成测试。您可能会走得更远,例如Web应用程序捕获您启动混凝土故事的所有页面,并收集与该页面的所有交互,从而产生某种信息体系结构,您可能会用于文档或原型设计以及后来的UI测试。

另一方面,这会使您的故事在UI变化方面有些脆弱。我认为,敏捷的思考方式与设计更改时相同 - 不要为未来设计,尽可能简单的事情,将来您可能需要更改它。

如果您删除了所有具体内容(即使输入)的用户故事,您最终会出现用例(至少以最简单的格式,取决于您如何编写故事)。在这方面,用例根本不脆弱,它们仅指定目标。这使它们具有抵抗力的变化,但是很难使用工具自动传输信息。

至于该过程,RUP/UP从用例中得出UI,但我认为敏捷性本质上是增量的(我不会说迭代,这将排除诸如FDD和看板之类的敏捷方法)。这意味着,当您实施新故事时,您将其添加到UI中。这只会使故事中添加UI细节更合理。问题是,这不是创建UI或更普遍的UX(用户体验)的好方法。这正是人们可能称之为敏捷的弱点。敏捷宣言集中在功能软件上,但仅此而已。据我所知,没有用于设计UI或UX的敏捷技术。

我认为您只需要退后一步即可。

坏的: 当我单击列标题时,行被我单击的列对排序进行排序。

好的: 然后,我按名称对行进行排序,或者有时用邮政编码对名称非常常见,例如“史密斯”。

用户故事 /工作流程是 用户想要实现的目标, ,不是一系列动作 如何 他实现了。你正在收集 什么是 因此您可以确定最好的 怎么样 适用于所有用户和用例。


查看帖子的一个单一方面:

如果我在“单击列标头”的情况下说这句话,则意味着此功能基于某种表格或网格,但是此时,我们仍然只是编写用户故事,因此还没有UI。

如果这来自用户,而不是来自您,它将显示一个隐藏的 期待 实际上有一个带有列标题的表或网格。即使是从您那里来的,也不是完全没有价值,因为您可能也是用户。它可能是短视的,只是因为它来自SQL查询而想到网格,或者可能是对的,因为它是您的演示 预计 数据中的数据。创意UIisnät是一件坏事,但忽略用户期望是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top