設(shè)計測試用例的超級利器——等價類劃分

有沒有想過這樣一個問題毡惜,即使測試一個很簡單的應(yīng)用程序時弯囊,要用所有可能的輸入進行測試也通常是不可能的潘明,無論使用手動測試還是自動化測試蛋欣。

比如有這樣一個應(yīng)用:

我們有一個應(yīng)用程序寡夹,界面上有兩個字段年份和月份处面,用戶可以輸入年份和和月份去查詢當(dāng)年當(dāng)月的消費明細(xì)。年份的范圍到從2000年到至今菩掏,月份范圍在1到12月魂角。

如果現(xiàn)在是2019年9月,那么所有有效輸入的測試用例個數(shù)就是(2019 - 2000) * 12 + 9 = 237智绸。采取手動測試野揪,執(zhí)行完所有測試用例肯定讓測試工程師測到懷疑人生。

然而除了有效輸入瞧栗,無效輸入也必須考慮在測試范圍內(nèi)斯稳,那么針對這個應(yīng)用,它是無窮盡的迹恐,2020挣惰、2021、2022...你無法窮舉所有輸入。


所以答案就是憎茂,我們應(yīng)該去尋找一把鑰匙——用最少的輸入去覆蓋最全面的測試珍语。為了打開這所大門,一種測試方法被引入唇辨,那就是等價類劃分廊酣。

等價類劃分是最典型的軟件測試技術(shù),它把程序輸入劃分成若干集合赏枚,然后從中選取代表性數(shù)據(jù)作為測試用例亡驰。集合中的一個數(shù)據(jù)相對集合中的其他數(shù)據(jù)對于程序輸出效果都是一樣的,什么意思呢饿幅?拿前面的例子來說凡辱,無論你輸入2000、2001栗恩、2002還是2019透乾,這些數(shù)據(jù)對于程序的效果都是相同的。

等價類劃分分為兩種:有效等價類 和?無效等價類

有效等價類磕秤,顧名思義乳乌,有效等價類的輸入數(shù)據(jù)對于程序的定義說明來說是合理的,比如2000市咆。利用有效等價類可以檢驗程序是否按照產(chǎn)品定義去設(shè)計汉操。

無效等價類,和有效等價類相反蒙兰,其中的輸入數(shù)據(jù)是異常和不合理的磷瘤,比如1999,它可以檢驗程序的健壯性和可靠性搜变。


套路

我們再舉例一個應(yīng)用程序的例子采缚,這是一個我們再熟悉不過的新用戶注冊功能,頁面上需要用戶填寫用戶ID和密碼挠他,用戶ID只能包含字母和數(shù)字扳抽,最長字符大小不超過10,密碼只能包含字母和數(shù)字绩社,長度最小6摔蓝,最大10。

那么我們?nèi)绾瓮ㄟ^等價類劃分去設(shè)計我們的測試用例呢愉耙?

? ? ? ? 1.建立等價類表,為每個等價類規(guī)定一個唯一的編號拌滋。

? ??????2.設(shè)計測試用例朴沿,盡可能覆蓋未被覆蓋的有效等價類,重復(fù)這個步驟,直到所有有效等價類被覆蓋赌渣。

? ??????3.設(shè)計測試用例魏铅,盡可能覆蓋未被覆蓋的無效等價類,重復(fù)這個步驟直到所有無效等價類被覆蓋坚芜。

測試用例

小貼士

等價類確定的原則

? ??????a.輸入條件是布爾類型览芳,那么顯然意見,可以確定只有一個有效等價類和一個無效等價類鸿竖,不是true就是false啦沧竟。

? ??????b.輸入數(shù)據(jù)必須遵守規(guī)則,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)缚忧。

? ??????c.輸入數(shù)據(jù)是一組值(n個)悟泵,并且程序?qū)γ恳粋€輸入值分別處理,可確立n個有效等價類和一個無效等價類闪水。

? ??????d.在已劃分的等價類中糕非,各元素在程序處理中的方式不同,應(yīng)再將該等價類進一步劃分為更小的等價類球榆。

? ??????e.輸入條件規(guī)定了取值范圍朽肥,可確立一個有效等價類和兩個無效等價類。


等價類劃分的好處

? ? ? ? 擁有等價類可以在不影響測試覆蓋率或測試質(zhì)量的情況下大大減少測試用例的數(shù)量持钉。由于測試數(shù)據(jù)集的減少衡招,它有助于減少整個測試執(zhí)行時間。

? ? ? ? 它可以應(yīng)用于所有級別的測試右钾,如單元測試蚁吝、集成測試、系統(tǒng)測試等舀射。

等價類劃分的缺點

????????它不考慮邊界值的條件窘茁。

????????等價類的識別很大程度上依賴于測試人員的專業(yè)知識。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脆烟,一起剝皮案震驚了整個濱河市山林,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌邢羔,老刑警劉巖驼抹,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拜鹤,居然都是意外死亡框冀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門敏簿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來明也,“玉大人宣虾,你說我怎么就攤上這事∥率” “怎么了绣硝?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長撑刺。 經(jīng)常有香客問我鹉胖,道長,這世上最難降的妖魔是什么够傍? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任甫菠,我火速辦了婚禮,結(jié)果婚禮上王带,老公的妹妹穿的比我還像新娘淑蔚。我一直安慰自己,他們只是感情好愕撰,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布刹衫。 她就那樣靜靜地躺著,像睡著了一般搞挣。 火紅的嫁衣襯著肌膚如雪带迟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天囱桨,我揣著相機與錄音仓犬,去河邊找鬼。 笑死舍肠,一個胖子當(dāng)著我的面吹牛搀继,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播翠语,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼叽躯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肌括?” 一聲冷哼從身側(cè)響起点骑,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谍夭,沒想到半個月后黑滴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡紧索,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年袁辈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片珠漂。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吵瞻,死狀恐怖葛菇,靈堂內(nèi)的尸體忽然破棺而出甘磨,到底是詐尸還是另有隱情橡羞,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布济舆,位于F島的核電站卿泽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滋觉。R本人自食惡果不足惜签夭,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望椎侠。 院中可真熱鬧第租,春花似錦、人聲如沸我纪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浅悉。三九已至趟据,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間术健,已是汗流浹背汹碱。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荞估,地道東北人咳促。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像勘伺,于是被迫代替她去往敵國和親跪腹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容