1. 程式人生 > >論用例健壯性的重要

論用例健壯性的重要

做了 不同 聯想 否則 span 不能 col 等級 use

最近出了2個類似問題,此處寫下,以作為警醒

問題1:

背景:電商類網站,為了增加用戶回流,增加用戶購買力度,做了一個和用戶等級相關活動

需求:用戶等級為g0 -g5,現在有一批代金券有等級領取限制。用戶等級和代金券等級相同時,用戶可領取到這張代金券;否則代金券顯示“等級不符不可領取”。

於是我設計用例時這樣的:

代金券領取等級: 代金券1(領取等級0),g1(領取等級1)

用戶等級:user1(用戶等級go) , user2(用戶等級g1)

即可以實現以下場景:

user1 --> 代金券1 ,等級相同,可以領取

user1 -->代金券2,等級不同,不能領取

user2 --> 代金券1,等級不同,不可領取

user2 -->代金券2,等級相同,可以領取

實際測試時,按上訴用例進行覆蓋是沒問題的,但是在實際測試過程中,我有一個g5的用戶,在使用g5這個用戶進行用戶覆蓋的時候卻出了問題,開發由於xxxx原因在處理g5等級用戶時存在問題

然後我嘗試使用g4的用戶去覆蓋用例沒問題,當時慶幸有這樣一個g5的用戶讓我發現了問題。


問題2:

做接口測試,裏面有很多邏輯判斷

其中一條判斷規則: 必須要有A。A直接從數據庫讀取對應字段

這個A在數據庫的定義:int(11)

我一看int(11),這明顯就指A的個數嘛

設計用例時,針對A,我就設計了兩個數,0和1

實際驗證時,也與預期結果一致。

聯想到上次沒有考慮健壯性,可能存在的問題,針對A用例改成 0,1,2

預期:2應該和1結果保持一致

實際:2和0的結果保持一致

詢問開發後,A這個字段含義:0表示 沒有A,1表示有A(並不是指A的個數)


雖然問題都在測試階段等到驗證並解決,但問題仍值得反思:

1、對於有範圍值的需要按邊界值設計用例,另外還需要考慮用例的健壯性!

2、不要太自以為是!

論用例健壯性的重要