使用“给定的时候”发现和验证要求

由Mary Gorman和Ellen Gottesdiener

在我们的书中 发现提供:敏捷产品规划和分析 我们讨论了“给定的时候”技术探索(发现)并确认(验证)产品选项的有用性。在这里,我们总结了这项技术*,Brainchild 丹北.

这是什么 

给定 - 当时(gwt)是一种结构化格式,用于显示示例数据的场景,包括预先和后期条件。

用处

GWT. 帮助项目利益相关者(业务,客户和技术合作伙伴)使用商业域语进行沟通。您可以使用GWT来探索产品选项并以具体,切实的方式确认所选选项。通常被称为“按示例规范”,GWT为您的交付产品提供了生活文档。它同时指定识别接受测试的同时要求,从而简化了发现和交付。

你需要知道什么

GWT. 将7个产品尺寸的四个功能尺寸拉长在一起:用户,动作,数据和控制(业务规则)。 (有关7个产品尺寸的更多信息,请参阅我们的书 发现提供, 在这个提示结束时。)

这是GWT的工作原理。对于特定故事,方案和业务规则,您分析了三件事,要求和回答这些问题:

给出: 系统的背景是什么?在测试动作之前必须为真的预先存在?系统中的数据是什么?

什么时候:  会测试什么?发生操作时,将通过业务规则测试哪些输入数据?

然后: 回应行动,可观察结果是什么?什么是预期的结果?用户可观察到的后状态(状态)或输出数据是什么?

例子

合作发现

利益相关者需要高效,精确的方法来确认要求。给定的时间结构指导产品合作伙伴,因为它们定义了实际示例以澄清要求。那不是全部。您还可以使用GWT格式作为探索的方式 产品选项 - 采取自下而上的,具体 - 首先引出要求的方法。

沿着产品合作伙伴彼此学习,经常揭示不完整,暧昧和误解的要求 - 特别是经营规则和详细的数据要求。

我们使用gwts 敏捷促进会议。产品合作伙伴探索和评估产品选项,然后通过定义GWT来确认对高价目方案的GWT来确认对要求的理解。有时我们与合作伙伴的子集合作,将GWT定义为工作会话的前期工作。然后在会话期间,我们挖掘复杂和边缘的情况。

及时验证

为什么不测试您的要求的有效性 交货? GWT允许您避免从交付后验证的令人不愉快的惊喜,或者更糟糕地发现您提供了错误的解决方案。

GWT. 是一种验证您的要求的方法 - 解决方案是交付的。由于您与GWT一起使用的示例是“Real”,因此它们与最终用户(或其代理人)共鸣。您在发现期间和最终交货前测试您的要求的可接受性。

坚果壳gwt

您会发现给定的时候会帮助您节省时间,避免昂贵的返工,降低需求错误,并促进联合责任的气氛(客户,业务和技术),以指定详细要求。

即使您没有使用软件工具(参见下面的注释3)以指定GWT的要求,或者不使用敏捷实践,您也可以使用GTW来丰富和构建您的对话。

替代技术

您还可以在表中使用数据示例来定义方案的输入和输出(参见GottesDiener和Gorman,2012)。

有些团队我们使用简化GWT格式,以创建具有列的多个示例的矩阵,而不是行,对于表示单个示例的每一行,GWT元素为GWT元素。这些矩阵与客户合作建立并成为验收测试用例(取决于测试平台)。

总和:做双职

所有产品合作伙伴在使用高效的发现实践时,所有产品合作伙伴都会受益于优化每次交付。给定 - 当时的双重责任:它允许我们探索(探索)并验证(确认)。

发现是生成的,创新和开放的。场景(GWT的一个关键元素)是探索性的,看看是可能的。

什么时候我们 confirm, we make sure the 合适的产品正确交付 (分别为经典要求工程中的验证和验证)。我们在GWT中使用的具体示例有助于验证和验证我们正在提供下一个最重要的产品选项。

在你的结构化对话中尝试这种强大的“二针”技术 - 很快。

*此博客文章的更短版本已发布为 IIBA. (国际业务分析协会)2012年11月快速提示。

笔记:

  1. GWT. 开始作为行为驱动的发展(BDD),来自Dan North。其他名称包括:验收测试驱动开发(ATDD)和规范按示例(SBE)。
  2. 欲了解更多,请参阅 敏捷的扩展到巴克® Guide,“使用示例获得真实。”
  3. 使用GWT产生验收测试的工具: 黄瓜, easyb. , 机器人, rspec., jbehave. 和更多。对于数据表驱动验收测试,请退房 合身 或者 健康.
  4. 对于熟悉IIBA的业务分析™的人(巴克):不要假设解决方案评估和验证知识区域仅踢 您的解决方案已提供。在交付之前验证您的解决方案让您获取可以帮助您消除浪费和加速价值的知识,以通过学习 不是 to build.

想要查询更多的信息

adzic,gojko, 按示例规范:成功的团队如何提供合适的软件。曼宁出版物,2011年。

Gottesdiener,Ellen和Mary Gorman。 发现提供:敏捷产品规划和分析,EBG咨询,2012。

MATTS,CHRIS和GOJKO ADZIC。 “功能注射:成功的三个步骤。” 可用.

北,丹。 “介绍BDD。” 可用.

11 Responses to “使用“给定的时候”发现和验证要求”
  1. 大卫赖特

    我正在尝试看到这是如何不同的(更好?)而不是用例。我知道获得技术的一个很好的例子很难,但这个例子中的规则肯定意味着一个变化和一个额外的项目“Then”.

  2. Ellen Gottesdiener.

    谢谢你的问题大卫。

    GWT. 指定用于方案的离散测试。该方案与故事相关联,为非常离散的测试提供上下文。从验证角度来看,当前传递周期的范围内的每个场景都将与产品的目标和值对齐。

    使用案例比GWT更高的粒度。您可以选择使用案例作为一组GWTS的锚... .Oonce您已经缩小了您的用例可能的许多可能场景。

    对于敏捷项目,您可以在小批处理中工作,并专注于尽快提供产品的高值块,典型的用例是我们称之为现在的视图(当前迭代或工作)的“太大” -进步)。我们希望在产品的非常小,明确定义的切片上工作。这并不是说你不能从一个用例开始,只需探索其场景并将这些方案选项切片到最高值。

    无论方法或喜欢的用户需求模型如何(例如,故事或用例),GWT都可能对任何项目都有价值。 GWT.‘makes it real’并帮助您引发并有效地获得您的要求,并加深关于客户,业务和技术利益相关者的对话。

    是的!该规则确实是一个变体(使用用例术语)。每个用例变化和异常都需要自己的gwt–测试每个离散的业务规则。

  3. 斯科特SEHLHORST.

    我喜欢这是一个诱因/验证工具。

    什么时候我们’我们没有这个工具的采访,我们’重新呈现两个选项–(a)迫使他们在我们的工件方面思考,或(b)有一个非结构化的谈话,并希望我们能够抓住一切。

    在某种程度上,它是一个罗萨斯特拉石,允许利益相关者批判性地思考(我们需要的方式),而无需要求他们学习我们转向的文物的语言并提供给开发人员和测试人员。

    到大卫’s point – I wouldn’我用它作为我的要求的容器,我’d与执行团队通信时将那么用作用例或故事(以及适当的图表)。一世’d只使用gwt来验证我认为我已经知道的– and I wouldn’才通过这种技术彻底走过了一切,只有当我觉得我所理解的风险有很大的风险时(我’M静止学习,一个或多个G,W,T是复杂的或细致的,错误的成本高等)。

    admin(艾伦,玛丽,全力以赴 - – I’已经有效地这样做了“poor man’S状态转换图”在我的谈话中的白板上。基本上,这感觉就像在状态机中铰接过渡一样。这“use a real example”技术是我最好的方法之一’发现验证了–尤其是揭示细微差别和隐藏的规则/要求–实施政策的要求和规则。

    这个GWT容器(散文中)有助于要求正确,但并不是’t帮助我完整性(除了来自谈话的发现之外)–这是绘制图的地方有助于我。显示决策表(真实表,基本上)和决策树有助于那个。

    您是否探索了GWT信息的其他集装箱/可视化?本文中的演示肯定是离散和有效的(对于单个GWT)。我想知道其他一些视觉/布局是否可能在会议期间更具吸引力,并且可能有助于将利益相关者带入其中“completeness”部分验证。基本上在上面的结构和ad-hoc /空间方法之间的中途’ve used.

  4. 大卫赖特

    斯科特和所有人,

    给定范围的完整性是一个主要问题,它是我和我的同事提供给客户的主要福利之一。

    我也应该更精确,并提到了一个“business” use case, or a “business activity”使用用例格式描述。我们发现这款工件适用于商界人士。您有预先条件和触发,一个规定的目标/后状态,以及使用信息达到的一个或多个路径(或不达到)该目标。我们通过首次在整个过程的上下文中发现活动,并通过捕获活动中的每个备用路径来确保完整性。

    因此,当我看看GWT(希望没有盲体)时,我在没有台阶/路径的情况下看到一个商业用例。… And that’好吧,我相信项目应该使用他们需要的技术,这会导致成功,我只想在我看到它的时候了解一个新的技术,看看它是对我已经使用的有用的补充我是否不确定它如何适应我所做的那种诱惑,而是响应后的验证技术总是方便的。

  5. Ellen Gottesdiener.

    斯科特,谢谢你的反馈。

    很高兴你也找到了一个强大的工具!

    是的!实际上,我们发现强大的国家图和决策表或树木,以引发和确认要求。 (所有三个的例子都在我们的新书中, 发现提供)。我们发现包含状态图(用方案测试的轻量级测试)的结构化对话始终会产生关于操作,数据和业务规则的新知识。

    您对选择性使用GWTS进行了一个重要的观点。它的质量超过数量 - 您不想在GWTS和浪费时间内避开定义大量验收测试,以便简单,清晰地理解要求。在分析风险和复杂的要求时,GWT尤其有价值。

    就GWT信息的“可视化”而言,特别是预先和后期条件,我们使用状态图,业务流程图,依赖图或故事图。

    对于GWT信息的集装箱,我们发现的内容良好,即商业友好,加速验证对话是在表中组织GWT(每个元素的列:在那时给定,当每个测试时,每个测试都是一个带子的行 - 用于复合gwts。一些我们工作的团队使用ATDD / BDD工具之一作为诱因的一部分,因此它们可以无缝链接到自动化测试。
    〜艾伦和玛丽

  6. Ellen Gottesdiener.

    嗨大卫:
    谢谢你的澄清。

    是的,我们同意每个项目需要故意选择导致成功的技术!为此,我们创建了一个“动作元模型”,以可视化定义业务活动的选项及其可能的关系。 (在我们的新书中 发现提供,我们包括7个产品尺寸中的每一个的元模型。)作为团队规划的一部分,它们选择了一组适当的动作选项。

    从发现交付的行动元模型

    如在元模型中所述,方案可能与任何动作有关 - 从过程通过故事。也就是说,我们发现GWT通常用于验证故事的场景。

    BTW在适当时,我们将在任何操作选项中使用预先和后期条件。

    〜艾伦和玛丽

  7. 斯科特SEHLHORST.

    谢谢,艾伦和玛丽!

    在您回复David的图表中,如果我记得从阅读发现交付,我们’重新在同一概念页面中,但使用略有不同的术语。我想到了一种能力(帮助我征税),因为在使用案例/故事(我想获得所有扣除的信用),那么驱动有要求的人(进入抵押贷款扣除或折旧等)。我认为功能作为产品的描述(通过适当的形式组织申请申请,占所得扣除的收入级别等)。只要我绘制我的概念“capability”到您标记为的对象模型中的位置“feature” then we’re all good. 🙂

  8. [email protected]

    你好斯科特:

    啊,“capability”! 😉

    一个人’S能力是另一个’S功能,过程,MMF,活动,用例,故事......

    背景,文化,首席工作活动,教育和阅读背景都影响了如何理解和使用概念。

    事实上,斯科特,我们’ve努力协调各种定义,解释和关系,以了解这些要求相关的概念。因此,我们使用行业标准的术语和知名出版物(例如,IEEE,ISO和公布的书籍术语,Ellen’s 软件要求记忆慢速 and Karl Wiegers’ S / W要求 books). And that’也是我们开发了元模型和词汇表(以及示例)的原因 发现提供.

    在里面 发现提供‘S词汇表,经过大量的研究和测试,我们定义了能力“做某事的能力”.

    根据您的角度来看,可用于操作选项的层次结构中的许多级别。我们定义了一个功能“一个有凝聚力的外部可见功能,与业务目标和目标对齐”.

    使用您的示例斯科特,(代替定义),我们会映射您的使用“capability” to our “feature”.

    最好的,
    〜艾伦和玛丽

  9. 切片用户故事,提供价值

    […] 验收标准。黄瓜,健身和其他自动化工具,其中许多雇用给定的时间结构,可以帮助创建可执行文件[…]

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *