針對 “測試用例最佳實踐” 的說明
前面開了測試用例最佳實踐這個話題,沒想到反對聲音很多。另外,所列部分條目,沒有直觀的例子,有些同僚不理解什麼意思。決定再開個話題進行詳細剖析說明。
關於 “最佳實踐” 的說法
我的定義是能把工作做得更好的工作實踐,同時也是一個目標。這些條目,我們可以根據實際情況做相應的取捨,沒有強制必須全部做到。但是我們應當把它們作為一個目標,力求全部做到。
是束縛自己嗎?
有些評論說這是吃力不討好,我覺得恰恰相反。首先應該明確,這些不是規則,而是工作方法。採用這些方法,我們能把工作做得更好,直接來說就是更能保障質量,那麼相應的,我們的績效也會更好。反過來,如果不遵循這些實踐,大機率我們也無法保證質量,也就沒辦法把本職工作做好,相應的績效也會不好。
無論功能大小,必須寫測試用例
關於這一條,大家反對最多。關於寫不寫,我只列出寫測試用例的好處:
- 理清思路,避免遺漏。這是最大的好處和目的,因為用例可以讓我們減少漏測。
- 跟蹤測試進度。從用例的執行情況,可以大致估算測試進度。不然只能靠感覺評估。
- 迴歸測試時很有用。
- 問題定責。線上出現問題,從用例中可以判斷是漏測還是用例沒覆蓋。
- 好的用例設計可以避免冗餘測試,節省時間,提升測試效率。當然設計起來也挺難。
- 與同事協同的需要。如果有用例,那麼與其他同事協同會更方便。
- 文件傳承。用例是測試人員很重要的文件沉澱,不僅能體現自己的工作成果和專業性,而且對新人透過用例熟悉業務也是很有幫助的。
有人說自己不寫用例,直接寫程式碼。這種情況本質上是寫了用例的,程式碼就是你的用例。
有人說自己時間不夠,只用思維導圖做了測試分析,列測試點。這種情況其實也是寫了測試用例的,只是用例的質量差。
有人是時間不夠,沒法寫。有兩個辦法,第一是自己想辦法縮短寫用例的時間,比如測試用例最佳實踐中提到的第 5、6、7 點就是針對縮短寫用例的時間的,第二是跟團隊爭取時間,我相信只要有質量意識的團隊,不至於不會給這個時間,再不濟我們也可以透過宣講的方式跟團隊逐漸傳播相關的質量意識,相信團隊會慢慢理解的。
測試用例必須得到嚴格和完整的執行
寫用例只是第一步,我們的目的終究是揭露問題,如果沒有嚴格地執行,那寫了也等於 0。
除了一次性專案,測試用例需要持續維護
部分團隊特別是採用敏捷的團隊,專案迭代很快,並行專案很多,很難有精力去維護用例,特別是用例很多的情況下。但是仔細想一想,用例需要維護的場景,一般是迴歸測試,或者功能改變,不管是哪一種情況,只要我們是對著用例測試的,那麼自然而然就會需要對用例做修改的。如果時間實在不夠,我建議是記錄下改動點,專案緊張時刻過後再找時間修改用例,也是可以接受的。
可以使用版本控制軟體對測試用例進行版本控制
我目前能想到的是三種情形:
1、如果團隊使用專案管理軟體維護用例,那麼一些專案管理軟體是自帶版本控制功能的。如果用例有修改,可以直接在原來的基礎上新建一個版本,比如 PingCode:
2、有些團隊有專門的伺服器用於沉澱文件,一般會有配套的 SVN 等版本控制軟體,那麼可以用此類軟體來進行管理。
3、如果沒有專門的軟體進行管理,也應該在用例文件中記錄下每次改動的內容。以 Excel 文件為例,可以有以下內容記錄用例的每次修改:
使用模板,模板必須簡潔,儘量提供預選項,並且提供必要的統計功能。
使用模板可以使得我們能更快捷地編寫測試用例。
模板必須簡潔是指根據團隊需要,儘量只包含必要的欄位。
提供預選項是指可以提供預選項的欄位,儘量提供,這樣我們在編寫用例的時候,直接透過選擇的方式即可填寫對應欄位。比如以下用例模板,用例級別欄位提供了預選項:
提供必要的統計功能,避免二次的人工統計。比如統計各個實際結果值的用例數、已實現自動化的用例數等等。
應該儘量設計通用的測試用例,避免過於細緻的描述。
舉一個簡單的例子說明。比如現在要測試銷售訂單列表的搜尋功能。
其中的一條用例,操作步驟可以這樣寫:
點選銷售訂單圖示,進入銷售訂單列表,點選搜尋框,輸入訂單編號,回車,觀察結果是否正確。
上面這種寫法就是沒有通用性、描述過於細緻的寫法。
如果採用通用的、避免描述過於細緻的寫法,可以這樣寫:
進入單據列表,點選搜尋框,輸入單據編號,回車,觀察結果是否正確。
使用這種寫法,遮蔽具體的單據型別,對執行用例並無影響,但是用例具有通用性。比如下次你要測試採購訂單列表的搜尋功能的時候,這條用例是可以直接複製、不做修改就可以直接使用的。
除了這種情形,還有其他情形。比如跨平臺的用例,做到 Android 和 IOS 平臺可以使用同一條用例。
可以抽象出公共用例,變成可複用的用例模組
比如我們可以抽象出列印功能、上傳圖片等公共用例,在測試具體的單據的相關功能的時候,可以直接引用用例即可,這樣就節省了很多時間。
維護快速迭代 checklist,應對緊急釋出
與其盲目的測試,還不如維護一份 checklist。剛開始可以很簡單,只覆蓋主流程功能。後面可以慢慢加上一些典型問題,每遇到一個典型問題就加進去。
相關文章
- 測試用例最佳實踐
- TestLink測試用例管理工具使用說明
- TestNG測試用例重跑詳解及實踐最佳化
- 從應用看A/B測試——DataTester的最佳實踐
- 慧榮科技針對網傳不實訊息的澄清說明
- 自動化測試的最佳實踐
- 介面壓測實踐-壓力測試常見引數解釋說明
- Hilt 測試最佳實踐 | MAD Skills
- 測試微服務的4個最佳實踐微服務
- Java中的單元測試與整合測試最佳實踐Java
- 測試——水杯的測試用例
- Jest + React 單元測試最佳實踐React
- TDD及單元測試最佳實踐
- 測試自動化中遵循的最佳實踐
- 測試環境使用問題及其最佳化對策實踐
- 舉例說明你對前端工程化的理解前端
- 舉例說明你對前端自動化的理解前端
- 介面自動化測試的最佳工程實踐(ApiTestEngine)API
- 舉例說明你對尾遞迴的理解,有哪些應用場景遞迴
- 測試用例
- 測試面試-測試用例面試
- 測試用例的方法
- 針對mdadm的RAID1失效測試AI
- 手工測試用例與自動化測試用例的區別
- 【黑盒測試】測試用例的常用方法
- 網路對抗 實驗一 逆向及Bof基礎實踐說明
- Jest基於dva框架的單元測試最佳實踐框架
- 阿里雲 VPC 內網效能測試最佳實踐阿里內網
- 測試用例和測試方法
- ES API,使用Kibana的開發工具用例說明API
- Nginx+upstream針對後端伺服器容錯的配置說明Nginx後端伺服器
- 「ReactNaitve」對hooks最佳實踐的探索ReactAIHook
- 【5】測試用例
- 測試用例—教室
- 說說你對單例模式的理解?如何實現?單例模式
- 舉例說明js如何實現繼承?JS繼承
- 舉例說明你對相鄰兄弟選擇器的理解
- 深入理解單元測試:技巧與最佳實踐