-
白盒測試
鎖定
白盒測試簡介
白盒測試法的覆蓋標準有邏輯覆蓋、循環覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和修改條件判斷覆蓋
[5]
。六種覆蓋標準發現錯誤的能力呈由弱到強的變化:
[1]
白盒測試目的
白盒測試原則
白盒測試實施階段
白盒測試分類
動態分析是當軟件系統在模擬的或真實的環境中執行之前、之中和之後,對軟件系統行為的分析。動態分析包含了程序在受控的環境下使用特定的期望結果進行正式的運行。它顯示了一個系統在檢查狀態下是正確還是不正確。在動態分析技術中,最重要的技術是路徑和分支測試。
[3]
白盒測試三步法
“三步法”儘量避免重複工作,白盒方法和黑盒方法相結合,人工方法和自動方法相補充,如果第2步的覆蓋率比較理想,那麼基本上可以保證找出所有等價類。在開發過程允許的限度內,“三步法”已接近極限,當得起“徹底測試”四個字。
[3]
白盒測試工具挑選
白盒測試語言支持
白盒測試工具是對源代碼進行的測試,測試的主要內容包括詞法分析與語法分析、靜態錯誤分析、動態檢測等。但是對於不同的開發語言,測試工具實現的方式和內容差別是較大的。測試工具主要支持的開發語言包括:標準C、C++、Visual C++、Java和Visual J++等。
[4]
白盒測試覆蓋深度
1.語句覆蓋 為了暴露程序中的錯誤,程序中的每條語句至少應該執行一次。因此語句覆蓋(Statement Coverage)的含義是:選擇足夠多的測試數據,使被測程序中每條語句至少執行一次。語句覆蓋是很弱的邏輯覆蓋。
[4]
2.判定覆蓋比語句覆蓋稍強的覆蓋標準是判定覆蓋(Decision Coverage)。判定覆蓋的含義是:設計足夠的測試用例,使得程序中的每個判定至少都獲得一次“真值”或“假值”,或者説使得程序中的每一個取“真”分支和取“假”分支至少經歷一次,因此判定覆蓋又稱為分支覆蓋。
[4]
3.條件覆蓋在設計程序中,一個判定語句是由多個條件組合而成的複合判定。為了更徹底地實現邏輯覆蓋,可以採用條件覆蓋(Condition Coverage)的標準。條件覆蓋的含義是:構造一組測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次。
[4]
4.多條件覆蓋。多條件覆蓋也稱條件組合覆蓋,它的含義是:設計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現一次。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。
[4]
5.修正條件判定覆蓋。修正條件判定覆蓋是由歐美的航空/航天製造廠商和使用單位聯合制定的“航空運輸和裝備系統軟件認證標準”,在國外的國防、航空航天領域應用廣泛。這個覆蓋度量需要足夠的測試用例來確定各個條件能夠影響到包含的判定的結果。它要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少要被調用一次,每個程序的判定到所有可能的結果值要至少轉換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的布爾條件,每個條件對於判定的結果值是獨立的。
[4]
白盒測試嵌入式測試
對於嵌入式軟件的測試,我們還需要一方面進一步考慮測試工具對於嵌入式操作系統的支持能力,例如DOS、Vxworks、Neculeus、Linux和Windows CE等;另一方面還需要考慮測試工具對於硬件平台的支持能力,包括是否支持所有64/32/16位CPU 和 MCU,是否可以支持 PCI/VME/CPCI 總線。
[4]
白盒測試可視化
白盒測試是工作量巨大並且枯燥的工作,可視化的設計對於測試來説是十分重要的。在選購白盒測試工具時,應當考慮該款測試工具的可視化是否良好,例如:測試過程中是否可以顯示覆蓋率的函數分佈圖和上升趨勢圖,是否使用不同的顏色區分已執行和未執行的代碼段顯示分配內存情況實時圖表等,這些對於測試效率和測試質量的提高是具有很大的作用的。
[4]
白盒測試測試方法
流程圖用來描述程序控制結構。可將流程圖映射到一個相應的流圖(假設流程圖的菱形決定框中不包含複合條件)。在流圖中,每一個圓,稱為流圖的結點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結點,流圖中的箭頭,稱為邊或連接,代表控制流,類似於流程圖中的箭頭。一條邊必須終止於一個結點,即使該結點並不代表任何語句(例如:if-else-then結構)。由邊和結點限定的範圍稱為區域。計算區域時應包括圖外部的範圍。
[3]
第二步:計算圈複雜度
第三步:導出測試用例根據上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。V(G)值正好等於該程序的獨立路徑的條數。)
[3]
白盒測試優缺點
白盒測試優點
白盒測試缺點
白盒測試與黑盒測試區別
白盒測試技術(White Box Testing): 深入到代碼一級的測試,使用這種技術發現問題最早,效果也是最好的。該技術主要的特徵是測試對象進入了代碼內部,根據開發人員對代碼和對程序的熟悉程度,對有需要的部分進行在軟件編碼階段,開發人員根據自己對代碼的理解和接觸所進行的軟件測試叫做白盒測試。這一階段測試以軟件開發人員為主,在JAVA平台使用Xunit系列工具進行測試,Xunit測試工具是類一級的測試工具對每一個類和該類的方法進行測試。
[3]
黑盒測試技術(Black Box Testing):黑盒測試的內容主要有以下幾個方面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結合兼容,性能測試等方面進行,根據軟件需求,設計文檔,模擬客户場景隨系統進行實際的測試,這種測試技術是使用最多的測試技術涵蓋了測試的方方面面,可以考慮以下方面:
[3]
4.性能(Performance):正常使用的時間內系統完成一個任務需要的時間,多人同時使用的時候響應時間在可以接受範圍內。J2EE技術實現的系統在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了。如果在測試過程中發現性能問題,修復起來是非常艱難的,因為這常常意味着程序的算法不好,結構不好,或者設計有問題。因此在產品開發的開始階段,就要考慮到軟件的性能問題。
[3]
5.壓力測試(Stress):多用户情況可以考慮使用壓力測試工具,建議將壓力和性能測試結合起來進行。如果有負載平衡的話還要在服務器端打開監測工具 , 查看服務器CPU使用率,內存佔用情況,如果有必要可以模擬大量數據輸入,對硬盤的影響等等信息。如果有必要的話必須進行性能優化(軟硬件都可以)。這裏的壓力測試針對的是某幾項功能。
[3]