如何寫好測試用例
作者 |?曹巧暉
背景
? ? ? 經(jīng)歷過校招或社招的測試同學(xué),都會被問到測試用例的設(shè)計、使用方法,以及用例的重要性。
? ? ? 大概了解過測試行業(yè)或者有一些測試基礎(chǔ)的同學(xué)面試時能很好的回答上來,設(shè)計用例的方法,但是給一個真實(shí)場景需要簡單編寫測試用例的時候,往往就暴露了設(shè)計用例的短板。再進(jìn)階一些的測試同學(xué),會很疑惑,測試用例有什么用呢?每次提測前,把測試用例照著需求文檔抄寫一遍,走個過場?提測后,照著用例點(diǎn)點(diǎn)點(diǎn),執(zhí)行完畢后沒有測出任何bug,達(dá)到了上線狀態(tài)?上線后,測試用例毫無價值,用完棄之,最后線上出現(xiàn)bug,無跡可尋。心里一百個怪寫用例浪費(fèi)時間,沒有實(shí)際價值。
為什么要寫用例?
為什么要寫測試用例?或者說我們寫用例到底有什么用?
1、方便理解需求,覆蓋更多場景
2、有助于評估測試工時
3、便于了解測試數(shù)據(jù)流向
4、把控測試進(jìn)度
5、上線前核心功能回歸
6、提高測試效率,理清測試思路
所以,測試用例很有必要,是測試?yán)斫鈽I(yè)務(wù)的必備能力,測試的立身之本。
那怎么寫好測試用例呢?
設(shè)計測試用例:需求分析是關(guān)鍵、用例設(shè)計是核心、Case結(jié)構(gòu)很重要
用例完整思路:
需求可行性分析-->業(yè)務(wù)流程分析→測試用例設(shè)計→測試用例評審-->維護(hù)/更新測試用例
1、需求可行性分析
? 從需求文檔中,找出待測試軟需求,通過自己的分析、理解,整理成為測試點(diǎn),清楚被測試對象具有哪些功能。
測試需求的特點(diǎn)是:包含需求,具有可測試性。
測試需求應(yīng)該在需求基礎(chǔ)上進(jìn)行歸納、分類或細(xì)分,方便測試用例設(shè)計。
2、業(yè)務(wù)流程分析
軟件測試,不單純是基于功能的黑盒測試,還需要對軟件的內(nèi)部處理邏輯進(jìn)行測試。
為了不遺漏測試點(diǎn),需要清楚的了解產(chǎn)品的業(yè)務(wù)流程。建議在做復(fù)雜的測試用例設(shè)計前,先根據(jù)研發(fā)或產(chǎn)品提供的流程圖,從測試角度對現(xiàn)有流程進(jìn)行補(bǔ)充。業(yè)務(wù)流程圖可以幫助理解需求的邏輯和數(shù)據(jù)流向,從而指導(dǎo)測試用例的設(shè)計。
從業(yè)務(wù)流程上,應(yīng)得到以下信息:
主流程是什么
條件是什么
數(shù)據(jù)流向是什么
關(guān)鍵的判斷條件是什么
3、測試用例設(shè)計
? 用例設(shè)計的類型包括功能測試,邊界測試,異常測試,性能測試,壓力測試等。
在用例設(shè)計中,除了功能測試用例外,應(yīng)盡量考慮邊界、異常、性能的情況,以便發(fā)現(xiàn)更多的隱藏問題。
4、測試用例評審
? 測試用例設(shè)計完成后,為了確認(rèn)測試過程和方法是否正確,是否有遺漏的測試點(diǎn),需要進(jìn)行測試用例的評審,在設(shè)計用例的時候,有不明確的需求,標(biāo)記出來。在測試用例評審時,著重和產(chǎn)品、研發(fā)溝通確認(rèn)。確認(rèn)完后,更新測試用例。
5、測試用例更新
? 測試用例是“活”的,在軟件的生命周期中不斷更新與完善
5.1)遇到線上問題,復(fù)盤當(dāng)時是否有遺漏這個測試點(diǎn),更新測試用例
5.2)核心用例,在每次需求上線后,持續(xù)更新
?
6、測試用例結(jié)構(gòu)
? 傳統(tǒng)測試用例編寫都是通過Excel表格,元素有:測試用例編號、測試用例標(biāo)題、優(yōu)先級、測試模塊、前置條件、測試輸入、測試步驟、預(yù)期結(jié)果。

同上,注冊用例用Xmind格式呈現(xiàn)形式:?

可以發(fā)現(xiàn)測試結(jié)構(gòu)發(fā)生了很大變化,顆粒度也有所不同,相比Excel,xmind更結(jié)構(gòu)化,更適合快速迭代的互聯(lián)網(wǎng)。但是,大項(xiàng)目測試方案中測試點(diǎn)梳理,以及一些回歸場景,更建議用Excel。

日常測試中,xmind測試用例注意點(diǎn)
那么我們?nèi)粘y試中,如果用xmind梳理用例結(jié)構(gòu)注意哪些點(diǎn)呢?
1、不需要復(fù)制粘貼需求文檔
每次review組內(nèi)用例時,會發(fā)現(xiàn)用例都會照搬需求文檔,需求文檔中有預(yù)期結(jié)果1、預(yù)期結(jié)果2等,用例也是結(jié)果1、結(jié)果2等等。我們需要把文檔已有的結(jié)果1、結(jié)果2寫清楚后,再拆解異常結(jié)果3、結(jié)果4……
2、測試用例一定是要可執(zhí)行。
3、測試用例要體現(xiàn)測試目標(biāo),理解需求的預(yù)期結(jié)果是什么
4、優(yōu)先級很重要,核心用例要標(biāo)記
5、測試用例不僅僅是用例,數(shù)據(jù)流向也要體現(xiàn)出來。
?
理解了為什么要設(shè)計測試用例、設(shè)計用例的關(guān)鍵是什么?用xmind結(jié)構(gòu)展示一下測試用例:
第一步,展示干系人信息

?
第二步,梳理接口、數(shù)據(jù)流向

第三步,設(shè)計功能測試用例

第四步,執(zhí)行用例,轉(zhuǎn)轉(zhuǎn)統(tǒng)一用測試用例平臺管理。
截圖來源:zzcase用例平臺

第五步,輸出公用用例、上線前featurelist

最終用例效果呈現(xiàn)

