張瑋
摘 要:白盒測(cè)試和黑盒測(cè)試都是軟件測(cè)試設(shè)計(jì)的方法。黑盒測(cè)試把系統(tǒng)理解為一個(gè)“內(nèi)部不可見的盒子”,因此不需要明白它的內(nèi)部結(jié)構(gòu)。黑盒測(cè)試一般關(guān)注的是對(duì)功能需求的測(cè)試。白盒測(cè)試設(shè)計(jì)允許你觀察“盒子”內(nèi)部,讓你了解其內(nèi)部結(jié)構(gòu)和運(yùn)作原理,并使用對(duì)這些知識(shí)的了解來指導(dǎo)測(cè)試用例的設(shè)計(jì)。為了完全測(cè)試一個(gè)軟件,不可或缺任何一種測(cè)試。
關(guān)鍵詞:軟件測(cè)試;白盒測(cè)試;黑盒測(cè)試
軟件測(cè)試是使用人工或者自動(dòng)手段來運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測(cè)試通常是在軟件投入生產(chǎn)性運(yùn)行之前進(jìn)行的,它是對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量控制的關(guān)鍵。在軟件測(cè)試中有兩大基本測(cè)試方法:白盒測(cè)試和黑盒測(cè)試。在傳統(tǒng)的軟件測(cè)試活動(dòng)中基本上都可以找到這兩類方法。
1 白盒測(cè)試
1.1 什么是白盒測(cè)試
白盒測(cè)試又叫做玻璃盒測(cè)試、透明盒測(cè)試、開放盒測(cè)試等。在這里,盒子指的是需要被測(cè)試的軟件,白盒,顧名思義即盒子是可視的,你清楚盒子內(nèi)部的東西以及里面是如何運(yùn)作的。因此,白盒測(cè)試需要對(duì)系統(tǒng)內(nèi)部的結(jié)構(gòu)和工作原理有一個(gè)清楚的了解;并且基于這個(gè)知識(shí)來設(shè)計(jì)你的用例。
使用白盒測(cè)試方法產(chǎn)生的測(cè)試用例能夠:保證一個(gè)模塊中的所有獨(dú)立路徑至少被使用一次;對(duì)所有邏輯值均需測(cè)試true和false;在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán);檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。
1.2 白盒測(cè)試技術(shù)
白盒測(cè)試技術(shù)一般可分為靜態(tài)分析和動(dòng)態(tài)分析兩類技術(shù)。靜態(tài)分析是一種不通過執(zhí)行程序而進(jìn)行測(cè)試的技術(shù)。靜態(tài)分析的關(guān)鍵功能檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。它瞄準(zhǔn)的是糾正軟件系統(tǒng)在描述、表示和規(guī)格上的錯(cuò)誤。因此,是任何進(jìn)一步測(cè)試執(zhí)行的前提。靜態(tài)分析技術(shù)不需要軟件的執(zhí)行,而動(dòng)態(tài)分析從其本身來看則更像是一個(gè)“測(cè)試”,因?yàn)樗讼到y(tǒng)的執(zhí)行。當(dāng)軟件系統(tǒng)在模擬的或真實(shí)的環(huán)境中執(zhí)行之前、之中和之后,對(duì)軟件系統(tǒng)行為的分析是動(dòng)態(tài)分析的主要特點(diǎn)。動(dòng)態(tài)分析包含了程序在受控的環(huán)境下使用特定的期望結(jié)果進(jìn)行正式的運(yùn)行。它顯示了一個(gè)在檢查狀態(tài)下是正確還是不正確。
有人提出,“我們應(yīng)該更注重于保證程序需求的實(shí)現(xiàn),為什么要花費(fèi)時(shí)間和精力來擔(dān)心(和測(cè)試)邏輯細(xì)節(jié)?”答案在于軟件自身的缺陷。當(dāng)我們?cè)O(shè)計(jì)和實(shí)現(xiàn)主流之外的功能、條件或控制時(shí),錯(cuò)誤往往開始出現(xiàn)在我們工作中;程序的邏輯流有時(shí)是違反直覺的,這意味著我們關(guān)于控制流和數(shù)據(jù)流的一些無意識(shí)的假設(shè)可能導(dǎo)致設(shè)計(jì)錯(cuò)誤,只有路徑測(cè)試才能發(fā)現(xiàn)這些錯(cuò)誤;當(dāng)一個(gè)程序被翻譯為程序設(shè)計(jì)語言源代碼時(shí),有可能產(chǎn)生某些筆誤,很多將被語法檢查機(jī)制發(fā)現(xiàn)。但是,其他的在測(cè)試開始后才會(huì)被發(fā)現(xiàn)。
2 黑盒測(cè)試
2.1 什么是黑盒測(cè)試
黑盒測(cè)試也稱功能測(cè)試,它是通過測(cè)試來檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試中,把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測(cè)試是與白盒測(cè)試截然不同的測(cè)試概念,也是在軟件測(cè)試中使用得最早、最廣泛的一類測(cè)試。
黑盒測(cè)試注重于測(cè)試軟件的功能需求,主要試圖發(fā)現(xiàn)以下幾類錯(cuò)誤:功能不正確或遺漏;界面錯(cuò)誤;輸入和輸出錯(cuò)誤;數(shù)據(jù)庫訪問錯(cuò)誤;性能錯(cuò)誤;初始化和終止錯(cuò)誤等。
2.2 黑盒測(cè)試技術(shù)
黑盒測(cè)試意味著測(cè)試數(shù)據(jù)的選擇和測(cè)試結(jié)果的解釋是以軟件功能屬性為基礎(chǔ)的。黑盒測(cè)試不應(yīng)當(dāng)由程序作者來執(zhí)行,因?yàn)樗捞嗟某绦騼?nèi)部知識(shí)。在新的測(cè)試方法中,由第三方來執(zhí)行黑盒測(cè)試。
通常,黑盒測(cè)試技術(shù)一般可分為沒有用戶參與的黑盒測(cè)試和有用戶介入的黑盒測(cè)試。盡管黑盒測(cè)試時(shí)圍繞著用戶需求文檔進(jìn)行的,但是黑盒測(cè)試不一定必須要用戶來參與測(cè)試。在絕大多數(shù)沒有用戶參與的黑盒測(cè)試中,最常見的測(cè)試有:功能性測(cè)試、容量測(cè)試、安全性測(cè)試、負(fù)載測(cè)試、標(biāo)桿測(cè)試、可靠性測(cè)試等。此外,還有兩類測(cè)試必須要有用戶參與的測(cè)試,外場測(cè)試和實(shí)驗(yàn)室測(cè)試。
3 白盒測(cè)試和黑盒測(cè)試的比較
既然我們已經(jīng)做了白盒測(cè)試,為什么還要進(jìn)行黑盒測(cè)試呢?因?yàn)榘缀袦y(cè)試在測(cè)試的早期采用,而黑盒測(cè)試主要用于測(cè)試的后期。黑盒測(cè)試故意不考慮控制結(jié)構(gòu),而只注意信息域。黑盒測(cè)試并不是白盒測(cè)試的替代品,而是用于輔助白盒測(cè)試發(fā)現(xiàn)其他類型的錯(cuò)誤的。白盒測(cè)試只考慮測(cè)試軟件產(chǎn)品,它不保證完整的需求規(guī)格是否被滿足。而黑盒測(cè)試只考慮測(cè)試需求規(guī)格,它不保證實(shí)現(xiàn)的所有部分是否被測(cè)試到。黑盒測(cè)試會(huì)發(fā)現(xiàn)遺漏的缺陷,指出規(guī)格的哪些部分沒有被完成。而白盒測(cè)試會(huì)發(fā)現(xiàn)代理方面的缺陷,指出哪些實(shí)現(xiàn)部分是錯(cuò)誤的。白盒測(cè)試比黑盒測(cè)試成本要高得多。它需要在測(cè)試可以被計(jì)劃前產(chǎn)生源代碼,并且在確定合適的數(shù)據(jù)和決定軟件是否正確方面需要花費(fèi)更多的工作量。
[參考文獻(xiàn)]
[1]鄭人杰.《軟件測(cè)試》.人民郵電出版社,2011.
[2]庫波.《軟件測(cè)試技術(shù)》.中國水利水電出版社,2010.
[3]茍英.《軟件測(cè)試技術(shù)基礎(chǔ)》.中國水利水電出版社,2013.
[4]賀平.《軟件測(cè)試教程》.電子工業(yè)出版社,2010.