999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

兩種黑盒測試方法的比較分析

2018-02-25 02:39:06張新焦豪
電子技術(shù)與軟件工程 2018年7期

張新 焦豪

摘要 軟件應(yīng)用于幾乎所有的科學(xué)技術(shù)領(lǐng)域。一款特定軟件的用戶類別取決于他們的認(rèn)可以及軟件的質(zhì)量。軟件開發(fā)人員有責(zé)任確保軟件沒有缺陷,并且可以執(zhí)行所需要的功能。軟件測試是軟件開發(fā)生命周期階段的一項重要工作。各種研究分析表明軟件測試占了整個軟件開發(fā)工作的30%。所以測試對于提高軟件質(zhì)量有至關(guān)重要的作用。軟件測試主要包括單元測試、集成測試和系統(tǒng)測試。單元測試基本有兩種測試方法:黑盒測試和白盒測試。本文分析了黑盒測試方法和相關(guān)問題。

【關(guān)鍵詞】軟件測試 黑盒測試 等價類劃分邊界值分析

1 引言

軟件測試是一項涉及到人類心理學(xué)和經(jīng)濟學(xué)的技術(shù)性工作。一些測試人員對測試的誤解是這樣的:“軟件測試就是證明軟件不存在錯誤的過程”或者:“測試是確保開發(fā)的軟件能夠滿足其所有功能和非功能需求的過程”。雖然這兩個觀點理論上看起來是完美的,但是對于測試,更為合適的定義應(yīng)該是:“測試是為發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”。這個定義包含以下兩點:

(1)這并不是要證明這個軟件是錯誤的;

(2)測試人員在測試之前應(yīng)該假設(shè)程序存在錯誤。

軟件測試也可以被描述為確認(rèn)和驗證軟件或應(yīng)用程序是否符合指導(dǎo)其設(shè)計和開發(fā)的業(yè)務(wù)和技術(shù)功能需求的過程。確認(rèn)和驗證是確保軟件滿足軟件需求規(guī)范文檔中提及的要求并且滿足其預(yù)期功能的過程。它可以被認(rèn)為是確保軟件質(zhì)量的一種方法。

為了分析各種測試方法,首先我們必須知道軟件測試中使用的基本術(shù)語。

測試用例(Test case):測試用例是為了特定的測試場景設(shè)計的一組測試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以確保是否符某個特定的功能需求。以在兩個輸入的整數(shù)中找出最大的程序來示例,然后可以設(shè)計出以下測試用例:

Integer l=2 and Integer 2=4

Integer l=4 and Integer 2=2

Integer l=-3 and Integer 2=-2

Integer l=-2 and Integer 2=0

Integer l=1 and Integer 2=1

測試套件( Test suit):在數(shù)學(xué)上是由所有的測試用例作為元素組成的集合。通過測試套件,將服務(wù)于同一個測試目的或同一運行環(huán)境下的一系列測試用例有機的組合起來。測試套件可能有無數(shù)個測試用例。一個好的測試套件涵蓋了大多數(shù)錯誤,包含最少的測試用例。對于上面提到的計算兩個整數(shù)中最大值的程序,測試套件可以有如下定義:

{(2,4), (4,2), (.3,.2), (.2,0), (1,1))

誤差(Error):誤差是實際結(jié)果和預(yù)期結(jié)果不匹配的程度,它代表了代碼開發(fā)人員所犯的錯誤。錯誤是測試人員發(fā)現(xiàn)的,當(dāng)開發(fā)人員接收這個錯誤時,它就被稱為bug。

故障(Fault):故障是在計算機程序中使程序產(chǎn)生意想不到結(jié)果的不正確的指令、函數(shù)或數(shù)據(jù)解釋。故障會導(dǎo)致錯誤。

程序錯誤(Bug):Bug是代碼塊中產(chǎn)生意外結(jié)果的錯誤。這通常是開發(fā)人員接受的錯誤。

失敗( Failure):失敗是軟件系統(tǒng)無法執(zhí)行其預(yù)期的功能和非功能要求。

缺陷( Defect):缺陷是程序員在編碼或者邏輯中犯的錯誤,它會導(dǎo)致程序產(chǎn)生錯誤或偏差。通常在發(fā)生故障時檢測到缺陷。

2 軟件測試方法

軟件測試工作包括四個階段:

(1)設(shè)計一個適當(dāng)?shù)臏y試套件來執(zhí)行所有的代碼行。

(2)執(zhí)行每個測試用例來查找代碼塊中的錯誤。

(3)通過檢查測試結(jié)果來確定錯誤的來源。

(4)修改程序來修復(fù)Bug。

軟件產(chǎn)品通常要經(jīng)過三個層次的測試:單元測試、集成測試和系統(tǒng)測試。單元測試是指依據(jù)詳細(xì)的設(shè)計描述,對每一個功能相對獨立的程序模塊進(jìn)行測試。單獨的單元測試模塊被組合或集成在一起形成軟件。在此級別的集成模塊上執(zhí)行的測試成為集成測試。集成模塊可以是自下而上、自上而下或者混合的。集成后的軟件應(yīng)具備所有所需求的功能,這可以通過執(zhí)行系統(tǒng)測試來保證。

3 單元測試

我們使用合適的示例程序代碼來分析各種單元測試測試方法。考慮具有以下字段的特定網(wǎng)站的設(shè)置頁面:

姓名:char [50]

性別:char

系統(tǒng)時間:DD/MM/YYYY

可以認(rèn)為這個設(shè)置頁面是軟件的一個單元模塊。因此,在開發(fā)這個模塊之后,我們必須通過執(zhí)行其預(yù)期的功能來確保該單元成功執(zhí)行。首先應(yīng)用單元測試,其中包括黑盒測試和白盒測試。黑盒測試檢查軟件系統(tǒng)的功能方面,而白盒測試驗證軟件系統(tǒng)的邏輯方面。

黑盒測試人員不需要知道內(nèi)部邏輯或程序結(jié)構(gòu),因為內(nèi)部邏輯方面是不被測試人員所熟知的。就像測試人員用黑盒子遮擋了內(nèi)部結(jié)構(gòu),不知道系統(tǒng)組建是如何在盒子內(nèi)部構(gòu)成。在黑盒測試中,測試人員關(guān)注的是軟件的功能而不是軟件怎么開發(fā)出來的。表1列出了黑盒測試和白盒測試策略之間的對比。

我們通過應(yīng)用兩種黑盒測試方法來分析我們的測試模塊:等價類劃分法和邊界值分析法。

等價類劃分法就是把輸入劃為若干部分,從每個部分中選取少量的代表性數(shù)據(jù),來對被測應(yīng)用進(jìn)行測試的黑盒測試方法。測試人員面臨的挑戰(zhàn)是設(shè)計一個最小的測試套件。在這個方法中,整個輸入集被劃分成不同的子集或類。每個類代表一組具有相似特征和規(guī)格的測試輸入。根據(jù)輸入約束條件,每個子集或者多個類可能是有效的也可能是無效的。在等價類劃分技術(shù)中,我們假設(shè)一個類中的所有條件都將以相同的方式處理,所以只需要從每個子集或者分區(qū)類中測試一個條件。如果分區(qū)類中的一個條件有效,我們假設(shè)該分區(qū)中的所有條件都可以工作,如果分區(qū)類中的某個條件不起作用,那么我們假設(shè)該分區(qū)中的任何條件都不起作用。

對于一個只接受兩位整數(shù)的應(yīng)用程序,有效類等價是從10到99的整數(shù)。在這種情況下的無效分區(qū)是十進(jìn)制數(shù)、小于10的整數(shù)、大于99的整數(shù)、非數(shù)字字符等。

可以對注冊頁面字段分析如下。

3.1 姓名

字符集表示一組字母和空格。讓字符集C={A,B,C,D,E,F(xiàn),G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,e g,h,I,j,k,1,m,n,.,p,q,r,s,t,u,v,w,x,y,z,‘)。那么將會有一個有效的等價類接受集合C的所有元素,而補集C是一個無效的等價類別。所以我們可以從兩個分區(qū)中選擇任意一個隨機元素來設(shè)計測試套件。

Test suite={C,4}

其中C是來自有效分區(qū)的元素,而4是來自無效分區(qū)的元素。

3.2 系統(tǒng)時間

系統(tǒng)時間字段的月份可以從1到12取值,但也會有一個有效的分區(qū)和兩個無效的分區(qū)。用“m”表示月份值:

有效類:l

無效類1:m

無效類2:m>12(值大于12)

所以代表每個分區(qū)的3個測試用例組成了最小的測試套件Test suite={-4,6,15)。在基于月份的各種組合中,可以應(yīng)用于相同的日期字段。

3.3 性別

性別有三種可能的輸入。男(M),女(F)或其他(o)。設(shè)G={M,F(xiàn),0)表示有效類,則G表示無效等價類。

大多數(shù)程序開發(fā)人員在編寫條件語句時會在邊界值上犯錯。邊界值分析基于在各子類或分區(qū)之間的邊界處的測試。在這里我們既有有效的邊界,也有無效的邊界。在輸入域邊界出現(xiàn)的錯誤數(shù)量比“中間”多。它在每個子類的邊緣選擇測試用例。測試人員在進(jìn)行邊界值分析的時候應(yīng)該注意兩點準(zhǔn)則:

(1)如果輸入條件指定了m和n之間的值范圍,則測試用例應(yīng)設(shè)計為值m和n以及剛好在m和n之外的值。測試套件={m,n,m-l,n+l}

(2)如果輸入條件指定了若干值,則測試用例應(yīng)設(shè)計為最低和最高的數(shù)字。剛剛超過最低和最高的值也應(yīng)該要測試。

以輸入字段在哪個月作為輸入數(shù)據(jù),有效的輸入應(yīng)該是從1到12的任何整數(shù),因為一年只有12個月。如果用戶輸入數(shù)據(jù)為“20”,那么系統(tǒng)就不應(yīng)該接受。因此這個輸入用例的各個分區(qū)是:

有效分區(qū):從l到12的數(shù)字集合

第一個無效分區(qū):小于1的數(shù)字集合

第二個無效分區(qū):大于12的數(shù)字集合

在上述情況下,在邊界值分析中的邊界值是1和12。我們必須選擇剛好小于最小邊界值的值和剛好大于最大邊界值的值。因此,我們應(yīng)該選擇剛好在l以下、剛好在12以上的數(shù)字以及l(fā)和12。

測試套件={0,1,5,12,13)

4 測試分析

如圖l所示,我們可以用下面的C語言程序分析這個單元測試方法,來驗證系統(tǒng)時間的月份字段。

在上面的案例中,如果我們采用等價劃分測試套件的方法,將會得到以下的測試結(jié)果。見表2。

因此,上述程序代碼完美使用于等價劃分測試套件。現(xiàn)在我們使用邊界值分析測試套件來分析相同的代碼,測試報告如表3所示。

邊界值分析法可以識別出等價類劃分法中無法直接識別的錯誤。

性別字段表示為一組有效的輸入“M”和“F”,在這種情況下,輸入變量代表了一個集合而不是一個取值范圍。在這里邊界值劃分法無法使用,但是可以進(jìn)行等價類劃分。

一個好的測試人員對一個模塊進(jìn)行單元測試應(yīng)該同時遵循等價類劃分和邊界值分析來確保它的可靠性,這兩種黑盒測試方法確保系統(tǒng)滿足其特定功能。

5 結(jié)果

從分析中可以推導(dǎo)出輸入值與測試用例數(shù)量之間的以下關(guān)系。在邊界值分析中,如果軟件有“N”個輸入變量,那么最小測試套件中將會有4N+1個測試用例。這可以通過一個變量的測試輸入示例來證明。那么測試套件可能如下:

Test suit={最小值,最小值-1,最大值,最大值+1}

對于單個的變量輸入,將會有上述四個測試用例。為了設(shè)計一個最小的測試套件,我們應(yīng)該在中等范圍內(nèi)包含一個值,所以最小的測試套件中將會有5個測試用例。如下所示:

最小測試套件={最小值,最小值-1,正常值,最大值,最大值+1}

在等價類劃分中,如果輸入集有“N”個分區(qū),那么在最小測試機中將會有“N”個測試用例。

因此,黑盒測試策略的分析研究表明,邊界值分析比等價類劃分得到的測試用例相對較多。

我們用標(biāo)準(zhǔn)測試指標(biāo)分析了我們的系統(tǒng)時間模塊。

(1)測試用例通過的百分比:該值表示執(zhí)行測試的通過率。

在邊界值分析中,測試用例通過%=(3/3)100=100%

在等價類劃分中,測試用例通過%=(4/5)100=80%

(2)缺陷泄漏:缺陷泄漏是在測試進(jìn)入下一階段之后未發(fā)現(xiàn)的缺陷數(shù)量。

等價類劃分法的缺陷泄漏=1;

邊界值分析法的缺陷泄漏=o。

(3)最小測試套件大小:測試套件中測試用例的數(shù)量。

對于我們的系統(tǒng)時間模塊:

等價類劃分法的最小測試套件大小=3;

邊界值分析大的最小測試套件大小=5。

(4)測試的時間:測試時間是根據(jù)測試套件的大小和覆蓋區(qū)域來估計的。

邊界值分析法的測試用例更多,所用的測試時間也更長。因此邊界值分析法的測試工作相對于等價類劃分法的測試工作更多。

(5)測試中發(fā)現(xiàn)缺陷的成本。

全部工作量=總功能點×每個功能點的權(quán)重

設(shè)定執(zhí)行每個測試用例的工作量為1,

在邊界值分析中:缺陷發(fā)現(xiàn)成本=5/1=5:

在等價類劃分中:缺陷發(fā)現(xiàn)成本=3/0=0。

盡管圖2中的大多數(shù)參數(shù)都在彰顯邊界值分析法的優(yōu)點,但是在有些情況下等效類劃分法比邊界值分析法更為適用。分析研究表明,bug數(shù)量在邊界值分析中有所增加。邊界值分析法中增加的測試用例提高了bug識別率,但是對輸入值的范圍有所限制。因此如果輸入變量是布爾值或者特定值,則采用等價類劃分法。與邊界值分析法相比,等價類劃分法具有更多的缺陷泄漏。結(jié)果如表4所示。

6 結(jié)論

在模塊化編程方法中,黑盒測試起著至關(guān)重要的作用。邊界值分析法所設(shè)計的測試用例只能從其特定的等價類分區(qū)中生成,邊界值分析法是對等價類劃分法進(jìn)行補充的測試用例設(shè)計方法,每種方法都有其優(yōu)點和缺點。雖然邊界值分析法比較費時,但是它的bug識別率也相對較高。兩種測試方法的應(yīng)用提高了軟件的可靠性,同時也提升了軟件質(zhì)量從而使客戶更加的滿意。

參考文獻(xiàn)

[1]B. Beizer, “Software TestingTechniques”.London: InternationalThompson Computer Press,1990.

[2] Glenford J.Myers.軟件測試藝術(shù)(原書第2版)[M].機械工業(yè)出版社,2005.

[3]徐芳,軟件測試技術(shù)[M].北京:機械工業(yè)出版社,2006.

[4]鄭人杰.軟件工程[M].北京:清華大學(xué)出版社,1999.

[5] Ron Patton.軟件測試[M].機械工業(yè)出版社.2006.

主站蜘蛛池模板: 91久久精品国产| 日韩午夜福利在线观看| 国产主播在线一区| 凹凸国产分类在线观看| 国产欧美视频在线| 欧美成人午夜在线全部免费| 日韩人妻无码制服丝袜视频| 亚洲浓毛av| 日韩精品资源| 亚洲熟妇AV日韩熟妇在线| …亚洲 欧洲 另类 春色| 国产高潮流白浆视频| 亚洲无码视频图片| 国产精品第页| 欧美一级特黄aaaaaa在线看片| 视频二区亚洲精品| 国产高清在线丝袜精品一区| 精品欧美日韩国产日漫一区不卡| 国产日韩精品欧美一区灰| 999国产精品永久免费视频精品久久 | 黄色网在线免费观看| AV熟女乱| 搞黄网站免费观看| 国产91视频观看| 亚洲欧美日韩动漫| 97久久精品人人做人人爽| 欧美成人看片一区二区三区| 欧美无专区| 99无码中文字幕视频| 亚洲欧美极品| 欧美亚洲国产精品第一页| 午夜视频日本| 国产日韩AV高潮在线| 亚洲成年人片| a亚洲视频| 狠狠五月天中文字幕| 精品无码人妻一区二区| 国产内射一区亚洲| 国产网站黄| 亚洲VA中文字幕| 91人人妻人人做人人爽男同| 国产欧美在线观看一区| 色综合天天操| 亚洲青涩在线| 亚洲人在线| 久久黄色视频影| 精品撒尿视频一区二区三区| 免费中文字幕在在线不卡| 三上悠亚精品二区在线观看| 欧洲日本亚洲中文字幕| 久久五月视频| 好紧太爽了视频免费无码| 视频二区亚洲精品| 91美女视频在线| 亚洲精品无码专区在线观看 | 日韩高清在线观看不卡一区二区| 亚洲日本精品一区二区| 亚洲综合婷婷激情| 日韩精品成人在线| 国产熟睡乱子伦视频网站| 国产主播喷水| 色噜噜在线观看| 91网红精品在线观看| 亚洲欧美在线综合一区二区三区| 久久久久久国产精品mv| 国产白浆一区二区三区视频在线| 亚洲成a人在线播放www| 久久免费看片| 国产午夜小视频| 成人看片欧美一区二区| 亚洲精品动漫| 99久视频| 国产一二三区视频| 日本精品中文字幕在线不卡| 伊人成人在线视频| 久久久久久久久亚洲精品| 97免费在线观看视频| 国产成人亚洲综合A∨在线播放 | 最新无码专区超级碰碰碰| 亚洲色图欧美激情| 国产亚洲高清视频| 亚洲综合亚洲国产尤物|