白盒測試(White-box Testing,又稱邏輯驅動測�,結構測試或基于程序本身的測試)是把測試對象看作一個打開的盒子。它是一種測試用例設計方�,從程序內部邏輯結構及有關信息來設計和選擇測試用�,對程序的邏輯路徑進行測試�
白盒測試法的覆蓋標準有邏輯覆�、循�(huán)覆蓋和基本路徑測�。其中邏輯覆蓋包括語句覆蓋、判定覆�、條件覆蓋、判�/條件覆蓋、條件組合覆蓋和路徑覆蓋�
六種覆蓋標準:語句覆�、判定覆�、條件覆蓋、判�/條件覆蓋、條件組合覆蓋和路徑覆蓋�(fā)現錯誤的能力呈由弱至強的變化。語句覆蓋每條語句至少執(zhí)行一次。判定覆蓋每個判定的每個分支至少執(zhí)行一�。條件覆蓋每個判定的每個條件應取到各種可能的�。判�/條件覆蓋同時滿足判定覆蓋條件覆蓋。條件組合覆蓋每個判定中各條件的每一種組合至少出現一�。路徑覆蓋使程序中每一條可能的路徑至少�(zhí)行一��
白盒測試也稱結構測試或邏輯驅動測�,它是知道產品內部工作過�,可通過測試來檢測產品內部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功�,白盒測試的主要方法有邏輯驅�、基路測試等,主要用于軟件驗證�
"白盒"法全面了解程序內部邏輯結�、對所有邏輯路徑進行測試�"白盒"法是窮舉路徑測試。在使用這一方案�,測試者必須檢查程序的內部結構,從檢查程序的邏輯著�,得出測試數據。貫穿程序的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯�。,窮舉路徑測試決不能查出程序違反了設計�(guī)�,即程序本身是個錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出�。第三,窮舉路徑測試可能�(fā)現不了一些與數據相關的錯��
白盒測試目前主要用在具有高可靠性要求的軟件領域,例如:軍工軟件、航天航空軟�、工�(yè)控制軟件等等。白盒測試工具在選購時應當主要是對開�(fā)語言的支持、代碼覆蓋的深度、嵌入式軟件的測試、測試的可視化等�
對開�(fā)語言的支持:白盒測試工具是對源代碼進行的測�,測試的主要內容包括詞法分析與語法分�、靜�(tài)錯誤分析、動�(tài)檢測�。但是對于不同的開發(fā)語言,測試工具實現的方式和內容差別是較大的。目前測試工具主要支持的開發(fā)語言包括:標準C、C++、Visual C++、Java、Visual J�+��
代碼的覆蓋深度:從覆蓋源程序語句的詳盡程度分�,邏輯覆蓋標準包括以下不同的覆蓋標準:語句覆�、判定覆蓋、條件覆�、條件判定組合覆蓋、多條件覆蓋和修正判定條件覆��
·語句覆蓋 為了暴露程序中的錯誤,程序中的每條語句至少應該執(zhí)行一�。因此語句覆蓋(Statement Coverage)的含義是:選擇足夠多的測試數據,使被測程序中每條語句至少執(zhí)行一�。語句覆蓋是很弱的邏輯覆��
·判定覆蓋 比語句覆蓋稍強的覆蓋標準是判定覆蓋(Decision Coverage�。判定覆蓋的含義是:設計足夠的測試用例,使得程序中的每個判定至少都獲得一次“真值”或“假值�,或者說使得程序中的每一個取“真”分支和取“假”分支至少經歷一次,因此判定覆蓋又稱為分支覆��
·條件覆蓋 在設計程序中,一個判定語句是由多個條件組合而成的復合判�。為了更徹底地實現邏輯覆蓋,可以采用條件覆蓋(Condition Coverage)的標準。條件覆蓋的含義是:構造一組測試用�,使得每一判定語句中每個邏輯條件的可能值至少滿足一次�
·多條件覆� 多條件覆蓋也稱條件組合覆�,它的含義是:設計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現一�。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆�、條件覆蓋和條件判定組合覆蓋��
·修正條件判定覆蓋 修正條件判定覆蓋是由歐美的航�/航天制造廠商和使用單位�(lián)合制定的“航空運輸和裝備系統(tǒng)軟件認證標準�,目前在國外的國�、航空航天領域應用廣�。這個覆蓋度量需要足夠的測試用例來確定各個條件能夠影響到包含的判定的結果。它要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少要被調用一�,每個程序的判定到所有可能的結果值要至少轉換一�;其�,程序的判定被分解為通過邏輯操作符(and、or)連接的布爾條�,每個條件對于判定的結果值是獨立��
不同的測試工具對于代碼的覆蓋能力也是不同的,通常能夠支持修正條件判定覆蓋的測試工具價格是極其昂貴��
嵌入式軟件的測試:對于嵌入式軟件的測�,我們還需要一方面進一步考慮測試工具對于嵌入式操作系�(tǒng)的支持能�,例如DOS、Vxworks、Neculeus、Linux和Windows CE等;另一方面還需要考慮測試工具對于硬件平臺的支持能�,包括是否支持所�64/32/16位CPU � MCU,是否可以支� PCI/VME/CPCI 總線�
測試的可視化:白盒測試是工作量巨大并且枯燥的工作,可視化的設計對于測試來說是十分重要�。在選購白盒測試工具�,應當考慮該款測試工具的可視化是否良好,例如:測試過程中是否可以顯示覆蓋率的函數分布圖和上升趨勢圖,是否使用不同的顏色區(qū)分已�(zhí)行和未執(zhí)行的代碼段顯示分配內存情況實時圖表等,這些對于測試效率和測試質量的提高是具有很大的作用的�
1、保證程序中所有關鍵路徑的測試,防止由于沒有執(zhí)行的路徑在實際投入運行后�(zhí)行到�(fā)生意外的情況
2、衡量測試完整�
3、程序內部所有的邏輯值真、假兩個分支的覆蓋
4、檢查內存泄�
5、異常處理的分枝語句的執(zhí)�
6、解決實驗條件下很難搭建真實�(huán)境的問題
7、檢查代碼符合一定的編碼�(guī)范,減少由于編碼不規(guī)范而引入錯�
�(yōu)�
迫使測試人員去仔細思考軟件的實現
可以檢測代碼中的每條分支和路�
揭示隱藏在代碼中的錯�
對代碼的測試比較徹底
缺點
昂貴
無法檢測代碼中遺漏的路徑和數據敏感性錯�
不驗證規(guī)格的正確�
�(lián)系:白盒測試和黑盒測試都是軟件測試的一個方�;兩者有 時結合起來同時進行測試,稱為“灰盒測試�
區(qū)別:
白盒,需要源代碼;無法檢測程序外部特�� 無法測試 遺漏需求; 關心程序內部結構� 邏輯以及代碼的可維護性; 編碼� 集成測試階段進行�
黑盒,不需要源代碼,需要可�(zhí)行文��
從用戶角度出�(fā) 進行測試;關心程序的外在功能和非功能表現;確認測�� 系統(tǒng) 測試階段進行�
更多精彩內容,請登錄維庫電子通(www.3575.com.cn�
維庫電子�,電子知�,一查百��
已收錄詞�153979�