登錄

黑盒測(cè)試

百科 > 軟件 > 黑盒測(cè)試

1.什么是黑盒測(cè)試

  黑盒測(cè)試又稱(chēng)為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試或基于需求規(guī)格說(shuō)明的測(cè)試,是一種常用的測(cè)試方法。黑盒測(cè)試是已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能符合要求。在測(cè)試中,把程序看作一個(gè)不能打開(kāi)的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,而不考慮實(shí)現(xiàn)功能的方法、途徑,程序是否能適當(dāng)?shù)亟邮蛰斎藬?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu)。主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。[1]

2.黑盒測(cè)試的功能[1]

  黑盒測(cè)試法主要用于測(cè)試軟件的功能需求,通過(guò)測(cè)試可以發(fā)現(xiàn)下列錯(cuò)誤:

  是否有不正確或遺漏的功能:在接口上。輸入是否能正確的接受:能否輸出正確的結(jié)果;是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問(wèn)錯(cuò)誤:性能上是否能夠滿(mǎn)足要求;是否有初始化或終止性錯(cuò)誤。

3.黑盒測(cè)試的方法[2]

  目前常用的比較成熟的黑盒測(cè)試的方法主要有:等價(jià)類(lèi)劃分法、邊界值分析法、因果圖法和錯(cuò)誤推測(cè)法。下面對(duì)這幾種方法加以介紹并指出其優(yōu)缺點(diǎn)。

  (一)等價(jià)類(lèi)劃分法

  等價(jià)類(lèi)劃分法是一種典型的、重要的黑盒測(cè)試方法,它將程序所有可能的輸入數(shù)據(jù)劃分為若干個(gè)等價(jià)類(lèi)。然后從每個(gè)部分中選取具有代表性的數(shù)據(jù)當(dāng)做測(cè)試用例。測(cè)試用例由有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)的代表數(shù)據(jù)組成,從而保證測(cè)試用例具有完整性和代表性。

  使用該方法設(shè)計(jì)測(cè)試用例主要有兩個(gè)步驟:(1)確定等價(jià)類(lèi);(2)生成測(cè)試用例。

  1.確定等價(jià)類(lèi)

  等價(jià)類(lèi)是指被測(cè)軟件的一個(gè)輸入數(shù)據(jù)的集合,該集合中的任一元素對(duì)于揭露被測(cè)程序中的錯(cuò)誤而言是等價(jià)的,即若該集合中的一個(gè)元素測(cè)試程序發(fā)現(xiàn)不了某類(lèi)功能上明顯的錯(cuò)誤,那么其它元素測(cè)試該程序也發(fā)現(xiàn)不了這種錯(cuò)誤。

  確定等價(jià)類(lèi)是將每一個(gè)輸入條件劃分為有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)。

  有效等價(jià)類(lèi)指程序規(guī)格說(shuō)明書(shū)中規(guī)定的、合理的、有意義的輸入數(shù)據(jù)。通過(guò)測(cè)試有效等價(jià)類(lèi)中的數(shù)據(jù)可以測(cè)試被測(cè)軟件是否實(shí)現(xiàn)了規(guī)格說(shuō)明書(shū)中預(yù)先規(guī)定的功能和性能。無(wú)效等價(jià)類(lèi)是有效等價(jià)類(lèi)的補(bǔ)集,指軟件規(guī)格說(shuō)明書(shū)中沒(méi)有規(guī)定的、沒(méi)有意義的、不合理的輸入數(shù)據(jù)集合。

  2.生成測(cè)試用例

 ?、贋槊恳粋€(gè)等價(jià)類(lèi)設(shè)置一個(gè)唯一的編號(hào)。

 ?、谠O(shè)計(jì)新的測(cè)試用例,盡可能多地覆蓋那些尚未被覆蓋的有效等價(jià)類(lèi),直到所有的有效等價(jià)類(lèi)都被測(cè)試用例所覆蓋(包含進(jìn)去)。

 ?、墼O(shè)計(jì)新的測(cè)試用例,覆蓋一個(gè)僅一個(gè)尚未被覆蓋的無(wú)效等價(jià)類(lèi),直到所有的無(wú)效等價(jià)類(lèi)都被測(cè)試用例所覆蓋。

  (二)邊界值分析法

  邊界值分析法是對(duì)程序輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。實(shí)際的測(cè)試工作證明,考慮了邊界條件的測(cè)試用例比那些沒(méi)有考慮邊界條件的測(cè)試用例具有更高的測(cè)試回報(bào)率。這里所說(shuō)的邊界條件,是指輸入和輸入等價(jià)類(lèi)中那些恰好處于邊界、或超過(guò)邊界、或在邊界以下的狀態(tài)。

  利用邊界值分析法設(shè)計(jì)測(cè)試用例的原則

  1.如果輸入條件規(guī)定了值的范圍,那么應(yīng)針對(duì)范圍的邊界設(shè)計(jì)有效的等價(jià)類(lèi)測(cè)試用例,針對(duì)剛剛越界的情況設(shè)計(jì)無(wú)效等價(jià)類(lèi)輸入測(cè)試用例。

  2.如果輸入條件規(guī)定了輸入值的數(shù)量(包括個(gè)數(shù)的多少,時(shí)間的長(zhǎng)短),則應(yīng)對(duì)該數(shù)量的最大值、最小值及比最大值小一、最小值大一的情況分別設(shè)計(jì)有效的輸入測(cè)試用例。

  3.如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)該內(nèi)部數(shù)據(jù)機(jī)構(gòu)的邊界值設(shè)計(jì)測(cè)試用例。

  4.如果程序的規(guī)格說(shuō)明給出的輸入域或輸出域是有序集合,則應(yīng)該取集合的第一個(gè)元素和最后一個(gè)元素設(shè)計(jì)測(cè)試用例。

  (三)因果圖法

  因果圖法也是較常用的一種黑盒測(cè)試方法,是一種簡(jiǎn)化了的邏輯圖。因果圖能直觀地表明輸入條件和輸出動(dòng)作之間的因果關(guān)系,能幫助測(cè)試人員把注意力集中到與程序功能有關(guān)的輸入組合上。

  因果圖法是一種適合于描述對(duì)于多種輸入條件組合的測(cè)試方法,根據(jù)輸入條件的組合、約束關(guān)系和輸出條件的因果關(guān)系,分析輸入條件的各種組合情況,從而設(shè)計(jì)測(cè)試用例的方法,它適合于檢查程序輸入條件的各種組合情況。

  利用因果圖法設(shè)計(jì)測(cè)試用例的步驟

  1.將規(guī)格說(shuō)明分解為可執(zhí)行的片段。該步驟必不可少,因?yàn)橐蚬麍D不善于處理較大的規(guī)格說(shuō)明。

  2.分析并確定可執(zhí)行片段中哪些是原因,哪些是結(jié)果。原因是指輸入條件或者輸入條件的等價(jià)類(lèi),而結(jié)果指輸出條件。

  3.為每一個(gè)原因和結(jié)果賦予唯一的標(biāo)號(hào),并根據(jù)規(guī)格說(shuō)明書(shū)中的描述,畫(huà)出因果圖。

  4.通過(guò)仔細(xì)地跟蹤圖中的狀態(tài)變化情況,將因果圖轉(zhuǎn)換成一個(gè)有限項(xiàng)的判定表。表中的每一列代表一個(gè)測(cè)試用例。

  (四)錯(cuò)誤推測(cè)法

  錯(cuò)誤推測(cè)法是基于以往的經(jīng)驗(yàn)和直覺(jué),參照以往的軟件系統(tǒng)出現(xiàn)的錯(cuò)誤,推測(cè)當(dāng)前被測(cè)程序中可能存在的缺陷和錯(cuò)誤,有針對(duì)性地設(shè)計(jì)測(cè)試用例。

  用錯(cuò)誤推測(cè)法設(shè)計(jì)測(cè)試用例的基本思想是:列舉出程序中可能犯出現(xiàn)的錯(cuò)誤或容易發(fā)生錯(cuò)誤的特殊情況的清單,然后根據(jù)清單和已經(jīng)設(shè)計(jì)好的測(cè)試用例來(lái)編寫(xiě)特定的測(cè)試用例。例如,程序中出現(xiàn)的輸入數(shù)據(jù)為“0”或者字符為空就是一種錯(cuò)誤易發(fā)情況;在出現(xiàn)輸入或輸出的數(shù)量不定的地方,數(shù)量為“沒(méi)有”和“一個(gè)”也是錯(cuò)誤易發(fā)情況。特別需要注意的是,在閱讀規(guī)格說(shuō)明時(shí)聯(lián)系程序員可能做的假設(shè)來(lái)確定測(cè)試用例,測(cè)試人員要站在用戶(hù)的角度來(lái)考慮輸入信息,而不必去管這些信息對(duì)于被測(cè)程序是合理還是不合理的輸入。

4.黑盒測(cè)試方法的比較[2]

  (一)等價(jià)類(lèi)劃分法

  核心:“分類(lèi)”及代表值

  優(yōu)點(diǎn):通過(guò)把輸入數(shù)據(jù)和輸出數(shù)據(jù)進(jìn)行分類(lèi),選用分類(lèi)中的代表值,在保證了測(cè)試覆蓋的情況下大大減少了測(cè)試用例的數(shù)量,使測(cè)試工作變得簡(jiǎn)單高效。

  缺陷:若無(wú)清晰的需求分類(lèi),可能造成覆蓋泄露。

  (二)邊界值分析法

  核心:邊界值和邊界兩邊的鄰值

  優(yōu)點(diǎn):大量的程序錯(cuò)誤往往發(fā)現(xiàn)在輸入的邊界上,考慮了邊界值的測(cè)試用例能更高效的發(fā)現(xiàn)程序中的錯(cuò)誤和缺陷。

  缺陷:此方法的目的性過(guò)強(qiáng),導(dǎo)致其注定只能完成測(cè)試的一部分,單獨(dú)使用時(shí),整體覆蓋率得不到保證。

  (三)因果圖法

  核心:測(cè)試元素邏輯關(guān)系圖,即因果圖

  優(yōu)點(diǎn):該方法擅于處理邏輯事務(wù)的測(cè)試目標(biāo),協(xié)助用例設(shè)計(jì)人員搭建用例整體框架,實(shí)現(xiàn)從上至下的用例設(shè)計(jì)理念。缺陷:適用范圍有限制,需結(jié)合其他方法才能得到最終用例

  (四)錯(cuò)誤推測(cè)法

  核心:測(cè)試人員的經(jīng)驗(yàn)和敏銳性

  優(yōu)點(diǎn):測(cè)驗(yàn)人員依據(jù)自己已有的測(cè)試經(jīng)驗(yàn),針對(duì)現(xiàn)在被測(cè)軟件,設(shè)計(jì)有針對(duì)性的測(cè)試用例,能夠發(fā)現(xiàn)系統(tǒng)隱蔽的不易被發(fā)現(xiàn)的潛在錯(cuò)誤和缺陷。

  缺陷:該方法依賴(lài)于測(cè)試人員的測(cè)試經(jīng)驗(yàn)和測(cè)試的敏銳嗅覺(jué),沒(méi)有通用的可以遵循的規(guī)則。

評(píng)論  |   0條評(píng)論