等價類劃分的目的就是為了在有限的測試資源的情況下,用少量有代表性的數據得到比較好的測試效果。有有效等價類盒無效等價類。有效等價類中的數據代表的是一組符合需求文檔的正確的有意義數據。無效等價類則正相反。我們來看幾個例子來理解怎樣劃分等價類(注意我不會用書中的例子,而是舉實際我們遇到的一些軟件或者網頁上的例子)
a) 一個取值范圍的情況 (1個有效等價,2個無效等價)
大家看到密碼輸入框的限制是密碼長度>=4。但是其實還是有個隱含的條件。也就是密碼字段在數據庫中的限制,當然可以用varchar,但是一般用固定長的字符類型的,比如20。所以有效等價類:密碼長度大于等于4小于等于20。無效等價類密碼長度小于4或者大于20。所以我們從有效等價類中挑選長度為4的密碼形成一個test case。從無效等價類中挑選3,21作為2個test case。(注:也許大家想加入20這個case,但是這個是邊界值分析考慮的事情了)
b) 布爾型取值(1個有效等價,1個無效等價)
對于驗證碼我們很熟悉了,其實是一種布爾型取值。True或者False。這里就是一個有效等價類和一個無效等價類。4828和4827分別作為test case
c) 獨立的N種取值(n個有效等價,1個無效等價)
這個是windows中Notepad的選擇字體的對話框,其中Font style?梢赃x擇Regular, Italic, Bold, Bold Italic。注意他們可能都是獨立的。(注意我這里用獨立是因為沒有需求文檔,我不清楚bold Italic是否是獨立的,暫且算作獨立)。那么有效等價類是4個,無效等價類是1個,既是非這些里面的取值。
d)等價類的劃分可能是漸進的。
比如初一看兩個1個有效等價類既是有效的email和1個無效等價類一個無效的email。但是如果有更多的要求。比如注冊過的email是不允許的,那么無效等價類變為2個。
文章來源于領測軟件測試網 http://www.kjueaiud.com/