關于白盒測試 軟件測試
一、白盒測試的定義
白盒測試定義:白盒測試也稱結構測試或邏輯驅動測試,是一種測試用例設計方法,它從程序的控制結構導出測試用例。
二、白盒測試的重要性
1、時間方面
影響系統集成聯調,花費大量的時間去定位一些很低級的問題
2、測試效果
能夠將集成測試和系統測試不能發現的問題暴露出來
3、測試成本
測試成本和定位問題成本
4、產品質量
產品質量要求較高的模塊
三、白盒測試評估
1、測試完備性評估,主要檢查測試過程中是否已經執行了所有的測試用例,對新增的測試用例是否已及時更新測試方案等。
2、代碼覆蓋率評估,主要是根據代碼覆蓋率工具提供的語句覆蓋情況報告,檢查是否達到方案中的要求,公司要求語句覆蓋達到100%。但很多情況下,第一輪測試用例執行完后是很難達到的,這時在評估過程中要對覆蓋率進行分析,主要從以下方面來考慮:
1)不可能的路徑或條件
2)不可達的或冗余的代碼
3)不充分的測試用例
3、從覆蓋的角度看,測試應該覆蓋:
1)功能覆蓋
2)輸入域覆蓋
3)輸出域覆蓋
4)函數交互覆蓋
5)代碼執行覆蓋
大多數有效的測試用例都來自于分析,而不是僅僅為了達到測試覆蓋率目標而草率設計測試用例。千萬不要誤解測試覆蓋,測試覆蓋并不是我們最求的目的,它只是評價測試的一種方式,為測試提供指導和依據。
四、白盒測試技術中的邏輯覆蓋
一個或者多個條件組成一個判定,一個程序中可以有多個判定。
首要的是建立一個二維的真值表,各列為判定和條件,各行為每組值的T或者F。
1、語句覆蓋
為了暴露程序中的錯誤,至少每個語句應該執行一次。
這也是最弱的邏輯覆蓋標準咯。
2、判定覆蓋
每個判定的每種可能結果都要執行一次。
建立判定表以后,要保證每種判定的結果中都包含了T和F,才滿足判定覆蓋。
3、條件覆蓋
不但每個語句需要執行一次,而且判定表達式中的每個條件都要取到可能的結果。
建立判定表以后,要保證每種條件的結果中都包含了T和F,才滿足條件覆蓋。
4、判定/條件覆蓋
使得每個判定以及每個判定中的每個條件都取到可能的結果。
建立判定表以后,要保證每個判定結果包含T和F,而且每種條件的結果包含T和F。
也就是綜合了上面的條件覆蓋和判定覆蓋。
5、條件組合覆蓋
使得每個判定中的條件的各種組合至少出現一次。
也就是說,先把程序中的條件列出來,排列組合,寫出所有的可能性,看有沒有那組值同時滿足這些排列組合。
6、路徑覆蓋
每條可能的路徑都至少執行一次。
就是看源程序中的判斷,都有哪些組合,比如T ,FF,FT,等等,看看哪個滿足包含了所有的組合。
因為這些不同的組合就代表了程序中執行的不同路徑。
文章來源于領測軟件測試網 http://www.kjueaiud.com/