1.定義
邊界值分析法就是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法吉捶。通常邊界值分析法是作為對(duì)等價(jià)類劃分法的補(bǔ)充呐舔,這種情況下食呻,其測(cè)試用例來自等價(jià)類的邊界仅胞。?
2.與等價(jià)劃分的區(qū)別
1)邊界值分析不是從某等價(jià)類中隨便挑一個(gè)作為代表,而是使這個(gè)等價(jià)類的每個(gè)邊界都要作為測(cè)試條件。
2)邊界值分析不僅考慮輸入條件舔稀,還要考慮輸出空間產(chǎn)生的測(cè)試情況。
3.邊界值分析方法的考慮
長期的測(cè)試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部婶熬。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例赵颅,可以查出更多的錯(cuò)誤饺谬。使用邊界值分析方法設(shè)計(jì)測(cè)試用例募寨,首先應(yīng)確定邊界情況拔鹰。通常輸入和輸出等價(jià)類的邊界贵涵,就是應(yīng)著重測(cè)試的邊界情況。應(yīng)當(dāng)選取正好等于锣尉,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù)自沧,而不是選取等價(jià)類中的典型值或任意值作為測(cè)試數(shù)據(jù)树瞭。
4.常見的邊界值
1)對(duì)16-bit 的整數(shù)而言 32767 和 -32768 是邊界
2)屏幕上光標(biāo)在最左上、最右下位置
3)報(bào)表的第一行和最后一行
4)數(shù)組元素的第一個(gè)和最后一個(gè)5)循環(huán)的第 0 次孝偎、第 1 次和倒數(shù)第 2 次衣盾、最后一次
5.邊界值分析
1)邊界值分析使用與等價(jià)類劃分法相同的劃分势决,只是邊界值分析假定錯(cuò)誤更多地存在于劃分的邊界上果复,因此在等價(jià)類的邊界上以及兩側(cè)的情況設(shè)計(jì)測(cè)試用例迈窟。例:測(cè)試計(jì)算平方根的函數(shù)--輸入:實(shí)數(shù)--輸出:實(shí)數(shù)--規(guī)格說明:當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候忌栅,返回其正平方根;當(dāng)輸入一個(gè)小于0的數(shù)時(shí),顯示錯(cuò)誤信息"平方根非法-輸入值小于0"并返回0钱烟;庫函數(shù)Print-Line可以用來輸出錯(cuò)誤信息。????????
2)等價(jià)類劃分:I.可以考慮作出如下劃分:a拴袭、輸入 (i)<0 和 (ii)>=0b拥刻、輸出 (a)>=0 和 (b) ErrorII.測(cè)試用例有兩個(gè):a、輸入4般哼,輸出2。對(duì)應(yīng)于 (ii) 和 (a) 漾橙。b楞卡、輸入-10,輸出0和錯(cuò)誤提示淘捡。對(duì)應(yīng)于 (i) 和 (b) 徽惋。
3)邊界值分析:劃分(ii)的邊界為0和最大正實(shí)數(shù);劃分(i)的邊界為最小負(fù)實(shí)數(shù)和0踢京。由此得到以下測(cè)試用例:a宦棺、輸入 {最小負(fù)實(shí)數(shù)}b、輸入 {絕對(duì)值很小的負(fù)數(shù)}c蹈丸、輸入 0d呐芥、輸入 {絕對(duì)值很小的正數(shù)}e、輸入 {最大正實(shí)數(shù)}???
?4)通常情況下荸百,軟件測(cè)試所包含的邊界檢驗(yàn)有幾種類型:數(shù)字滨攻、字符蓝翰、位置女嘲、重量、大小爆雹、速度媒至、方位、尺寸驯绎、空間等谋旦。
5)相應(yīng)地,以上類型的邊界值應(yīng)該在:最大/最小册着、首位/末位甲捏、上/下、最快/最慢司顿、最高/最低、? 最短/最長化漆、 空/滿等情況下钦奋。
6)利用邊界值作為測(cè)試數(shù)據(jù)項(xiàng)邊界值測(cè)試用例的設(shè)計(jì)思路
字符起始-1個(gè)字符/結(jié)束+1個(gè)字符假設(shè)一個(gè)文本輸入?yún)^(qū)域允許輸入1個(gè)到255個(gè) 字符付材,輸入1個(gè)和255個(gè)字符作為有效等價(jià)類;輸入0個(gè)和256個(gè)字符作為無效等價(jià)類厌衔,這幾個(gè)數(shù)值都屬于邊界條件值。
數(shù)值最小值-1/最大值+1假設(shè)某軟件的數(shù)據(jù)輸入域要求輸入5位的數(shù)據(jù)值裸弦,可以使用10000作為最小值作喘、99999作為最大值;然后使用剛好小于5位和大于5位的 數(shù)值來作為邊界條件窖贤。
空間小于空余空間一點(diǎn)/大于滿空間一點(diǎn)例如在用U盤存儲(chǔ)數(shù)據(jù)時(shí)贰锁,使用比剩余磁盤空間大一點(diǎn)(幾KB)的文件作為邊界條件豌熄。
7)內(nèi)部邊界值分析:在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計(jì)而需要考慮的因素锣险,可以從軟件的規(guī)格說明或常識(shí)中得到,也是最終用戶可以很容易發(fā)現(xiàn)問題的芯肤。然而,在測(cè)試用例設(shè)計(jì)過程中锻拘,某些邊界值條件是不需要呈現(xiàn)給用戶的击蹲,或者說用戶是很難注意到的,但同時(shí)確實(shí)屬于檢驗(yàn)范疇內(nèi)的邊界條件芯丧,稱為內(nèi)部邊界值條件或子邊界值條件世曾。內(nèi)部邊界值條件主要有下面幾種:a)數(shù)值的邊界值檢驗(yàn):計(jì)算機(jī)是基于二進(jìn)制進(jìn)行工作的,因此骗露,軟件的任何數(shù)值運(yùn)算都有一定的范圍限制血巍。
? ?6.基于邊界值分析方法選擇測(cè)試用例的原則
1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。例如柿隙,如果程序的規(guī)格說明中規(guī)定:"重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費(fèi)計(jì)算公式為……"衩辟。作為測(cè)試用例波附,我們應(yīng)取10及50,還應(yīng)取10.01,49.99,9.99及50.01等封寞。
2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù),最小個(gè)數(shù),比最小個(gè)數(shù)少一,比最大個(gè)數(shù)多一的數(shù)作為測(cè)試數(shù)據(jù)仅财。比如,一個(gè)輸入文件應(yīng)包括1~255個(gè)記錄谦炒,則測(cè)試用例可取1和255风喇,還應(yīng)取0及256等。
3)將規(guī)則1)和2)應(yīng)用于輸出條件还蹲,即設(shè)計(jì)測(cè)試用例使輸出值達(dá)到邊界值及其左右的值耙考。例如,某程序的規(guī)格說明要求計(jì)算出"每月保險(xiǎn)金扣除額為0至1165.25元"斗遏,其測(cè)試用例可取0.00及1165.24鞋邑、還可取一0.01及1165.26等枚碗。再如一程序?qū)儆谇閳?bào)檢索系統(tǒng),要求每次"最少顯示1條肮雨、最多顯示4條情報(bào)摘要",這時(shí)我們應(yīng)考慮的測(cè)試用例包括1和4陌宿,還應(yīng)包括0和5等。
?4)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例舱污。
5)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例弥虐。
6)分析規(guī)格說明,找出其它可能的邊界條件媚赖。