国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件開(kāi)發(fā)中單元測(cè)試常用方法淺析

2009-06-29 02:50:18楊新斌
新媒體研究 2009年19期
關(guān)鍵詞:白盒黑盒單元測(cè)試

楊新斌 童 玲

[摘要]不論采用什么技術(shù)和方法,軟件中仍然會(huì)有錯(cuò)。軟件測(cè)試的目的是發(fā)現(xiàn)程序中的錯(cuò)誤,是為了證明程序有錯(cuò),而不是證明程序無(wú)錯(cuò)。軟件測(cè)試的目的之一就是盡可能早地發(fā)現(xiàn)軟件中存在的錯(cuò)誤,所以單元測(cè)試很重要。重點(diǎn)論述單元測(cè)試中最常用到的靜態(tài)測(cè)試技術(shù)。也論述黑盒測(cè)試與白盒測(cè)試等動(dòng)態(tài)測(cè)試技術(shù)的運(yùn)用。

[關(guān)鍵詞]軟件測(cè)試單元測(cè)試靜態(tài)測(cè)試黑盒測(cè)試白盒測(cè)試

中圖分類(lèi)號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671—7597(2009)1010074—01

軟件是相對(duì)于硬件而存在的,硬件是可以直觀感覺(jué)到、觸摸得到的物理產(chǎn)品,軟件則是邏輯的、知識(shí)性的產(chǎn)品集合,是對(duì)物理世界的一種抽象,或者是某種物理形態(tài)的虛擬化。軟件是智慧和知識(shí)的結(jié)晶。軟件工程學(xué)出現(xiàn)后,軟件開(kāi)發(fā)被視為一項(xiàng)工程,以工程化的方法來(lái)進(jìn)行規(guī)劃和管理軟件的開(kāi)發(fā)。統(tǒng)計(jì)表明。在典型的軟件開(kāi)發(fā)項(xiàng)目中,軟件測(cè)試工作量往往占軟件開(kāi)發(fā)總工作量的40%以上。而在軟件開(kāi)發(fā)的總成本中用在測(cè)試上的開(kāi)銷(xiāo)要占30%到50%。

軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一組測(cè)試數(shù)據(jù),并利用這些測(cè)試數(shù)據(jù)運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。按階段進(jìn)行測(cè)試(單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試)是一種基本的測(cè)試策略,在測(cè)試過(guò)程中應(yīng)該依據(jù)每一個(gè)階段的不同特點(diǎn),采用不同的測(cè)試方法和技術(shù),制定不同的測(cè)試目標(biāo)。

單元測(cè)試是測(cè)試執(zhí)行過(guò)程中的第一階段,單元測(cè)試是對(duì)軟件基本組成單元進(jìn)行的測(cè)試,測(cè)試對(duì)象是軟件設(shè)計(jì)的最小單元——模塊,通常而言,一個(gè)單元測(cè)試是用于判斷某個(gè)特定條件(或者場(chǎng)景)下某個(gè)特定函數(shù)的行為。進(jìn)行單元測(cè)試的原因是:錯(cuò)誤發(fā)現(xiàn)越早,成本越低,越到后期復(fù)雜度越高,發(fā)現(xiàn)解決BUG就越困難,成本也就越高。確保各單元模塊被正確地編碼是單元測(cè)試的主要目標(biāo),但是單元測(cè)試的目標(biāo)不僅要測(cè)試代碼的功能性,還需確保代碼在結(jié)構(gòu)上可靠且健全,并且能夠在所有條件下正確響應(yīng)。在單元測(cè)試中既會(huì)用到靜態(tài)測(cè)試技術(shù),有時(shí)也會(huì)運(yùn)用黑盒與白盒等動(dòng)態(tài)測(cè)試技術(shù)。

一、靜態(tài)測(cè)試

靜態(tài)測(cè)試技術(shù)是單元測(cè)試最重要的手段之一,靜態(tài)測(cè)試就是對(duì)軟件的源代碼進(jìn)行研讀,查找錯(cuò)誤或收集一些度量數(shù)據(jù),并不需要對(duì)代碼進(jìn)行編譯和執(zhí)行,適用于新開(kāi)發(fā)的和重用的代碼。主要有走查、審查和評(píng)審。

(一)走查。走查(walk through)是一種使用靜態(tài)分析方法的非正式評(píng)審過(guò)程。走查過(guò)程是由被指定作為測(cè)試員的小組成員提出一批測(cè)試實(shí)例,讓與會(huì)成員充當(dāng)計(jì)算機(jī),對(duì)每個(gè)測(cè)試實(shí)例用頭腦來(lái)執(zhí)行程序,在紙上或黑板上監(jiān)視程序的狀態(tài)。大多數(shù)走查中,在懷疑程序的過(guò)程中所發(fā)現(xiàn)的缺陷比通過(guò)測(cè)試實(shí)例本身發(fā)現(xiàn)的缺陷更多。

(二)審查。審查(inspection)是一種正式的檢查和評(píng)估方法。它是用逐步檢查源代碼中有無(wú)邏輯或語(yǔ)法錯(cuò)誤的辦法來(lái)檢測(cè)故障,可以認(rèn)為它是拿代碼與標(biāo)準(zhǔn)和規(guī)范對(duì)照的補(bǔ)充,因?yàn)樗坏枰浖_(kāi)發(fā)者自查,而且要組織代碼檢查小組進(jìn)行代碼檢查。檢查過(guò)程所采用的主要技術(shù)是設(shè)計(jì)與使用缺陷檢查表。首先由程序編寫(xiě)小組成員逐句闡明程序的邏輯,在此過(guò)程中可由程序員或測(cè)試小組成員提出問(wèn)題,追蹤缺陷是否存在,然后利用缺陷檢查表來(lái)分析討論。會(huì)議后把發(fā)現(xiàn)的缺陷填入表中交給程序開(kāi)發(fā)小組。如發(fā)現(xiàn)重大缺陷,那么在改正缺陷之后,還要重新開(kāi)審議會(huì)議。審查結(jié)束后要完成《靜態(tài)分析錯(cuò)誤報(bào)告》。

(三)評(píng)審。評(píng)審(review)通常在審查會(huì)后進(jìn)行,審查小組根據(jù)代碼審查的錯(cuò)誤記錄來(lái)評(píng)估該程序,決定是否需要重新進(jìn)行審議?!鹅o態(tài)分析錯(cuò)誤報(bào)告》中必須寫(xiě)明錯(cuò)誤的類(lèi)型、影響域、位置和原因等,需交給程序編寫(xiě)者并同時(shí)存檔。

二、動(dòng)態(tài)測(cè)試

完成靜態(tài)測(cè)試后,還需真正地將程序運(yùn)行起來(lái)完成動(dòng)態(tài)測(cè)試。動(dòng)態(tài)測(cè)試就是通過(guò)觀察軟件運(yùn)行時(shí)的動(dòng)作,來(lái)提供執(zhí)行跟蹤,時(shí)間分析,以及測(cè)試覆蓋度方面的信息。這就需要設(shè)計(jì)系列的測(cè)試用例確保測(cè)試的完整性和有效性,在測(cè)試用例的設(shè)計(jì)上,通常會(huì)綜合黑盒與白盒測(cè)試方法。

(一)黑盒測(cè)試。黑盒測(cè)試也稱(chēng)功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,它是在已知產(chǎn)品所應(yīng)具有的功能情況下,通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試時(shí),把程序看作一個(gè)不能打開(kāi)的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測(cè)試人員針對(duì)程序接口和用戶(hù)界面進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息并且保持外部信息(如;數(shù)據(jù)庫(kù)或文件)的完整性。其具體方法有等價(jià)類(lèi)劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、因果圖法等。黑盒法著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),只針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試,它主要用于軟件驗(yàn)收測(cè)試。黑盒測(cè)試時(shí),必須在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù)。測(cè)試情況實(shí)際上有無(wú)窮多個(gè),人們不僅要測(cè)試所有合法的輸入,而且還要對(duì)那些不合法但是可能的輸入進(jìn)行測(cè)試,另外,還得考慮接口測(cè)試、性能測(cè)試、內(nèi)存測(cè)試等。黑盒測(cè)試中不可能做到窮舉測(cè)試,因此局限于功能測(cè)試是遠(yuǎn)遠(yuǎn)不夠的,還要結(jié)合白盒測(cè)試方法,進(jìn)行邏輯和路徑測(cè)試。

(二)白盒測(cè)試。白盒測(cè)試也稱(chēng)結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,也就是已知產(chǎn)品內(nèi)部工作過(guò)程情況下,清楚最終生成軟件產(chǎn)品的計(jì)算機(jī)程序的結(jié)構(gòu)和語(yǔ)句,按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,測(cè)試程序內(nèi)部的變量狀態(tài)、邏輯結(jié)構(gòu)、運(yùn)行路徑等,通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書(shū)的規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作,而不顧它的功能。白盒測(cè)試針對(duì)程序的邏輯結(jié)構(gòu)設(shè)計(jì)測(cè)試用例,用邏輯覆蓋率來(lái)衡量測(cè)試的完整性。邏輯單位主要有:語(yǔ)句、分支、條件、條件值、條件值組合,路徑。語(yǔ)句覆蓋就是覆蓋所有的語(yǔ)句,其他類(lèi)推。另外還有一種判定條件覆蓋,其實(shí)是分支覆蓋與條件覆蓋的組合。跟條件有關(guān)的覆蓋就有三種,條件覆蓋是指覆蓋所有的條件表達(dá)式,不考慮計(jì)算結(jié)果:條件值覆蓋是指覆蓋條件的所有可能取值,即每個(gè)條件的取真值和取假值都要至少計(jì)算一次;條件值組合覆蓋是指覆蓋所有條件取值的所有可能組合。白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、基本路徑測(cè)試等。白盒法是窮舉路徑測(cè)試,主要用于軟件驗(yàn)證。白盒法是“基于覆蓋的測(cè)試”,應(yīng)朝著提高覆蓋率的方向努力,盡可能多地進(jìn)行測(cè)試,找出那些被忽視的錯(cuò)誤。

以上測(cè)試方法各有所長(zhǎng),每種方法都可設(shè)計(jì)出一組有用的測(cè)試用例,用這組測(cè)試用例可以比較容易地發(fā)現(xiàn)某種類(lèi)型的錯(cuò)誤,卻不易發(fā)現(xiàn)另一種類(lèi)型的錯(cuò)誤,因此在實(shí)際測(cè)試中,應(yīng)結(jié)合各種測(cè)試方法,形成綜合策略。

猜你喜歡
白盒黑盒單元測(cè)試
一種基于局部平均有限差分的黑盒對(duì)抗攻擊方法
面向未來(lái)網(wǎng)絡(luò)的白盒交換機(jī)體系綜述
DWB-AES:基于AES 的動(dòng)態(tài)白盒實(shí)現(xiàn)方法
網(wǎng)絡(luò)“黑”“白”之爭(zhēng)
通信世界(2018年29期)2018-11-21 06:34:44
一年級(jí)上冊(cè)第五單元測(cè)試
一年級(jí)上冊(cè)一、二單元測(cè)試
基于EEPROM數(shù)據(jù)讀寫(xiě)的智能電能表白盒測(cè)試方法
第六單元測(cè)試卷
第五單元測(cè)試卷
昌黎县| 全椒县| 苍山县| 永善县| 桑植县| 绥芬河市| 呼图壁县| 仪陇县| 繁峙县| 临桂县| 叶城县| 任丘市| 山东省| 尤溪县| 吉林省| 五原县| 循化| 甘泉县| 涿州市| 台湾省| 曲水县| 长岛县| 涿鹿县| 永寿县| 江山市| 上林县| 威海市| 军事| 定陶县| 顺平县| 敦化市| 乐昌市| 托克逊县| 汝州市| 彭州市| 平定县| 阜阳市| 阿拉善左旗| 商水县| 上蔡县| 德清县|