如何編寫有效的用例

已發表: 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. 是否有用例圖?

如果用例寫得好,用例是捕獲需求和正式記錄業務流程的有效方法。 應該指導整個團隊使用用例來完成他們的任務。 用例和用例圖是與客戶討論業務流程的好方法。 最好有一個標準的用例模板,其中包含編寫用例的指南。 以這種方式編寫的用例將受到所有項目團隊成員和利益相關者的重視。