轉(zhuǎn): [軟件測(cè)試方法_邊界值分析法]
(http://www.cnblogs.com/whylaughing/p/5821898.html)
目錄:
①邊界值分析法的介紹和概念
②邊界值分析法的原理和思想
③單缺陷假設(shè)和多缺陷假設(shè)
④邊界值測(cè)試數(shù)據(jù)類(lèi)型
⑤內(nèi)部邊界值分析
⑥各類(lèi)邊界值測(cè)試介紹
⑦基于邊界值分析方法選擇測(cè)試用例的原則
⑧邊界值分析法的實(shí)例分析
1、邊界值分析法的介紹和概念
邊界值分析是一種常用的黑盒測(cè)試方法,是對(duì)等價(jià)類(lèi)劃分方法的補(bǔ)充勒魔;所謂邊界值洞渔,是指相對(duì)于輸入等價(jià)類(lèi)和輸出等價(jià)類(lèi)而言遏考,稍高于其最高值或稍低于最低值的一些特定情況脊岳。邊界值分析的步驟包括確定邊界禾锤,選擇測(cè)試用例兩個(gè)步驟包个。
根據(jù)大量的測(cè)試統(tǒng)計(jì)數(shù)據(jù)刷允,很多錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入/輸出范圍的中間區(qū)域碧囊。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例树灶,可以查出更多的錯(cuò)誤。所以糯而,邊界值分析法是一種很實(shí)用的黑盒測(cè)試用例方法天通,它具有很強(qiáng)的發(fā)現(xiàn)故障缺陷能力。
2熄驼、邊界值分析法原理和思想
2.1邊界值分析法的基本原理
錯(cuò)誤更可能出現(xiàn)在輸入變量的極值附近像寒。失效極少由兩個(gè)(或多個(gè))缺陷的同時(shí)發(fā)生引起的。
2.2邊界值分析法的基本思想
選取正好等于瓜贾,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù)萝映,而不是選取等價(jià)類(lèi)中的典型值或任意值作為測(cè)試數(shù)據(jù)。
表示方法:最小值min阐虚,略高于最小值min+序臂,正常值nom,略低于最大值max-,最大值max
3奥秆、單缺陷假設(shè)和多缺陷假設(shè)
單缺陷假設(shè)是邊界值分析的關(guān)鍵假設(shè)逊彭。單缺陷假設(shè)指“失效極少是由兩個(gè)或兩個(gè)以上的缺陷同時(shí)發(fā)生引起的”。在邊界值分析中构订,單缺陷假設(shè)即選取測(cè)試用例時(shí)僅僅使得一個(gè)變量取極值侮叮,其他變量均取正常值。
多缺陷假設(shè)則是指“失效是由兩個(gè)或兩個(gè)以上缺陷同時(shí)作用引起的”悼瘾,要求在選取測(cè)試用例時(shí)同時(shí)讓多個(gè)變量取極值囊榜。
4、邊界值測(cè)試數(shù)據(jù)類(lèi)型
類(lèi)型包括:數(shù)值亥宿、速度卸勺、字符、地址烫扼、位置曙求、尺寸、數(shù)量映企、空間……
以上類(lèi)型的邊界值應(yīng)該在:最大/最小悟狱、首位/末位、上/下堰氓、最快/最慢挤渐、最高/最低、 最短/最長(zhǎng)双絮、 空/滿(mǎn)等情況下用邊界值作為測(cè)試數(shù)據(jù)
5挣菲、內(nèi)部邊界值分析
在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計(jì)而需要考慮的因素掷邦,可以從軟件的規(guī)格說(shuō)明或常識(shí)中得到白胀,也是最終用戶(hù)可以很容易發(fā)現(xiàn)問(wèn)題的。然而抚岗,在測(cè)試用例設(shè)計(jì)過(guò)程中或杠,某些邊界值條件是不需要呈現(xiàn)給用戶(hù)的,或者說(shuō)用戶(hù)是很難注意到的宣蔚,但同時(shí)確實(shí)屬于檢驗(yàn)范疇內(nèi)的邊界條件向抢,稱(chēng)為內(nèi)部邊界值條件或子邊界值條件。
內(nèi)部邊界值條件主要有下面幾種:
51胚委、數(shù)值的邊界值檢驗(yàn):計(jì)算機(jī)是基于二進(jìn)制進(jìn)行工作的挟鸠,因此,軟件的任何數(shù)值運(yùn)算都有一定的范圍限制亩冬。
5.2字符的邊界值檢驗(yàn):在計(jì)算機(jī)軟件中艘希,字符也是很重要的表示元素硼身,其中ASCII和Unicode是常見(jiàn)的編碼方式。如下列出了一些常用字符對(duì)應(yīng)的ASCII碼值覆享。
5.3其它邊界值檢驗(yàn):在不同的行業(yè)應(yīng)用領(lǐng)域佳遂,依據(jù)硬件和軟件的標(biāo)準(zhǔn)不同而具有各自特定的邊界值。如下列出部分手機(jī)相關(guān)的邊界值
6撒顿、邊界值測(cè)試介紹
6.1基本邊界值測(cè)試
有n個(gè)輸入變量丑罪,設(shè)計(jì)測(cè)試用例使得一個(gè)變量在數(shù)據(jù)有效區(qū)內(nèi)取最大值、略小于最大值凤壁、正常值吩屹、略大于最小值和最小值。如下圖所示,兩個(gè)變量X1,X2拧抖。它們的有效取值區(qū)間分別為[c,d],[a,b]煤搜。
對(duì)于有n個(gè)輸入變量的程序,基本邊界值分析的測(cè)試用例個(gè)數(shù)為4n+1徙鱼。
邊界值測(cè)試分析采用了可靠性理論的單缺陷假設(shè)宅楞。
優(yōu)點(diǎn):簡(jiǎn)便易行针姿;生成測(cè)試數(shù)據(jù)的成本很低
局限性:測(cè)試用例不充分袱吆;不能發(fā)現(xiàn)測(cè)試變量之間的依賴(lài)關(guān)系;不考慮含義和性質(zhì)距淫;
結(jié)論:只能作為初步測(cè)試用例使用
6.2健壯性測(cè)試
健壯性是指在異常情況下绞绒,軟件還能正常運(yùn)行的能力涨颜。健壯性考慮的主要部分是預(yù)期輸出惕鼓,而不是輸入。健壯性測(cè)試是邊界值分析的一種簡(jiǎn)單擴(kuò)展扫俺。除了變量的5 個(gè)邊界分析取值還要考慮略超過(guò)最大值(max)和略小于最小值(min)時(shí)的情況彤枢。健壯性測(cè)試的最大價(jià)值在于觀察處理異常情況狰晚,它是檢測(cè)軟件系統(tǒng)容錯(cuò)性的重要手段。如下圖所示缴啡。
PS:軟件容錯(cuò)性的度量:從非法輸入中恢復(fù)壁晒;健壯性有兩層含義:容錯(cuò)能力和恢復(fù)能力
對(duì)于有n個(gè)輸入變量的程序,健壯性測(cè)試的測(cè)試用例個(gè)數(shù)為6n+1业栅。
6.3最壞情況測(cè)試
最壞情況測(cè)試拒絕單缺陷假設(shè)秒咐,它關(guān)心的是當(dāng)多個(gè)變量取極值時(shí)出現(xiàn)的情況。最壞情況測(cè)試中碘裕,對(duì)每一個(gè)輸入變量首先進(jìn)行包含最小值携取、略高于最小值、正常值帮孔、略低于最大值雷滋、最大值等5個(gè)元素集合的測(cè)試,然后對(duì)這些集合進(jìn)行笛卡爾積計(jì)算,以生成測(cè)試用例惊豺。最壞情況測(cè)試將意味著更大工作量燎孟。如下圖所示。
對(duì)于有n個(gè)輸入變量的程序尸昧,最壞情況測(cè)試的測(cè)試用例個(gè)數(shù)為5^n揩页。
最壞情況與基本邊界值分析的比較
- 基本邊界值分析測(cè)試用例是最壞情況測(cè)試用例的真子集
- 最壞情況測(cè)試顯然更徹底
- 最壞情況測(cè)試工作量大得多,變量函數(shù)的最壞情況測(cè)試會(huì)產(chǎn)生5的n次方個(gè)測(cè)試用例烹俗,邊界值分析只產(chǎn)生4n+1個(gè)測(cè)試用例
6.4健壯性最壞情況測(cè)試
健壯最壞情況假設(shè)對(duì)每一個(gè)變量首先進(jìn)行最小值爆侣、略小于最小值的值、略高于最小值的值幢妄、正常值兔仰、最大值、略高于最大值的值蕉鸳、略低于最大值的值等7個(gè)元素的集合乎赴。然后對(duì)這些集合進(jìn)行笛卡爾積運(yùn)算,以生成測(cè)試用例潮尝。如下圖所示榕吼。
對(duì)于有n個(gè)輸入變量的程序,健壯最壞情況測(cè)試的測(cè)試用例個(gè)數(shù)為7^n勉失。
6.5特殊值測(cè)試
- 邊界值分析假定n個(gè)變量是互相獨(dú)立的羹蚣,沒(méi)有考慮這些變量之間的互相依賴(lài)關(guān)系;
- 特殊值測(cè)試使用領(lǐng)域知識(shí)乱凿、使用類(lèi)似程序的經(jīng)驗(yàn)開(kāi)發(fā)用例的特殊值顽素。
- 特點(diǎn):最直觀、最不一致徒蟆、具有高度主觀性
- 特殊值測(cè)試特別依賴(lài)測(cè)試人員的能力
- 雖然特殊值測(cè)試是高度主觀性胁出,但是能更有效地發(fā)現(xiàn)問(wèn)題
例如:2月28日、2月29日
6.6隨機(jī)測(cè)試
- 隨機(jī)測(cè)試的基本思想
不是永遠(yuǎn)選取有界變量的最小值段审、略高于最小值全蝶、正常值、略低于最大值和最大值戚哎,而是使用隨機(jī)數(shù)生成器選出測(cè)試用例裸诽。
- 隨機(jī)測(cè)試的一種實(shí)現(xiàn)方法
有界變量a≤X≤b值的一個(gè)VisualBasic應(yīng)用程序生成的X,滿(mǎn)足下式:
X=Int(b-a+1)*Rnd+a
函數(shù)Int返回浮點(diǎn)數(shù)的整數(shù)部分
函數(shù)Rnd生成區(qū)間[0,1]內(nèi)的隨機(jī)數(shù)
7型凳、基于邊界值分析方法選擇測(cè)試用例的原則
1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)丈冬。
例如,如果程序的規(guī)格說(shuō)明中規(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ī)格說(shuō)明要求計(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ī)格說(shuō)明給出的輸入域或輸出域是有序集合,則應(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ī)格說(shuō)明,找出其它可能的邊界條件悠鞍。
8对室、邊界值分析法實(shí)例分析
現(xiàn)有一個(gè)學(xué)生標(biāo)準(zhǔn)化考試批閱試卷,產(chǎn)生成績(jī)報(bào)告的程序模燥。其規(guī)格說(shuō)明如下:程序的輸入文件由一些有80個(gè)字符的記錄組成,如右圖所示,所有記錄分為3組:
標(biāo)題:這一組只有一個(gè)記錄掩宜,其內(nèi)容為輸出成績(jī)報(bào)告的名字蔫骂。
試卷各題標(biāo)準(zhǔn)答案記錄:每個(gè)記錄均在第80個(gè)字符處標(biāo)以數(shù)字"2"。該組的第一個(gè)記錄的第1至第3個(gè)字符為題目編號(hào)(取值為1一999)牺汤。第10至第59個(gè)字符給出第1至第50題的答案(每個(gè)合法字符表示一個(gè)答案)辽旋。該組的第2,第3……個(gè)記錄相應(yīng)為第51至第100檐迟,第101至第150补胚,…題的答案。
每個(gè)學(xué)生的答卷描述:該組中每個(gè)記錄的第80個(gè)字符均為數(shù)字"3"追迟。每個(gè)學(xué)生的答卷在若干個(gè)記錄中給出溶其。如甲的首記錄第1至第9字符給出學(xué)生姓名及學(xué)號(hào),第10至第59字符列出的是甲所做的第1至第50題的答案敦间。若試題數(shù)超過(guò)50瓶逃,則第2束铭,第3……紀(jì)錄分別給出他的第51至第100,第101至第150……題的解答厢绝。然后是學(xué)生乙的答卷記錄契沫。
學(xué)生人數(shù)不超過(guò)200,試題數(shù)不超過(guò)999昔汉。
程序的輸出有4個(gè)報(bào)告:
a)按學(xué)號(hào)排列的成績(jī)單懈万,列出每個(gè)學(xué)生的成績(jī)、名次靶病。
b)按學(xué)生成績(jī)排序的成績(jī)單钞速。
c)平均分?jǐn)?shù)及標(biāo)準(zhǔn)偏差的報(bào)告。
d)試題分析報(bào)告嫡秕。按試題號(hào)排序渴语,列出各題學(xué)生答對(duì)的百分比。
分別考慮輸入條件和輸出條件昆咽,以及邊界條件驾凶。給出右表所示的輸入條件及相應(yīng)的測(cè)試用例。
Best Regards掷酗,
感謝作者调违!
出處: https://www.cnblogs.com/whylaughing/p/5821898.html