如何编写有效的用例

已发表: 2015-08-21

如何编写有效的用例

用例被广泛用于记录业务逻辑和系统流程。 但是对于它们是否有用以及应该如何构建它们有很多意见。 在某些项目中,开发人员从不看用例说它们很冗长,或者他们真的不太了解它们。 业务分析师可以做些什么来使用例真正有效?

我们大多数人都知道,用例描述了业务流程,并且是系统与特定目标参与者之间交互的规范。 用例文档不同于需求文档,也不同于设计文档。

让我们看一下需求用例的两个示例。 你认为他们中的哪一个更好。

示例 – 1

用例详情注释

用例名称 - 订单票

名字不错。 它清楚地表明了用例是什么

目标 –客户成功在网站上预订足球比赛的门票

描述- 演员访问网站,查看
时间表,选择比赛
和座位,预订
门票并支付足球比赛的费用

明确提到了目标和描述
这将有助于设计师
开发人员了解什么是
他们的设计文档和代码的目标

演员——客户、客户服务代表
前提条件 –系统已启动并正在运行。
触发器 -演员已访问系统以预订门票。
后置条件——演员可以订票。 系统更新信息。

所有其他用例细节,例如演员,
前置条件、后置条件和
提到了触发器,这将有助于
应用程序的设计和开发更容易。

主要流程 - 步骤

  1. 演员访问网站并选择订票
  2. 系统显示预订信息
  3. 演员确认比赛细节(UI规范中的更多细节)
  4. 演员确认座位详细信息(UI规范中的更多详细信息)
  5. 系统确认可用性
  6. 系统呈现表单获取用户信息
  7. 参与者提供用户信息(另一个用例中的详细信息)
  8. 系统显示付款信息表格
  9. 参与者提供付款信息(另一个用例中的详细信息)
  10. 系统确认详细信息并提供预订 ID
  11. 演员存票
  12. 演员退出系统。

包含的用例

- 付款

– 生成预订 ID

扩展用例

– 生成付款失败说明

– 打印票

主要流程中的步骤很清楚,但
UI 细节被忽略了。 用例中的 UI 详细信息
关于座位选择和匹配
选择会使用例变得笨拙。
用例清楚地显示了参与者必须做什么以及系统将做什么
付款流程在a中详细说明
不同的用例,以便任务可以
很容易分解成不同的设计组件。
包含扩展用例被命名
这样可以
参考它们以获取更多详细信息。

备用流程

-取消门票

  1. 演员取消交易
  2. 系统取消交易

异常流

- 门票不适用于指定比赛/指定座位

1.系统显示错误信息

详细说明了备用流和异常流

* 用例可以在引用、备用和异常流方面更详细。 这个例子是为了强调一个写得很好的用例应该包含什么。

示例 – 2

用例详情注释

用例名称——票务订购

该名称不是从用户的角度来看的,它看起来像是一个业务流程定义。

描述– 演员访问网站、查看赛程、选择比赛和座位、预订门票并支付足球比赛费用

缺少用例的目标。 设计人员、测试分析师和开发人员不会理解为什么必须开发此功能。

演员——客户、客户服务代表
触发器- 演员已访问系统以预订门票。
后置条件——演员可以订票。 系统更新信息。

缺少前置条件。

主要流程步骤

  1. 客户访问网站并选择“订票”选项来订票
  2. 系统在下拉列表中显示匹配列表。
  3. 客户服务代表从下拉列表中选择
  4. 系统以座位图显示座位详情
  5. 演员选择座位。 如果座位不可用并显示错误消息。
  6. 演员提供付款细节
  7. 演员订票,否则取消票。
  8. 系统使用客户的名字和随机生成的 4 位数字生成预订 ID

包含的用例
- 付款

在用例步骤中,有一些对实际 UI 元素的引用可能会使读者感到困惑。 备用流程写在主要流程中,这使得很难理解整个流程。
演员有很多名字——“客户、演员和客户服务代表,这令人困惑。
这里解释了预订 id 的生成,但与订购票相关的演员无关。
没有备用流程、异常流程,也没有提及所有相关用例。

这个用例缺乏清晰度和细节,不会帮助团队正确开发功能。

用例中应该包含什么什么不应该出现在用例中
  1. 姓名
  2. 描述/目标
  3. 前置条件
  4. 扳机
  5. 基本流程和备用流程
  6. 异常情况
  7. 发布条件
  8. 如有特殊要求
  9. 链接到 UI 详细信息和其他相关模型/图表
  1. 实施细节
  2. 内部处理
  3. 非功能性需求
  4. 用户界面细节应与用例同时完成,但在单独的文档中

.

编写有用用例的一些提示:

  1. 从参与者的角度编写用例步骤。
  2. 用例不应该有设计和架构细节。 它应该专注于业务流程。
  3. 如果用例中的步骤按时间顺序编写会更好
  4. 根据需求和复杂性,决定是否需要将 CRUD(创建、读取、更新和删除)操作保存在单独的用例中,或者可以将它们组合在一个用例中。
  5. 提供对备用流、异常流、包含用例和扩展用例的引用非常重要,这样业务设计才能完成。
  6. 选择一个模板(项目定义、公司定义或任何详细的模板)并遵循所有用例的结构。
  7. 拥有用例图很重要。
  8. 在敏捷中,我们有用户故事来捕捉需求。 可以使用精益用例以迭代的方式详细说明用户故事。
  9. 验证应详细说明。

在你写完一个用例之后,问这些问题,如果所有问题的答案都是“是”,它就是一个有效的用例——

  1. 用户会知道用例中的业务流程何时执行吗?
  2. 是否清楚谁将执行用例的哪个步骤?
  3. 业务逻辑的描述是否有足够的信息用于分析、设计、开发和测试?
  4. 从主要流程到备用流程和异常流程是否有适当的参考?
  5. 是否有用例图?

如果用例写得好,用例是捕获需求和正式记录业务流程的有效方法。 应该指导整个团队使用用例来完成他们的任务。 用例和用例图是与客户讨论业务流程的好方法。 最好有一个标准的用例模板,其中包含编写用例的指南。 以这种方式编写的用例将受到所有项目团队成员和利益相关者的重视。