• 
    

    
    

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

      淺析白盒測(cè)試在軟件測(cè)試中的應(yīng)用

      2019-09-23 18:57:12田春竹邢航
      中國(guó)信息化 2019年8期
      關(guān)鍵詞:白盒黑盒功能測(cè)試

      田春竹 邢航

      白盒測(cè)試,是軟件功能測(cè)試中的重要一環(huán)。在當(dāng)前整個(gè)測(cè)試業(yè)務(wù)中,大家主要關(guān)注于黑盒測(cè)試,由于測(cè)試過(guò)程比較繁瑣、測(cè)試成本較高等方面的原因,白盒測(cè)試往往被大家直接忽略,所占的比例非常小。本文通過(guò)針對(duì)某油田系統(tǒng)的一個(gè)具體功能點(diǎn),詳細(xì)闡述了白盒測(cè)試的基本過(guò)程,并說(shuō)明了白盒測(cè)試對(duì)黑盒測(cè)試的有力補(bǔ)充。

      一、軟件測(cè)試概述

      隨著信息化的快速發(fā)展,信息系統(tǒng)的建設(shè)速度也越來(lái)越快,而且呈現(xiàn)出規(guī)模變大,復(fù)雜度增高的趨勢(shì)。在這種情況下,無(wú)論是進(jìn)行系統(tǒng)開發(fā)的軟件公司,還是最終的系統(tǒng)用戶,都開始逐漸重視軟件測(cè)試,從而進(jìn)一步推動(dòng)了軟件測(cè)試的發(fā)展。

      軟件測(cè)試一般可分為兩種,即黑盒測(cè)試和白盒測(cè)試。其中,白盒測(cè)試也被稱為結(jié)構(gòu)測(cè)試,它是按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照設(shè)計(jì)規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。

      二、白盒測(cè)試的主要方法及測(cè)試流程

      (一)白盒測(cè)試的主要方法

      目前的軟件測(cè)試,通常仍是以黑盒測(cè)試為主,但是黑盒測(cè)試并不一定能發(fā)現(xiàn)所有的問(wèn)題,在必要情況下,需要使用白盒測(cè)試進(jìn)行補(bǔ)充。

      目前比較流行的白盒測(cè)試方法包括代碼檢查法、邏輯覆蓋法、基本路徑測(cè)試法等。其中,邏輯覆蓋法又可以包含語(yǔ)句覆蓋、判定覆蓋、條件覆蓋等。本文在此主要介紹邏輯覆蓋法的相關(guān)應(yīng)用。

      (二)白盒測(cè)試的主要流程

      進(jìn)行邏輯覆蓋法的主要測(cè)試流程如下:

      1、制定測(cè)試計(jì)劃。即根據(jù)整體測(cè)試需求以及被測(cè)系統(tǒng)的需求規(guī)格說(shuō)明書、設(shè)計(jì)文檔等來(lái)制定測(cè)試計(jì)劃。

      2、進(jìn)行模塊分析。在白盒測(cè)試過(guò)程中,測(cè)試人員對(duì)被測(cè)試程序的內(nèi)部結(jié)構(gòu)是清楚的,需要從程序的內(nèi)部邏輯結(jié)構(gòu)入手,按照一定的原則設(shè)計(jì)測(cè)試用例,對(duì)軟件的邏輯路徑進(jìn)行測(cè)試。因此,進(jìn)行模塊分析是非常重要的一個(gè)步驟,也是整個(gè)測(cè)試的重點(diǎn)和難點(diǎn)。模塊分析主要包括兩個(gè)部分,第一是針對(duì)被測(cè)模塊的功能進(jìn)行分析,了解模塊的具體業(yè)務(wù)和功能,第二是針對(duì)代碼進(jìn)行分析,查看源代碼中主要的方法、函數(shù)等。如果模塊分析不準(zhǔn)確,則后續(xù)的其他工作都將失去意義。代碼分析和功能分析工作是相輔相成的,作為軟件測(cè)試人員,如果對(duì)業(yè)務(wù)細(xì)節(jié)不懂,就做不好相應(yīng)的測(cè)試。但是要在很短的時(shí)間內(nèi)把所測(cè)系統(tǒng)的業(yè)務(wù)細(xì)節(jié)完全搞懂,也是一件非常不容易的事情。因此,一邊了解功能一邊分析代碼,在某些情況下是非常必要的。

      3、測(cè)試用例設(shè)計(jì)。在完全理解具體業(yè)務(wù)細(xì)節(jié)后,根據(jù)模塊分析結(jié)果和測(cè)試要求,進(jìn)行測(cè)試用例的設(shè)計(jì)。

      4、測(cè)試執(zhí)行。根據(jù)測(cè)試用例執(zhí)行測(cè)試,并詳細(xì)記錄測(cè)試結(jié)果。

      5、測(cè)試總結(jié)。針對(duì)測(cè)試結(jié)果進(jìn)行分析,確認(rèn)發(fā)現(xiàn)的相關(guān)問(wèn)題,并協(xié)助開發(fā)人員解決相關(guān)錯(cuò)誤。

      6、回歸測(cè)試。在開發(fā)人員完成修改后,針對(duì)模塊進(jìn)行回歸測(cè)試。

      三、白盒測(cè)試的具體應(yīng)用

      接下來(lái)通過(guò)一個(gè)實(shí)例來(lái)講述白盒測(cè)試中邏輯覆蓋法的具體應(yīng)用。

      (一)測(cè)試背景

      某油田的信息中心人員自行開發(fā)了一套測(cè)井解釋系統(tǒng),在經(jīng)過(guò)開發(fā)人員的自行測(cè)試后,即開始進(jìn)行內(nèi)部試用。但是在使用過(guò)程中發(fā)現(xiàn)了很多問(wèn)題,為確保系統(tǒng)功能的正確性,該單位(即委托單位)決定聘請(qǐng)第三方人員進(jìn)行系統(tǒng)的功能測(cè)試。

      由于在系統(tǒng)試用過(guò)程中,產(chǎn)生了部分正式數(shù)據(jù),而委托單位因特殊原因無(wú)法提供專用的測(cè)試環(huán)境,為了盡量避免測(cè)試過(guò)程中對(duì)系統(tǒng)的正常使用造成麻煩,經(jīng)過(guò)和委托單位協(xié)商,由委托單位統(tǒng)一提供所有的測(cè)試數(shù)據(jù)。同時(shí),經(jīng)過(guò)與委托單位協(xié)商,決定采用邏輯覆蓋的方式,對(duì)系統(tǒng)中的幾個(gè)重要功能點(diǎn)進(jìn)行白盒測(cè)試。

      (二)測(cè)試過(guò)程

      在測(cè)試過(guò)程中,“工程測(cè)井”模塊中含有一個(gè)“方位井徑校正”的功能。它是在數(shù)據(jù)庫(kù)模式下進(jìn)行方位井徑曲線數(shù)據(jù)的計(jì)算,計(jì)算完成后自動(dòng)保存數(shù)據(jù)。如果之前已經(jīng)存在曲線數(shù)據(jù),可根據(jù)系統(tǒng)提示選擇是否進(jìn)行覆蓋。

      這是一個(gè)非常簡(jiǎn)單而又常見(jiàn)的功能點(diǎn)。測(cè)試人員在進(jìn)行黑盒測(cè)試時(shí),錄入測(cè)試數(shù)據(jù),首先點(diǎn)擊“計(jì)算”按鈕。系統(tǒng)彈出是否覆蓋數(shù)據(jù)的提示后,點(diǎn)擊“確定”,系統(tǒng)提示已經(jīng)覆蓋數(shù)據(jù),點(diǎn)擊“取消”后,系統(tǒng)界面未發(fā)生任何變化,也無(wú)任何提示,功能測(cè)試通過(guò)。

      由于“工程測(cè)井”是本系統(tǒng)的一個(gè)重點(diǎn)模塊,在功能測(cè)試完畢后,開始進(jìn)行白盒測(cè)試。具體過(guò)程如下:

      1、根據(jù)“方位井徑校正”功能的具體業(yè)務(wù),結(jié)合系統(tǒng)代碼(如圖1)及設(shè)計(jì)文檔,進(jìn)行“計(jì)算”功能的流程分析,并標(biāo)識(shí)出所有的判斷邏輯(如圖2)。

      2、根據(jù)此流程圖,可以判斷出需要編寫五個(gè)測(cè)試用例,分別是

      (1)TC_C_001曲線名是否為空的邏輯判定

      (2)TC_C_002是否覆蓋原有數(shù)據(jù)的邏輯判定

      ……

      其中TC_C_002是否覆蓋數(shù)據(jù)的邏輯判定,便是針對(duì)前面所述功能的分析結(jié)果。

      3、設(shè)計(jì)測(cè)試用例

      根據(jù)流程圖中的分析結(jié)果,結(jié)合系統(tǒng)設(shè)計(jì)文檔及具體代碼,完成了測(cè)試用例的設(shè)計(jì),如表1所示。

      4、執(zhí)行測(cè)試用例

      在執(zhí)行此用例時(shí),我們使用了開發(fā)平臺(tái)中的斷點(diǎn)調(diào)試,即分別點(diǎn)擊“確定”、“取消”按鈕后,使用斷點(diǎn)逐步查看各變量、參數(shù)的變化情況和代碼執(zhí)行情況。

      根據(jù)對(duì)設(shè)計(jì)文檔和系統(tǒng)代碼的分析,我們初步判斷,點(diǎn)擊“取消”按鈕后,系統(tǒng)應(yīng)為option變量賦值為1,然后調(diào)用return函數(shù)結(jié)束當(dāng)前執(zhí)行的方法。但是實(shí)際測(cè)試過(guò)程中,點(diǎn)擊“取消”按鈕后,發(fā)現(xiàn)系統(tǒng)為變量option的賦值為2(如圖3所示)。之后并沒(méi)有通過(guò)調(diào)用return來(lái)結(jié)束方法的執(zhí)行,而是繼續(xù)執(zhí)行該方法,直到完成了一次覆蓋后,才結(jié)束當(dāng)前的操作。

      而點(diǎn)擊“確定”按鈕后,系統(tǒng)為變量option的賦值為0,程序跳過(guò)if判斷語(yǔ)句,同樣繼續(xù)執(zhí)行覆蓋操作。

      也就是說(shuō),無(wú)論界面上操作時(shí)點(diǎn)擊的是“確定”還是“取消”按鈕,其實(shí)后臺(tái)都執(zhí)行了一次覆蓋操作。

      (三)測(cè)試總結(jié)及回歸

      為何在功能測(cè)試時(shí)未能發(fā)現(xiàn)這個(gè)問(wèn)題呢?通過(guò)總結(jié)我們發(fā)現(xiàn),由于該模塊只進(jìn)行校正工作,校正后的數(shù)據(jù)是供后期其他模塊匯總使用。測(cè)試人員在測(cè)試過(guò)程中,對(duì)于執(zhí)行是否成功,通過(guò)該模塊的界面看不到具體效果,僅能通過(guò)系統(tǒng)給出的是否覆蓋成功的提示做出簡(jiǎn)單判斷,而委托單位提供的測(cè)試數(shù)據(jù)又非常單一,從而導(dǎo)致功能測(cè)試時(shí)未能發(fā)現(xiàn)此問(wèn)題。

      之后,我們與委托單位負(fù)責(zé)人,以及模塊開發(fā)人員共同進(jìn)行了問(wèn)題確認(rèn)。在開發(fā)人員完成bug修改后,由業(yè)務(wù)人員提供了多組數(shù)據(jù),并與測(cè)試人員一起針對(duì)本功能及相關(guān)聯(lián)內(nèi)容進(jìn)行了回歸測(cè)試,最終確認(rèn)問(wèn)題得到了解決,bug關(guān)閉。

      四、結(jié)語(yǔ)

      在軟件測(cè)試中,黑盒測(cè)試重點(diǎn)在于系統(tǒng)的功能性,而白盒測(cè)試則略微偏重于邏輯方面的測(cè)試,但是通過(guò)本文中的例子可以看出,二者并不沖突,而是互補(bǔ)。雖然通常情況下黑盒測(cè)試基本可以發(fā)現(xiàn)一個(gè)系統(tǒng)的大多數(shù)問(wèn)題,但是在白盒測(cè)試過(guò)程中也可能會(huì)發(fā)現(xiàn)一些黑盒測(cè)試時(shí)未能發(fā)現(xiàn)的問(wèn)題,反之亦然。對(duì)于任何一個(gè)系統(tǒng)測(cè)試來(lái)說(shuō),要想更好地實(shí)現(xiàn)其基本功能,做好后期的具體應(yīng)用,在其前期測(cè)試過(guò)程中,白盒測(cè)試與黑盒測(cè)試都是必不可少的組成部分。

      猜你喜歡
      白盒黑盒功能測(cè)試
      鐵路信號(hào)集中監(jiān)測(cè)設(shè)備的綜合校驗(yàn)臺(tái)研究
      科技資訊(2025年2期)2025-03-15 00:00:00
      一種基于局部平均有限差分的黑盒對(duì)抗攻擊方法
      面向未來(lái)網(wǎng)絡(luò)的白盒交換機(jī)體系綜述
      某內(nèi)花鍵等速傳動(dòng)軸八功能測(cè)試夾具設(shè)計(jì)
      DWB-AES:基于AES 的動(dòng)態(tài)白盒實(shí)現(xiàn)方法
      網(wǎng)絡(luò)“黑”“白”之爭(zhēng)
      通信世界(2018年29期)2018-11-21 06:34:44
      人事薪資管理系統(tǒng)軟件測(cè)試方案研究
      民用飛機(jī)機(jī)載電子硬件測(cè)試策略研究
      科技視界(2015年27期)2015-10-08 12:34:04
      基于EEPROM數(shù)據(jù)讀寫的智能電能表白盒測(cè)試方法
      通榆县| 拜泉县| 班玛县| 太谷县| 广河县| 乐至县| 江北区| 措勤县| 清丰县| 道真| 宜黄县| 台湾省| 化州市| 岚皋县| 苏尼特左旗| 犍为县| 昌平区| 菏泽市| 定西市| 芜湖县| 兴安县| 武胜县| 台北县| 海伦市| 固镇县| 化州市| 开原市| 吴江市| 进贤县| 郓城县| 屏南县| 安庆市| 准格尔旗| 兴城市| 临武县| 分宜县| 东阳市| 河北区| 元阳县| 商洛市| 罗田县|