白盒測試之應用
京東零售測試採購平臺測試組開展白盒測試工作已將近一年,測試了多個銷量預測項目,因銷量預測系統主要是針對預測模型的測試,黑盒測試無法覆蓋,引入白盒測試,語句覆蓋率和分支覆蓋率均達到90%以上,得到研發同事的認可及好評。下面就如何開始白盒測試進行了總結,希望能夠和大家共同探討並學習。
什麼是白盒測試?
白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於代碼的測試,其測試對象是軟件源代碼。
白盒測試是一種測試設計方法,是相對“黑盒”而言,黑盒意思是將被測軟件當做完全不知內部結構內容情況的整體對待,白盒指的是被測軟件內部邏輯結構、數據結構完全可知,可將被測軟件拆解爲更細粒度的軟件代碼對象。"白盒"測試設計方法可全面瞭解程序內部邏輯結構、對所有邏輯路徑進行測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯着手,得出測試數據。
白盒測試原理?
檢查軟件代碼的語句、分支、數據、接口、架構的各種實現細節,將軟件代碼具體實現對照所應完成的功能、性能等指標進行驗證,查找軟件代碼實現的缺陷。
白盒測試方法?
白盒測試的測試方法有代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。
設計測試用例的思路主要分爲邏輯覆蓋和數據域覆蓋。其中邏輯覆蓋包括語句覆蓋、分支覆蓋、條件覆蓋、MC/DC 覆蓋和路徑覆蓋。五種覆蓋要求呈由弱到強的變化:
1.語句覆蓋每條語句至少執行一次。
2.分支覆蓋每個分支至少執行一次。
3.條件覆蓋每個判斷條件應取到各種可能的值。
4.MCDC 覆蓋每個判斷條件需獨立影響分支結果至少一次。
5.路徑覆蓋使程序中每一條可能的路徑至少執行一次。
如何開始白盒測試?
1、瞭解需求——可以先把軟件的用戶需求說明書,概要設計說明書,詳細設計說明書等相關的文檔拿過來,先好好的看懂,明白系統要實現什麼樣的邏輯功能,瞭解掌握程序實現的組織結構及細節;
2、測試用例設計——可以選擇一種覆蓋類型爲線索來設計測試用例;
3、測試數據準備——瞭解測試用例要用到哪些輸入數據,輸出要求是什麼;
4、編寫測試代碼——將測試用例轉換成可執行的代碼;
5、測試用例執行——針對java 語言的白盒測試,可以用白盒測試工具如junit執行測試;
6、測試結果分析——如果執行測試用例的過程中遇到實際結果和預期結果不符合,則需要深入分析測試結果,找到並解決錯誤;
7、迴歸測試——針對已經修復bug 後的源碼,進行整體的迴歸測試;
8、發佈測試報告。