VBA基礎教程Day03: 單元格區域操作02
在設計測試用例的過程中,往往會用到很多的方法,協助測試工程師去設計測試用例,提高測試用例設計效率同時也會使設計出來的測試用例覆蓋率更高並且少有遺漏,那麼設計方法有哪些呢?
一、等價類劃分
定義:將測試項的所有值,根據是否等價,劃分成若干個子集,每個子集互不相交,並且所有子集的並集,就是全集。在每一個子集中,選出若干個有代表性的值作為測試用例
舉例:
使用者名稱輸入框(8位數字組成的字元)
第一步:劃分子集
空使用者名稱,1-7位數字,8位數字,9位及以上的數字,非數字
第二步:根據劃分出來的子集,在每個子集中選取一個值,作為測試用例
1.空使用者名稱:“” (無效等價類)
2.1-7位數字:“123” (無效等價類)
3.8位數字:“12345678” (有效等價類)
4.9位及以上的數字:“123456789” (無效等價類)
5.非數字:“abcdefg!” (無效等價類)
根據以上步驟,我們就可以設計出來關於使用者名稱輸入的測試用例。其中,還可以看到,等價類劃分,還可以根據有效和無效等價類先進行的劃分,然後再在無效等價類中再進行進一步的子集劃分。當然,非數字這個子集中,還可以根據字母,中文,特殊符號這三個等價類再進行一次子集的細分,從而在非數字這個子集中,選取出三個值作為測試用例
二、邊界值分析法
定義:在輸入或輸出範圍的邊界上,選取正好等於邊界值,剛剛小於邊界值,剛剛大於邊界值的值,作為測試用例。因為在以往長期的測試工作經驗中,發現大量的錯誤都是發生於邊界值上,而不是發生在輸入輸出範圍內部的值,所以才會有這樣一個邊界值分析法來幫助我們設計測試用例
舉例:
年齡輸入框(1≤X≤200)
根據輸入框的輸入範圍,我們選取的邊界值為:0,1,2,199,200,201 ,作為測試用例。
測試用例可以記為:min-,min,min+,max-,max,max+
注意,邊界值只取到了邊界值,在正常測試過程中,我們還需要取一個不在邊界值範圍的的數字,即在3~198中任意選取一個值作為測試用例
三、錯誤推斷法(經驗法)
這個方法比較特殊,主要是依靠測試工程師以往大量的工作經驗以及直覺來推測程式中可能存在錯誤的方向,針對這些方向編寫測試用例來檢查是否有錯誤。這個方法沒有固定的形式,依靠的是經驗和直覺,很多時候,都會不知不覺運用到測試用例的設計中去
舉例:
手機號輸入框(11位數,多個號段)
根據以往對使用者名稱為手機號的測試經驗,一般都會檢查一下開發對使用者名稱進行校驗的正則表示式
因為手機號段隨著時間的推移,不同運營商會有新增的號段,較早之前的正則表示式不適用於當下手機號段的校驗,其實就是沒有及時更新新增號段,所以導致新增號段使用者要使用時,無法通過校驗
前幾年在測試手機號輸入框的校驗時,當時的校驗正則表示式還是:/^1[3|4|5|7|9][0-9]\d{8}$/,目前手機號段的第二位已經新增了6和8,所以應該更新為:/^1[3|4|5|6|7|8|9][0-9]\d{8}$/
所以根據個人經驗,在手機號校驗時,一般開發都會犯這個錯誤,就會將校驗手機號的正則表示式檢查作為測試用例
四、場景法
定義:通過運用場景來對系統的功能點或業務流程的描述,從而提高測試效果的一種方法。用場景來測試需求是指模擬一些特定場景發生的事情,通過事件來觸發某個動作的發生,觀察事件的最終結果,從而用來發現系統中存在的問題
一般設定三種場景來設計測試用例
1.基本流:是最主要且經過用例最簡單的場景(無任何異常分支,程式從開始直接執行到結束)
2.備選流:一個備選流可能從基本流開始,在某個特定條件下執行,然後重新加入基本流中,也可以起源於另一個備選流,或執行到結束,不再加入到基本流中;(各種錯誤情況的發生導致從基本流走向分支)
3.異常流:在基本或備選業務流程時,因錯誤操作或異常輸入,導致業務沒有正確完成的流程
舉例:
線上購物(使用者進入網站進行購物,選擇商品,進行線上購買)
基本流:進入購物網站>賬號登入>登入成功>選擇商品>提交>付款>生成已付款訂單
備選流:1.進入購物網站>選擇商品>賬號登入>登入成功>提交>付款>生成已付款訂單
2.賬戶餘額不足,充值後付款>生成已付款訂單
其他更多的備選流......
異常流:1.進入購物網站>賬號登入>登入成功>選擇商品>提交>付款時取消付款>生成取消訂單
其他更多的異常流
五、判定表法(策略表、決策表)
定義:通過所有條件樁窮舉出條件項,然後根據條件項,在對應的動作樁得出結果動作項,從而獲得策略表的方法,叫做策略表法
判定表法,是功能測試中最嚴的方法。該方法適用於邏輯判斷複雜的場景,通過窮舉條件獲得結果,再對結果進行優化合並,就會得到一個判斷清晰的判斷表
舉例:
某公司對客戶分類標準如下:
1.客戶訂單金額在1000元以上(包含1000元),信譽好的,訂單設為“優先”
2.是老客戶的,訂單設為“優先”
3.其他都設為“正常”
根據上面的分類標準,設計策略表如下:
因為窮舉了所有條件,所以可以說這個策略是100%正確的,然後再進行優化合並策略表
可以從編號為1,2的列可以看出只要訂單金額≥1000,並且是信譽好的客戶訂單,都設為“優先”,所以就可以將其合併為一條測試用例
可以從編號為3,5,7的列看出,只要是老客戶的訂單,都設為“優先”,所以就可以將其合併為一條測試用例
於是上面的表整理後,就可以得出簡化版的策略表,如下:
這樣,我們就可以得到更清晰的邏輯判斷,也可以更好的協助我們編寫測試用例。而策略表,對於開發人員來說一樣有用。
從上面的表格,開發人員就可以寫出更簡潔的判斷語句。
六、因果圖法
定義:因果圖是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,適用於輸入條件之間有相互制約關係的情況
等價類劃分和邊界值分析法等其他方法,都著重考慮輸入條件是什麼,但是沒有考慮到輸入條件之間的關係和條件組合的情況,這樣雖然已經考慮了各種條件輸入很多可能出錯的情況,但是多個條件組合起來,可能出錯的情況就被忽略了
如果在測試時,必須考慮各種輸入條件的組合情況,那麼這組合數量可能大到完全完成不了測試。因此,就考慮採取一種適合於描述多種條件的組合、相應產生多個動作的形式來進行測試用例的設計,就需要用到因果圖(邏輯模型)
因果圖介紹
以下是4種符號,表示了四種因果關係
1)恆等 ,邏輯關係c表示輸入,e表示輸出
c1=0 → e1=0 , c1=1 → e1=1
2)非,邏輯關係:c1=0 → e1=1 , c1=1 → e1=0
3)或,邏輯關係:有1就輸出1,全0才輸出0。
c1,c2,c3只有要一個是1 → e1=1 , c1,c2,c3均為0 → e1=0
4)與,邏輯關係:全1才輸出1,否則,輸出0
c1,c2,c3均為1 → e1=1 , c1,c2,c3只有要一個是0 → e1=0
使用因果圖法設計測試用例主要有以下步驟:
步驟一:找出所有的原因,原因即輸入條件或輸入條件的等價類
步驟二:找出所有的結果,結果即輸出條件。明確所有輸入條件之間的制約關係以及組合關係
步驟三:明確所有輸出條件之間的制約關係以及組合關係。找出什麼樣的輸入條件組合會產生哪種輸出結果
步驟四:把因果圖轉換成判定表,為判定表的每一列表示的情況設計測試用例。
以上就是六種設計測試用例的方法,還一些其他不常用的方法,這裡就不闡述了,歡迎大家指教~