如何高效編寫測試用例?
逛知乎的時候,經常看到無論是剛入職場的新人,還是工作了一段時間的老人,都會對編寫測試用例感到困擾?例如:
固然,編寫一份好的測試用例需要:充分的需求分析能力 + 理論及經驗加持。 但這並不意味著,沒測試經驗、分析能力弱就不能寫好用例,還是有方法可循的。作為混跡測試職場 9 年的老人,給大家分享一些用例編寫的心得,接下來我會從以下幾個方面展開來講:
測試用例概念、作用、內容等介紹
如何編寫測試用例?
微信傳送朋友圈案例分享
一、測試用例介紹
測試用例是為專案需求而編制的一組包含測試輸入、執行條件以及預期結果的文件,以便測試某個程式是否滿足客戶需求。
1、為什麼要寫測試用例?
是測試工作的指導,是軟體測試質量穩定的根本保障,評估測試結果的基準。
有一份用例來指導測試執行,可以在測試人員疲累的時候起到一個牽引作用。
編寫用例的過程中,通過熟悉需求,對系統架構或業務有更深入理解
可避免測試背鍋
2、測試用例模板:每家公司模板可能會有差異性,一般大致包含以下內容
用例編號:唯一性,一般規則:產品名_測試階段(it st uat)_測試項_數字
測試專案:對應一個功能或子功能模組
測試標題:一句話總結當前測試的用意和目的
重要級別:高/中/低
預置條件:需要滿足一些前提條件,否則用例無法執行
測試輸入:需要加工的輸入資訊,跟步驟結合起來一定要具有指導性意義
操作步驟:明確給出每個步驟的描述,執行人員可以根據該步驟完成執行工作
預期結果:根據預期輸出比對實際結果,來判斷被測物件是否符合需求
實際結果:通過測試執行後的實際結果,寫用例時為空。
3、測試用例編寫形式
通過 Excel 編寫,上述給出的模板就是該種形式 ,適用於專案開發時間比較充分的情況下
通過 Xmind 梳理測試點,適用於專案開發時間緊急情況下
專案管理平臺例如禪道上編寫,不常用
二、如何編寫測試用例
大體思路分為三步:
第 1 步:依據需求梳理功能及功能點
第 2 步:通過測試理論方法及經驗,梳理測試點
第 3 步:挖掘隱性需求,覆蓋非功能測試層面
舉例: 微信朋友圈動態傳送
第 1 步,依據需求梳理功能及功能點
簡而言之,就是把你能看得到的功能及功能點梳理出來。公司一般都有產品需求資料,例如需求規格說明書文件、原型圖、UI 設計圖;當沒有任何需求資料情況下,可以通過操作軟體來熟悉業務。像傳送朋友圈,我們可以先功能模組—> 再子功能—> 再到功能需求細節來梳理,注意一些不明確的需求細節需要及時跟產品確認。大致梳理如下:
第 2 步:通過測試理論方法及經驗,梳理測試點
這一步非常重要,依據需求梳理完功能點後,接下來我們需要針對每個功能點拆分整理具體的測試點,這時候我們需要設想使用者操作的所有情況,包含到正常及異常場景。
我們需要同時具備測試理論方法和測試經驗,才能較好地設計出一份全面可靠的測試用例。常見的測試用例設計方法包括:等價類劃分、邊界值分析、判定表、因果圖、錯誤推測法、場景法、正交試驗法、狀態遷移法等。測試經驗需要多個專案測試的積累及沉澱。對於測試新人來說,測試經驗可能趨於 0,這個時候可以先借鑑一些前人的經驗。對於此,我曾經整理過一份資料,很多測試新人用過資料後都覺得對測試用例有了豁然開朗的感覺,知道怎麼去寫用例了。
這份資料分享如下:
注:這份資料我們可以用在任何的軟體產品的分析上面,從本質上來說,任何一款基於使用者角度操作的軟體產品,操作功能無外乎都是對資料做增刪改查,所以當需要對軟體產品進行分析編寫測試用例時,我們可以依據當前功能是增刪改查的哪一個操作,用上面梳理的測試點來套用編寫用例。按增刪改查操作來梳理,分為:
表單測試:涉及到資料提交的頁面,包含新增或刪改資料頁面
搜尋測試:為資料查詢的頁面
刪除測試:為資料刪除的頁面
cookies、session 等測試:使用者操作角度,補充測試
資料庫測試:頁面新增、修改、刪除、查詢業務相關操作,就是對資料庫資料的增改刪查
通過測試理論方法和測試經驗,我們可以得出微信朋友圈的測試點:
編寫為 Excel 文件用例,可為:
第 3 步:挖掘隱性需求,覆蓋非功能測試層面
除了以上這些功能層面的,對於微信移動端產品,還需要考慮到一些特性方面的測試,包括非功能測試層面,如:
三、總結
編寫用例雖然不是那麼簡單的事,但是通過以上,是不是發現還是有方法可循的?不會寫的先模仿著來寫,日積月累,通過專案中測試思維的長期訓練,工作中出現 bug 的經驗總結,相信某一天你會發現編寫測試用例也沒有那麼難!