對用例的再認知 —— 讀《編寫有效用例》
用例、用例圖肯定不少人聽說過,也都基本知道它們大概是什麼,我之前也是如此,直到最近偶然發現一本軟體工程的書:《編寫有效用例》,帶著好奇心讀了一遍,瞭解了一下軟體工程技術角度對軟體設計的思維方式,這裡發文mark一下
一、重新理解用例
1、《編寫有效用例》的內容總結
完整的用例體
你會發現可能比原來網上看到的用例多了一些東西,多了使用語境、範圍、級別、專案相關人員和利益、技術和資料變化列表這5點,其實在描述產品需求的時候,完全可以不描述這幾個點,前4點更多屬於設計產品時的考量,和實際的系統行為無關,最後一點則可以合併到擴充套件中,但是我認為有必要理解其中的思想,以便在我們從業務邏輯、從場景中提取產品需求後,對整體產品的功能邏輯進行更全面的考慮,下面介紹主要的點:
1、專案相關人員:包括了所設計系統外的一切人或物,可理解為系統的利益相關者,只是不像我們在需求分析時關注的那麼廣,此時只是聚焦到當前用例所涉及到的人,其實就是產品設計中對主要、次要、反面人物模型的梳理;
1)主執行者:書中說是請求系統提供服務的人(不得不吐槽這個描述太那啥了),其實就是指使用者,可能包括多個角色,在《互動設計精髓》中則可理解為主要人物模型,從描述產品需求的目的出發的話,我們只需要講清楚該用例是關於哪些使用者、哪些角色即可
2)輔助執行者:為使系統運轉所起來到的外部人或物,比如訂單系統需要依賴庫存系統才能知道我這訂單能不能生成,點餐系統需要依賴後廚印表機廚師才可接到單子
2、範圍(設計範圍):指設計時考慮的部分,由於一個用例可能涉及到本次無需設計的部分,此時透過這一點其實就是在說明該需求涉及到的部分是哪裡,哪裡是沒有涉及到的
3、級別:指的是目標級別,目標的層次很好理解就不多說了(舉個例子就是吃飯是一個層次目標,吃飯是為了生存是另外一個層次的目標,生存是為了找到自身價值又跑到另外一個層次的目標,扯遠了。。),實際上只需要在設計時明確使用者目標即可
4、前置條件:必要條件,執行用例前必須滿足的前提
5、最小保證:系統對專案相關人員的承諾,保證多方利益,特別是失敗情況下的承諾,比如多次輸入密碼失敗後還是能申訴
6、成功保證:即系統成功執行後的結果
7、觸發事件:啟動用例的事件,有時也是用例的第一步
8、主成功場景:以理解為該用例的主幹流程(書中將用例的每個步驟集稱為一個場景,比如新增規則,可以是匯入的方式,也可以是手動的方式,兩個分支對應著不同的步驟,也就對應著不同的場景)
9、擴充套件:包括其他分支、異常情況以及對應情況下的處理,著重考慮幾種以下幾種情形:
1)其他正常情況路徑
2)操作錯誤的情況
3)無任何操作的情況
4)系統確認/校驗不透過的情況
5)從外部系統/人沒有得到響應或響應錯誤
6)系統崩潰
2、如何理解運用
現在講究效率的背景下,編寫冗長的用例會耗費不少時間,除非很有必要(比如規範規定)。所以要記得用例本身只是一種描述產品需求的方式,所以從這個目標出發,我重新整理了在實際中如何去運用這種描述需求的思路:將上面提到的概念運用到畫功能流程圖中(適合在最後細化的使用,不要一上來就畫到很細,書中也提到用例本身也是不是一次性完善的,而是逐步確認逐步再細化的),如下:
基於用例的思想來畫功能流程圖
可以看出用例中提到的點基本都囊括在了功能流程圖中,在寫PRD時再注意將對應的點描述出來(這其實也是書中提到的用例的表達方式之一)
3、文件表達需求的注意點(摘錄自書中)
1)用例名:簡單的”主謂(前置短語)賓“
2)從第三方的角度進行描述
3)顯示執行者的目標而非操作介面的動作,不涉及介面元素,減少維護和改動成本(在進入具體設計階段之前)
二、重新理解用例圖
用例圖描述的是用例之間的關係,網上說到有泛化、擴充套件、包含,但我建議如果不是有很強的必要性,不去管這些UML用例圖中提到的關係,只專注於你只是希望想傳播出功能範圍這件事即可,用簡單的分支幫助自己梳理清楚功能間的關係,幫助團隊瞭解到需求的範圍。
三、總結
工具為目的服務才是關鍵,標準有時候是有道理的,有時候也要加以改變,特別是老的思想,需要在新的背景下結合使用,以上便是讀完《編寫有效用例》後的感受,歡迎交流~
作者:PM小森
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4369/viewspace-2821738/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 測試用例編寫方法
- 如何優雅編寫測試用例
- 萬能測試用例及測試用例編寫方法(待更新)
- 如何能編寫優秀的測試用例
- 軟體測試用例編寫(含思路)
- 測試用例編寫有哪些方式?各有什麼優缺點?
- 軟體測試用例的認識誤區有哪些?
- 【編測編學】分享一套好用的功能測試用例編寫框架框架
- 第8課—設計測試用例編寫技巧
- 用例基礎知識
- postman寫測試用例Postman
- 認知網路知識點及例題總結
- 介面測試用例編寫和測試關注點
- 資料結構:用例項分析ArrayList與LinkedList的讀寫效能資料結構
- 怎樣寫測試用例?
- 單例模式有幾種寫法?單例模式
- 如何以 Node.js 方式編寫單例Node.js單例
- 如何編寫介面測試用例?測試工程師必備技能!工程師
- ChatGPT如何助力DevOps|用例解讀ChatGPTdev
- 樣例軍聽認行通年油例uun
- 精讀《編寫有彈性的元件》元件
- 知識點:用例圖(Use Case Diagram)
- 如何用 OPA5 編寫測試用例來測試使用者輸入文字的功能試讀版
- 論單例的寫法單例
- pytest 能否執行 nose 寫的測試用例
- 孔乙己的疑問:單例模式有幾種寫法單例模式
- IDEA中用junit寫基本測試用例Idea
- 軟體用例寫作與缺陷管理
- 舉例說明你對尾遞迴的理解,有哪些應用場景遞迴
- asyncio非同步模組的21個協程編寫例項非同步
- 開發測試用例:手動擼程式碼 VS 填鴨式編寫
- 給你講講編寫“高質量軟體測試用例”祕訣
- 面試中單例模式有幾種寫法?面試單例模式
- 單例的幾種寫法單例
- 【用例設計】如何寫一份漂亮的測試用例?常見7大方法總結
- 《軟體需求管理 用例方法》讀後感
- 自動化測試人員,專職寫自動化用例,除了用例覆蓋率還有哪些指標?指標
- 這可能是你少有的能get到測試用例編寫精髓的機會!