• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      兩種黑盒測(cè)試方法的比較分析

      2018-02-25 02:39張新焦豪
      電子技術(shù)與軟件工程 2018年7期
      關(guān)鍵詞:軟件測(cè)試

      張新 焦豪

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

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

      1 引言

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

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

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

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

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

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

      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

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

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

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

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

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

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

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

      2 軟件測(cè)試方法

      軟件測(cè)試工作包括四個(gè)階段:

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

      (2)執(zhí)行每個(gè)測(cè)試用例來(lái)查找代碼塊中的錯(cuò)誤。

      (3)通過檢查測(cè)試結(jié)果來(lái)確定錯(cuò)誤的來(lái)源。

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

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

      3 單元測(cè)試

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

      姓名:char [50]

      性別:char

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

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

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

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

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

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

      可以對(duì)注冊(cè)頁(yè)面字段分析如下。

      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,‘)。那么將會(huì)有一個(gè)有效的等價(jià)類接受集合C的所有元素,而補(bǔ)集C是一個(gè)無(wú)效的等價(jià)類別。所以我們可以從兩個(gè)分區(qū)中選擇任意一個(gè)隨機(jī)元素來(lái)設(shè)計(jì)測(cè)試套件。

      Test suite={C,4}

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

      3.2 系統(tǒng)時(shí)間

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

      有效類:l

      無(wú)效類1:m

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

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

      3.3 性別

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

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

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

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

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

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

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

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

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

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

      4 測(cè)試分析

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

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

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

      邊界值分析法可以識(shí)別出等價(jià)類劃分法中無(wú)法直接識(shí)別的錯(cuò)誤。

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

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

      5 結(jié)果

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

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

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

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

      在等價(jià)類劃分中,如果輸入集有“N”個(gè)分區(qū),那么在最小測(cè)試機(jī)中將會(huì)有“N”個(gè)測(cè)試用例。

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

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

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

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

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

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

      等價(jià)類劃分法的缺陷泄漏=1;

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

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

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

      等價(jià)類劃分法的最小測(cè)試套件大小=3;

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

      (4)測(cè)試的時(shí)間:測(cè)試時(shí)間是根據(jù)測(cè)試套件的大小和覆蓋區(qū)域來(lái)估計(jì)的。

      邊界值分析法的測(cè)試用例更多,所用的測(cè)試時(shí)間也更長(zhǎng)。因此邊界值分析法的測(cè)試工作相對(duì)于等價(jià)類劃分法的測(cè)試工作更多。

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

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

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

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

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

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

      6 結(jié)論

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

      參考文獻(xiàn)

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

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

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

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

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

      猜你喜歡
      軟件測(cè)試
      基于OBE的軟件測(cè)試課程教學(xué)改革探索
      基于MBD模型自動(dòng)生成測(cè)試用例的軟件測(cè)試方法
      計(jì)算機(jī)軟件測(cè)試方法的研究
      EXCEL和VBA實(shí)現(xiàn)軟件測(cè)試記錄管理
      關(guān)于軟件測(cè)試技術(shù)應(yīng)用與發(fā)展趨勢(shì)研究
      一種航空機(jī)載軟件測(cè)試項(xiàng)目的進(jìn)度改進(jìn)模型
      軍用軟件測(cè)試文檔生成設(shè)計(jì)與實(shí)現(xiàn)
      軟件測(cè)試工程化模型及應(yīng)用研究
      智能電能表軟件測(cè)試技術(shù)概述
      《軟件測(cè)試》課程教學(xué)策略研究
      钦州市| 沾化县| 汤原县| 房山区| 若羌县| 紫云| 公主岭市| 邓州市| 正宁县| 肥西县| 孝昌县| 波密县| 保亭| 曲周县| 襄汾县| 滁州市| 铜梁县| 永昌县| 泾源县| 汽车| 永宁县| 怀柔区| 平利县| 阳东县| 通河县| 大洼县| 襄汾县| 杭锦后旗| 阿城市| 阳高县| 临城县| 和平区| 克东县| 共和县| 榆中县| 乐至县| 邵阳县| 乡城县| 镇远县| 昌吉市| 镇康县|