• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    軟件測試之黑白盒策略的應(yīng)用

    2016-12-31 12:56:25呂宣姣
    現(xiàn)代計算機 2016年9期
    關(guān)鍵詞:軟件測試缺陷

    呂宣姣

    (中山大學(xué)南方學(xué)院,廣州 510970)

    ?

    軟件測試之黑白盒策略的應(yīng)用

    呂宣姣

    (中山大學(xué)南方學(xué)院,廣州510970)

    摘要:軟件測試是試圖發(fā)現(xiàn)程序中錯誤的破壞性出過程,黑盒測試和白盒測試作為軟件測試常用的兩種策略,有利于設(shè)計成功的測試用例,盡可能多地發(fā)現(xiàn)程序中的缺陷,以下主要通過實例介紹這兩種測試策略的應(yīng)用。

    關(guān)鍵詞:黑盒測試;白盒測試;缺陷;軟件測試

    0 引言

    隨著科技的發(fā)展,軟件產(chǎn)品已應(yīng)用于社會的各個領(lǐng)域,從日常生活中的手機通話、銀行ATM機操作到機器人、航空航天,我們都可以感受到軟件帶來的方便與快捷??梢哉f,沒有軟件,我們的生活將不可想象。隨著軟件功能的增多與增強,軟件系統(tǒng)也變得越來越龐大,越來越復(fù)雜。眾所周知,世界上沒有完美的軟件,其原因大致可分為:輸入量太大、輸出結(jié)果太多、軟件實現(xiàn)途徑太多、軟件說明書沒有客觀標準等[1]。日常生活中,每天都有可能會發(fā)生一些由軟件缺陷引起的問題:手機無法正常通話、火星探測器在太空丟失、銀行系統(tǒng)重復(fù)扣款或取出異常數(shù)額的現(xiàn)金、操作系統(tǒng)異常重啟等。因此,對軟件進行充分的測試就顯得尤為重要。所謂軟件測試是指利用工程方法和測試工具對軟件產(chǎn)品進行功能、性能、可靠性等多方面的測試,最大限度找出產(chǎn)品存在的問題、缺陷或偏差。本文主要介紹軟件測試中常用的兩種工程方法或策略,即:黑盒測試與白盒測試。下文將通過實例詳細描述如何運用這兩種方法對系統(tǒng)軟件進行測試,以發(fā)現(xiàn)其可能存在的缺陷并解決之。

    1 軟件測試方法

    1.1黑盒測試

    所謂黑盒測試,即測試人員可以無需關(guān)注軟件是如何實現(xiàn)和運行的,只需明確輸入和輸出即可。其中,最為常用的黑盒測試要算等價類劃分和邊界值分析法[1],等價類劃分[2]是一種典型的、重要的黑盒測試方法,它將程序所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若干個等價類。然后從每個部分中選取具有代表性的數(shù)據(jù)當(dāng)作測試用例進行合理的分類,測試用例由有效等價類和無效等價類的代表組成,從而保證測試用例具有完整性和代表性。邊界值分析法[2]就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例通常來自等價類的邊界。

    以某電子產(chǎn)品的指示燈為例,假設(shè)某接口函數(shù)的輸入?yún)?shù)為(整型數(shù)據(jù)),控制的是該電子產(chǎn)品的紅、黃、綠三盞燈,的定義為:

    (1)當(dāng)-10≤l<0時,紅燈亮;

    (2)當(dāng)0≤l<10時,綠燈亮;

    (3)當(dāng)10≤l<20時,黃燈亮;

    (4)l為其他值時,任何一盞燈都不亮。

    為了驗證輸入?yún)?shù)對顯示燈的控制結(jié)果,測試人員會設(shè)計不同的輸入?yún)?shù)來進行驗證。以等價類劃分為例,測試人員可能會用到-5,6,18這三個值來驗證(當(dāng)然也可以使用滿足條件的其他數(shù)據(jù)進行驗證),期望得到的結(jié)果顯然分別是:紅燈亮、綠燈亮、黃燈亮??紤]到測試效果、測試成本以及交付進度,測試人員不可能對所有整數(shù)一一進行驗證,因為正常情況下(排除硬件環(huán)境異常),l取-5與[-10,5)∪(5,0)范圍內(nèi)任何一個整型數(shù)據(jù)的結(jié)果都一致;取6與[0,6)∪(6,10)范圍內(nèi)任何一個整型數(shù)據(jù)的結(jié)果都一致;取18與[10,18)∪(18,20)范圍內(nèi)任何一個整型數(shù)據(jù)的結(jié)果都一致;這是使燈亮的一類數(shù)據(jù),另外一類數(shù)據(jù),如:-20和30,輸入后,任何一盞燈都不亮,此類驗證數(shù)據(jù)即屬于無效等價類的范圍。

    作為等價類劃分的補充,測試人員會對數(shù)-11、-10、0、10、20進行驗證,結(jié)果應(yīng)該為:

    l=-11時,任何一盞都不燈亮;

    l=-10時,紅燈亮;

    l=0時,綠燈亮;

    l=10時,黃燈亮;

    l=20時,任何一盞都不燈亮。

    這樣的取值思路使用的就是邊界值分析法。

    1.2白盒測試

    白盒測試,測試人員需要了解軟件具體的設(shè)計與實現(xiàn)原理。白盒測試分為靜態(tài)白盒測試和動態(tài)白盒測試。

    (1)靜態(tài)白盒測試

    靜態(tài)白盒測試,是在不執(zhí)行程序的條件下有條理地仔細審查軟件設(shè)計與實現(xiàn),從而找出軟件缺陷的過程[1]。測試人員需要有一定的編程基礎(chǔ),并且了解產(chǎn)品的實現(xiàn)方案。測試重點是檢查需求,設(shè)計以及源碼:

    ①實現(xiàn)與需求/設(shè)計是否一致;

    ②代碼是否存在規(guī)范性問題;

    ③程序?qū)Ξ惓;虺鲥e分支是否有合理的解決方案;

    ④代碼的可讀性與易理解性。

    (2)動態(tài)白盒測試

    動態(tài)白盒測試,是指利用查看代碼功能和實現(xiàn)方法得到的信息來確認哪些需要測試,如何開展測試[1]。

    例如,對于如下一段程序:

    #define OK 1

    #define ERROR -1

    #define A 1000

    #define B 3500

    int Fun(int flag, long int address, long int offset)

    {

    if(0== flag) {

    FunWirte(address, offset, A);

    return OK;

    }

    else if(1== flag){

    FunWirte(address, offset, B);

    return OK;

    }

    else

    printf(“輸入的flag不合理 ”);

    return ERROR;

    }

    該函數(shù)實現(xiàn)的功能:

    若flag的值為0,則通過函數(shù)FunWirte將1000寫入到地址address+offset處,返回1;

    若flag的值為1,則通過函數(shù)FunWirte將3500寫入到地址address+offset處,返回1;

    如果輸入?yún)?shù)flag為其它值,則輸出提示信息,然后返回-1。

    對于測試人員來說,設(shè)計測試用例的思路(執(zhí)行程序前,將地址address+offset處數(shù)據(jù)清零):

    ①輸入?yún)?shù)flag=0,執(zhí)行程序后,查詢address+offset處的數(shù)值是否為1000。

    ②輸入?yún)?shù)flag=1,執(zhí)行程序后,查詢address+offset處的數(shù)值是否為3500。

    ③輸入?yún)?shù)flag=2,執(zhí)行程序后,查詢address+offset處的數(shù)值是否為0。

    顯然這需要測試人員了解函數(shù)Fun的設(shè)計思路以及實現(xiàn)原理,并且有一定的編程基礎(chǔ),實際上,設(shè)置flag分別等于0,1,2的測試用例,也滿足了邏輯覆蓋中的語句覆蓋,條件覆蓋,判定覆蓋[3]。

    2 結(jié)語

    本文結(jié)合兩個實例分別介紹了軟件測試中常用的兩種測試策略(白盒測試和黑盒測試)的應(yīng)用,這兩種方法也可以應(yīng)用于其他任何系統(tǒng)或產(chǎn)品的軟件測試中。

    參考文獻:

    [1]周予濱,姚靜等.軟件測試[M].北京:機械工業(yè)出版社,2002,02.

    [2]李龍,軟件測試實用技術(shù)與常用模板[M].機械工業(yè)出版社,2010,10.

    [3]Glenford J.Myers, Tom Badgett, Todd M.Thomas. The Art of Software Testing[M]. John Wiley &Sons,Inc.,Hoboken,New Jersey,2004.

    呂宣姣(1982-),女,山西靜樂人,碩士研究生,工程師,研究方向為冗余機器手臂的重復(fù)運動規(guī)劃、軟件測試

    Application of Black-Box and White-Box Software Testing Tactics

    LV Xuan-jiao
    (Nanfang College,SUN YAT-SEN University, Guangzhou 510970)

    Abstract:Software testing is an attempt to find a program error destructive of a process, black-box and white-box testing tactics are commonly used in software testing, which are conducive to design successful test cases, as much as possible defect discovery programs, as following describes the application of these two tactics by way of example.

    Keywords:Black-Box Testing; White-Box Testing; Defect; Software Testing

    收稿日期:2015-12-29修稿日期:2016-03-01

    作者簡介:

    文章編號:1007-1423(2016)09-0048-03

    DOI:10.3969/j.issn.1007-1423.2016.09.012

    猜你喜歡
    軟件測試缺陷
    基于OBE的軟件測試課程教學(xué)改革探索
    計算機教育(2020年5期)2020-07-24 08:53:20
    航天軟件測試模型構(gòu)建與應(yīng)用
    軟件(2020年3期)2020-04-20 01:45:34
    EXCEL和VBA實現(xiàn)軟件測試記錄管理
    電子制作(2018年16期)2018-09-26 03:27:18
    關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
    電子測試(2017年15期)2017-12-18 07:19:20
    簡析湖畔詩人潘漠華詩歌的“歌哭”之苦
    醫(yī)院會計制度的缺陷及其改進措施探討
    中國市場(2016年36期)2016-10-19 04:28:06
    園林綠化植物應(yīng)用現(xiàn)狀與展望
    智能電能表軟件測試技術(shù)概述
    《軟件測試》課程教學(xué)策略研究
    河南科技(2014年10期)2014-02-27 14:09:37
    印度電商為兩大“缺陷”苦惱
    聊城市| 长顺县| 湘潭市| 南宫市| 华阴市| 松滋市| 宜良县| 乐安县| 丁青县| 北票市| 平谷区| 镇沅| 永川市| 唐海县| 裕民县| 睢宁县| 安新县| 疏勒县| 铅山县| 漳平市| 红河县| 岑溪市| 历史| 承德市| 临泉县| 荥阳市| 甘孜| 鸡东县| 武冈市| 麟游县| 乌兰察布市| 古丈县| 辽宁省| 阜南县| 寻甸| 托克逊县| 咸宁市| 中宁县| 梅州市| 会东县| 城口县|