寫出測試用例就完了?總得會優化吧!

博為峰網校發表於2021-12-06

測試用例編寫完之後,我們在測試過程中往往會發現,有一些用例其實是重複的,造成很多重複工作,那麼我們應當如何去除這些重複用例呢?

尤其使用等價類劃分和邊界值分析編寫用例時,很容易造成用例重複。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~

舉例

下面我們通過一個例子來具體分析一下。

首先選擇一個場景,後臺維護前臺賬號,主要有以下幾個欄位(欄位太多,這裡只列舉三個欄位進行分析)。

賬號:4~8位字母和數字組合

密碼:8~16位字母數字組合

姓名:字母、數字、特殊字元和漢字組合,長度4~20

下面我們對他們的等價類和邊界值進行分析。

賬號

有效等價類:6位數字和字母組合,5位純數字組合,7位純字母組合。

無效等價類:3位字元,9位字元,漢字,空。

邊界值:4位字元,8位字元。

密碼

有效等價類:9位數字和字母組合,10位純數字組合,11位純字母組合。

無效等價類:7位字元,17位字元,漢字,空。

邊界值:8位字元,16位字元。

姓名

有效等價類:字母、數字特殊字元和漢字組合,長度10;純字母,長度11;純數字,長度12;純特殊字元,長度13;純漢字,長度14。

無效等價類:長度3,長度21,空。

邊界值:長度4,長度10。

如果我們只是通過等價類劃分邊界值分析,我們可以來統計一下共有多少條用例——共28條。

但是測試的過程中我們就會發現,有好多重複的,比如說:我們先測試賬號這個輸入框,輸入6位純數字,然後其他兩個輸入框都需要輸入有效等價類。

其實我們一條用例裡,賬號、密碼和姓名是都覆蓋了一條測試用例的,當再測試密碼這個輸入框時,這條用例是重複執行的,那麼我們怎麼去避免這種情況呢?

首先將所有的輸入都列到一列,如下圖

我們用例組合的原則就是,一條用例裡可以包含多條有效等價類,且必須都是有效等價類。

一條用例裡只能包含一條無效等價類,且這條用例裡的有效等價類不能作為驗證條件,比如說:賬號輸入了漢字,密碼和姓名都輸入正確,這個時候提示了賬號輸入錯誤,這條用例是通過的,只能說明無效等價類的這個條件通過了,並不說明這條用例裡的其他兩個有效等價類是通過的。

所以驗證有效等價類時,不能跟無效等價類一起驗證。

接下來我們在上邊的表格裡標註一下哪些等價類可以組合到一起,數字相同的表示可在一條用例裡覆蓋。

我們可以發現,用例1、2、3、4、5都可以在一條用例裡覆蓋多條有效等價類,用例6和7是比其他兩個輸入框多出來的有效等價類。

因為其他兩個輸入框的有效等價類已經覆蓋完了,那麼執行這兩條用例時,可以從其他兩個輸入框任意選取有效等價類來測試,用例8~18都是無效等價類,只能單獨驗證。

這樣分析下來,用例只有18條,比起原先的28條少了10條,這樣我們的用例才能更加精簡,在保證用例全部覆蓋的情況下避免了用例冗餘。

最後: 可以我的個人V:atstudy-js,可以 免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的視訊學習教程免費分享!,其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2846058/,如需轉載,請註明出處,否則將追究法律責任。

相關文章