- 軟件自動(dòng)化測試實(shí)戰(zhàn)解析:基于Python3編程語言
- 徐西寧編著
- 715字
- 2021-07-23 16:17:30
1.4.4 等價(jià)類劃分
我們已經(jīng)知道,徹底的軟件測試是不現(xiàn)實(shí)的,也是不經(jīng)濟(jì)的,我們只能通過有限的測試來盡可能多地找出潛在的產(chǎn)品缺陷,要做到這一點(diǎn),測試的等價(jià)類劃分是一種可行的思路。
我們可以把所有可能的輸入進(jìn)行歸類劃分,每個(gè)類別中的輸入雖然不一樣,但是從軟件功能的角度看,它們在那個(gè)類別中是“等價(jià)”的,是沒有差別的。我們在每個(gè)類別中挑選一個(gè)代表進(jìn)行這個(gè)類別的測試,如果測試通過,我們可以基本確認(rèn)這一類輸入都可以通過測試,沒有必要在這個(gè)類別中選取更多候選輸入進(jìn)行測試。這個(gè)思路就是測試用例的等價(jià)類劃分(Equivalence partitioning)[2]。
假如,某個(gè)軟件程序的功能是根據(jù)用戶輸入的考試分?jǐn)?shù)來劃分成績等級(jí)的,如表1-2所示。
表1-2 考試分?jǐn)?shù)與成績等級(jí)

在不考慮“半分”的情況下,考試分?jǐn)?shù)有0~100這101個(gè)可能的值,大于100的值是無效值,小于0的值也是無效值。
101、102、200、5000……這些都是無效的考試分?jǐn)?shù)值,我們無法窮舉所有無效的值,但是可以把它們歸于一類,稱為“大于滿分的無效值”。在這個(gè)類別中,我們可以挑選其中一個(gè)值,比如101進(jìn)行測試。如果程序可以正確識(shí)別出這是無效值,我們可以認(rèn)為程序可以正確識(shí)別和處理所有“大于滿分的無效值”。
同理,我們可以用–1或者–888來代表“小于零分的無效值”進(jìn)行測試。
對于成績等級(jí)中的A等級(jí),它包含的分?jǐn)?shù)區(qū)間是一個(gè)有限閉區(qū)間,只有90~100這11個(gè)值。即使可以窮舉所有的可能輸入進(jìn)行測試,我們?nèi)匀粦?yīng)該用等價(jià)類劃分類進(jìn)行測試,從這11個(gè)數(shù)中挑選一個(gè)值(比如95),如果這個(gè)值可以被程序正確識(shí)別為A等級(jí),我們就可以認(rèn)為程序可以正確識(shí)別和處理所有的“A等級(jí)的分?jǐn)?shù)”。
通過等價(jià)類劃分,我們可以把測試用例的數(shù)量大幅減少到一個(gè)可控的范圍,用較少的測試用例覆蓋盡可能多的情況,極大地節(jié)省了成本。
- Oracle WebLogic Server 12c:First Look
- LabVIEW2018中文版 虛擬儀器程序設(shè)計(jì)自學(xué)手冊
- DevOps入門與實(shí)踐
- Learning Laravel 4 Application Development
- Visual FoxPro程序設(shè)計(jì)
- Python忍者秘籍
- Scala程序員面試算法寶典
- Android開發(fā):從0到1 (清華開發(fā)者書庫)
- Nginx Lua開發(fā)實(shí)戰(zhàn)
- Kubernetes進(jìn)階實(shí)戰(zhàn)
- SQL Server 2008 R2數(shù)據(jù)庫技術(shù)及應(yīng)用(第3版)
- Android應(yīng)用開發(fā)深入學(xué)習(xí)實(shí)錄
- Maker基地嘉年華:玩轉(zhuǎn)樂動(dòng)魔盒學(xué)Scratch
- Webpack實(shí)戰(zhàn):入門、進(jìn)階與調(diào)優(yōu)(第2版)
- SQL Server 2014 Development Essentials