來源:公司資(zī)訊 | 2021.08.19
等價類差異法
一(yī)、方法簡介
界說: 是把悉數或許的輸入數據,即程序的輸入域差異成若幹部分(fēn)(子集),然後從每一(yī)個子會集選取少量具有代表性的數據作爲查驗用例。該方法是一(yī)種重要的,常用的黑盒查驗用例規劃方法。
差異等價類: 等價類是指某個輸入域的子集結。在該子調會集,各個輸入數據關于道破程序中(zhōng)的過失都是等效的,并合理地假定:查驗某等價類的代表值就等于對這一(yī)類其它值的查驗,因而,可以把悉數輸入數據合理差異爲若幹等價類,在每一(yī)個等價類中(zhōng)取一(yī)個數據作爲查驗的輸入條件就可以用少量代表性的查驗數據取得較好的查驗效果。 等價類差異可有兩種不同的狀況:有用等價類和無效等價類。
有用等價類:指關于程序的标準說明來說是合理的、有意義的輸入數據構成的集結。運用有用等價類可查驗程序是否完成了标準說明中(zhōng)所規則的功用和功用。
無效等價類:與有用等價類的界說恰巧相反。指對程序的标準說明是不合理的或許無意義的輸入數據所構成的集結。關于具體(tǐ)問題,無效等價類至少應有一(yī)個,也或許有多個。
規劃查驗用例時,要一(yī)同考慮這兩種等價類。由于軟件不隻需能接收合理的數據,也要能飽嘗意外(wài)的檢測,這樣的查驗才調确保軟件具有更高的可靠性。
差異等價類的标準:
1、完備查驗、避免冗餘
2、差異等價類重要的是:集結的差異,差異爲互不相交的一(yī)組子集,而子集并是整個集結
3、并是整個集結:完備性
4、子集互不相交,确保一(yī)種方法的無冗餘性
5、同一(yī)類中(zhōng)标識一(yī)個查驗用例,附和等價類中(zhōng)‘往往處理相同,相同處理映射到“相同的實施途徑”
差異等價類的方法:
1:在輸入條件規則了取值規劃或值的個數的狀況下(xià),則可以建立一(yī)個有用等價類和兩個無效等價類。如:輸入值是學生(shēng)效果,規劃0-100;
2:在輸入條件規則了輸入值的集結或許規則了“有必要怎樣”的條件下(xià),可供認一(yī)個有用等價類和一(yī)個無效等價類;
3:在輸入條件是一(yī)個布爾量的狀況下(xià),可供認一(yī)個有用等價類和一(yī)個無效等價類;
4:在規則了人輸入數據的一(yī)組值(假定爲n),而且程序要對每一(yī)個輸入值分(fēn)别處理的狀況下(xià),可供認n個有用等價類和一(yī)個無效等價類;例如:輸入條件說明學曆可爲:專科、本科、碩士、博士四種之一(yī),則分(fēn)别取這四種這四個值作爲四個有用等價類,其他把四種學曆之外(wài)的任何學曆作爲無效等價類。
5:在規則了輸入數據有必要遵從的規則的狀況下(xià),可供認一(yī)個有用等價類和若幹個無效等價類
6:在确知(zhī)已差異的等價類中(zhōng)各元素在程序處理中(zhōng)的方法不同的狀況下(xià),則應該再将該等價類進一(yī)步的差異爲更小(xiǎo)的等價類
規劃查驗用例:
在供認了等價類後,可建立等價類表,列出悉數差異出的等價類輸入條件:有用等價類、無效等價類,然後從差異出的等價類中(zhōng)按以下(xià)三個準則規劃查驗用例:
1:爲每一(yī)個等價類規則一(yī)個僅有的編号
2:規劃一(yī)個新的查驗用例,使其盡或許多地掩蓋沒有被掩蓋地有用等價類,重複這一(yī)步,直到悉數的有用等價類都被掩蓋連續
3:規劃一(yī)個新的查驗用例,使其僅掩蓋一(yī)個沒有被掩蓋的無效等價類,重複這一(yī)步,直到悉數的無效等價類都被掩蓋連續。
二、示例
一(yī)、某程序規則:"輸入三個整數 a 、 b 、 c 分(fēn)别作爲三邊的邊長構成三角形。通過程序斷定所構成的三角形的類型,當此三角形爲一(yī)般三角形、等腰三角形及等邊三角形時,分(fēn)别作核算 … "。用等價類差異方法爲該程序進行查驗用例規劃。(三角形問題的雜(zá)亂之處在于輸入與輸出之間的聯絡比較雜(zá)亂。)
分(fēn)析題目中(zhōng)給出和隐含的對輸入條件的要求:
(1)整數 (2)三個數 (3)非零數 (4)正數
(5)兩端之和大(dà)于第三邊 (6)等腰 (7)等邊
假定 a 、 b 、 c 滿足條件( 1 ) ~ ( 4 ),則輸出下(xià)列四種狀況之一(yī):
1)假定不滿足條件(5),則程序輸出爲 " 非三角形 " 。
2)假定三條邊持平即滿足條件(7),則程序輸出爲 " 等邊三角形 " 。
3)假定隻需兩條邊持平、即滿足條件(6),則程序輸出爲 " 等腰三角形 " 。
4)假定三條邊都不持平,則程序輸出爲 " 一(yī)般三角形 " 。
列出等價類表并編号
掩蓋有用等價類的查驗用例:
a b c 掩蓋等價類号碼
3 4 5 (1)–(7)
4 4 5 (1)–(7),(8)
4 5 5 (1)–(7),(9)
5 4 5 (1)–(7),(10)
4 4 4 (1)–(7),(11)
掩蓋無效等價類的查驗用例:
二、設有一(yī)個檔案管理體(tǐ)系,要求用戶輸入以年月标明的日期。假定日期限定在1990年1月~2049年12月,并規則日期由6位數字字符組成,前4位标下(xià)一(yī)年,後2位标明月。現用等價類差異法規劃查驗用例,來查驗程序的"日期檢查功用"。
1、差異等價類并編号,如下(xià)表
輸入等價類 有用等價類 無效等價類
日期的類型及長度 ①6位數字字符 ②有非數字字符 ③少于6位數字字符 ④多于6位數字字符
年份規劃 ⑤在1990-2049之間 ⑥小(xiǎo)于1990 ⑦大(dà)于2049
月份規劃 ⑧在01-12之間 ⑨等于00 ⑩大(dà)于12
2、規劃查驗用例,以便掩蓋悉數的有用等價類,在表中(zhōng)列出了3個有用等價類,編号分(fēn)别爲①、⑤、⑧,規劃的查驗用例如下(xià):
查驗數據 期望效果 掩蓋的有用等價類
200211 輸入有用 ①、⑤、⑧
3、爲每一(yī)個無效等價類規劃一(yī)個查驗用例,規劃效果如下(xià):
查驗數據 期望效果 掩蓋的無效等價類
95June 無效輸入 ②
20036 無效輸入 ③
2001006 無效輸入 ④
198912 無效輸入 ⑥
200401 無效輸入 ⑦
200100 無效輸入 ⑨
200113 無效輸入 ⑩
三、NextDate 函數包括三個變量:month、 day 和 year ,函數的輸出爲輸入日期後一(yī)天的日期。 例如,輸入爲 2006年3月 7日,則函數的輸出爲 2006年3月8日。要求輸入變量 month 、 day 和 year 均爲整數值,而且滿足下(xià)列條件:① 1≤month≤12 ②1≤day≤31 ③1920≤year≤2050
1、有用等價類:M1={月份:1≤月份≤12} D1={日期:1≤日期≤31} Y1={年:1812≤2012}
2、若條件①-③中(zhōng)任何一(yī)個條件失效,則NextDate函數都會發生(shēng)一(yī)個輸出,指明相應的變量超出取值規劃。其無效等價類爲:
M2={月份:月份<1}
M3={月份:月份>12}
D2={日期:日期<1}
D3={日期:日期>31}
Y2={年:年<1812}
Y3={年:年>2012}
擴展:在等價類查驗傍邊,強指的是多缺陷假定,而弱指的是單缺陷假定,前者标清楚一(yī)個笛卡爾乘積的概念;一(yī)般指的就是正常值,即不需求考慮異常者,而健旺性則剛好相反,即需求考慮異常者。
弱一(yī)般等價類:單缺陷假定,不議論異常區域
強一(yī)般等價類:多缺陷假定,不考慮異常區域
弱健旺等價類:單缺陷假定,要考慮異常區域
健旺旺等價類:多缺陷假定,要考慮異常區域;即一(yī)個全笛卡爾乘積
弱一(yī)般等價類查驗用例
月份 日期 年 預期輸出
6 15 1912 1912年6月16日
強一(yī)般等價類查驗用例同弱一(yī)般等價類查驗用例
注:弱–有單缺陷假定;健旺–考慮了無效值
弱健旺等價類查驗
用例ID 月份 日期 年 預期輸出
WR1 6 15 1912 1912年6月16日
WR2 -1 15 1912 月份不在1~12中(zhōng)
WR3 13 15 1912 月份不在1~12中(zhōng)
WR4 6 -1 1912 日期不在1~31中(zhōng)
WR5 6 32 1912 日期不在1~31中(zhōng)
WR6 6 15 1811 年份不在1812~2012中(zhōng)
WR7 6 15 2013 年份不在1812~2012中(zhōng)
健旺旺等價類查驗
用例ID 月份 日期 年 預期輸出
SR1 -1 15 1912 月份不在1~12中(zhōng)
SR2 6 -1 1912 日期不在1~31中(zhōng)
SR3 6 15 1811 年份不在1812~2012中(zhōng)
SR4 -1 -1 1912 兩個無效一(yī)個有用
SR5 6 -1 1811 兩個無效一(yī)個有用
SR6 -1 15 1811 兩個無效一(yī)個有用
SR7 -1 -1 1811 三個無效
距離(lí)值分(fēn)析方法
一(yī)、方法簡介
界說: 距離(lí)值分(fēn)析法就是對輸入或輸出的距離(lí)值進行查驗的一(yī)種黑盒查驗方法。一(yī)般距離(lí)值分(fēn)析法是作爲對等價類差異法的補償,這種狀況下(xià),其查驗用例來自等價類的距離(lí)。
與等價差異的差異:
1、距離(lí)值分(fēn)析不是從某等價類中(zhōng)随意挑一(yī)個作爲代表,而是使這個等價類的每個距離(lí)都要作爲查驗條件
2、距離(lí)值分(fēn)析不隻考慮輸入條件,還要考慮輸出空間發生(shēng)的查驗狀況
距離(lí)值分(fēn)析方法的考慮:
運用距離(lí)值分(fēn)析方法規劃查驗用例,首先應供認距離(lí)狀況。一(yī)般輸入和輸出等價類的距離(lí),就是應偏重查驗的距離(lí)狀況。應當選取正好等于,剛剛大(dà)于或剛剛小(xiǎo)于距離(lí)的值作爲查驗數據,而不是選取等價類中(zhōng)的典型值或恣意值作爲查驗數據。
常見的距離(lí)值:
對16-bit的整數而言32767和-32768是距離(lí)
屏幕上光标在最左上、右下(xià)方位
報表的第一(yī)行和終究一(yī)行
數組元素的第一(yī)個和終究一(yī)個
循環的第0次,第1次和倒數第2次,終究1次
距離(lí)值分(fēn)析:
1、距離(lí)值分(fēn)析運用與等價類差異法相同的差異,僅僅距離(lí)值分(fēn)析假定過失更多的存在于差異的距離(lí)上,因而在等價類的距離(lí)上以及兩端的狀況規劃查驗用例。
例如:查驗核算平方根的函數
輸入:實數 輸出:實數
标準說明:當輸入一(yī)個0或比0大(dà)的數的時分(fēn),回來其正平方根;當輸入一(yī)個小(xiǎo)于0的數時,閃現過失信息"平方根不合法-輸入值小(xiǎo)于0"并回來0;庫函數Print-Line可以用來輸出過失信息。
2、等價類差異:
I.可以考慮作出如下(xià)差異:
a、輸入 (i)<0 和 (ii)>=0
b、輸出 (a)>=0 和 (b) Error
II.查驗用例有兩個:
a、輸入4,輸出2。對應于 (ii) 和(a) 。
b、輸入-10,輸出0和過失提示。對應于 (i) 和(b) 。
3、距離(lí)值分(fēn)析:差異(ii)的距離(lí)爲0和最大(dà)正實數;差異(i)的距離(lí)爲最小(xiǎo)負實數和0。
由此得到以下(xià)查驗用例:a、輸入{最小(xiǎo)負實數} b、輸入{絕對值很小(xiǎo)的負數} c、輸入0 d、輸入{絕對值很小(xiǎo)的正數} e、輸入{最大(dà)正實數}
4、一(yī)般狀況下(xià),軟件查驗所包括的距離(lí)有幾種類型:數字、字符、方位、重量、巨細、速度、方位、标準、空間等。對應值:最大(dà)/最小(xiǎo)、首位/末位、上/下(xià)、最快/最慢(màn)、最高/最低、 最短/最長、 空/滿等。
5、運用距離(lí)值作爲查驗數據
項 距離(lí)值 查驗用例的規劃思路
字符 開(kāi)端-1個字符/完畢+1個字符 假定一(yī)個文本輸入區域容許輸入1個到255個 字符,輸入1個和255個字符作爲有用等價類;輸入0個和256個字符作爲無效等價類,這幾個數值都歸于距離(lí)條件值。
數據 最小(xiǎo)值-1/最大(dà)值+1 假定某軟件的數據輸入域要求輸入5位的數據值,可以運用10000作爲最小(xiǎo)值、99999作爲最大(dà)值;然後運用剛好小(xiǎo)于5位和大(dà)于5位的 數值來作爲距離(lí)條件。
空間 小(xiǎo)于空餘空間一(yī)點/大(dà)于滿空間一(yī)點 例如在用u盤存儲數據時,運用比剩下(xià)磁盤空間大(dà)一(yī)點(幾kb)的文件作爲距離(lí)條件
6、内部距離(lí)值分(fēn)析;在大(dà)都狀況下(xià),距離(lí)值條件是根據應用程序的功用規劃而需求考慮的要素,可以從軟件的标準說明或常識中(zhōng)得到,也是終究用戶可以很簡單發現問題的。可是,在查驗用例規劃過程中(zhōng),某些距離(lí)值條件是不需求出現給用戶的,或許說用戶是很難注意到的,但一(yī)同确實歸于查驗領域内的距離(lí)條件,稱爲内部距離(lí)值條件或子距離(lí)值條件。
主要有以下(xià)幾種;
a、數值的距離(lí)值查驗:核算機是根據二進制進行作業的,因而,軟件的任何數值運算都有必定的規劃綁縛。
項 規劃或值
位(bit) 0或許1
字節(byte) 0——225
字(word) 0~65535(單字)或 0~4294967295(雙字)
千(K) 1024
兆(M) 1048576
吉(G) 1073741824
b、字符的距離(lí)值查驗:在核算機軟件中(zhōng),字符也是很重要的标明元素,其間ASCII和Unicode是常見的編碼方法。下(xià)表中(zhōng)列出了一(yī)些常用字符對應的ASCII碼值。
字符 ASCII碼值 字符 ASCII碼值
空 (null) 0 A 65
空格 (space) 32 a 97
斜杠 ( / ) 47 Z 90
0 48 z 122
冒号 ( : ) 58 單引号 ( ‘ ) 96
@ 64
7、根據距離(lí)值分(fēn)析方法選擇查驗用例的準則
假定輸入條件規則了值的規劃,則應取剛抵達這個規劃的距離(lí)的值,以及剛剛跨過這個規劃距離(lí)的值作爲查驗輸入數據。
假定輸入條件規則了值的個數,則用最大(dà)個數,最小(xiǎo)個數,比最小(xiǎo)個數少一(yī),比最大(dà)個數多一(yī)的數作爲查驗數據。
将規則1)和2)應用于輸出條件,即規劃查驗用例使輸出值抵達距離(lí)值及其左右的值。
)假定程序的标準說明給出的輸入域或輸出域是有序集結,則應選取集結的第一(yī)個元素和終究一(yī)個元素作爲查驗用例。
假定程序中(zhōng)運用了一(yī)個内部數據結構,則應當選擇這個内部數據結構的距離(lí)上的值作爲查驗用例。
分(fēn)析标準說明,找出其它或許的距離(lí)條件。