發布時間:2020-06-15
在白盒測試方法中,測試人員已經了解了系統內部的構造,并清晰地知道系統是如何實現的。 軟件測試人員利用這些知識去開發測試用例,以用來檢查控制流,信息流,數據流,異常和錯誤處理和系統的編碼實踐等,這種方法稱為白盒測試。
白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基于代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的。“白盒”法全面了解程序內部邏輯結構,對所有邏輯路徑進行測試。
白盒測試工具一般是針對代碼進行測試,測試中發現的缺陷可以定位到代碼級,根據測試工具原理的不同,又可以分為靜態測試工具和動態測試工具。靜態測試工具直接對代碼進行分析,不需要運行代碼,也不需要對代碼編譯鏈接,生成可執行文件。
靜態測試工具一般是對代碼進行語法掃描,找出不符合編碼規范的地方,根據某種質量模型評價代碼的質量,生成系統的調用關系圖等;動態測試工具與靜態測試工具不同,動態測試工具的一般采用“插樁”的方式,向代碼生成的可執行文件中插入一些監測代碼,用來統計程序運行時的數據。其與靜態測試工具最大的不同就是動態測試工具要求被測系統實際運行。
評估一個測試工具的好壞,采用評估標準不同,所站的角度不同,評估結果大相徑庭。所謂每個人的心中都有桿稱,讓測試人員選工具,他會站在測試的角度去選擇,會更注重白盒測試能做得下去,之后才有興趣深入去做,如果讓質量人員去選,他會側重于質量保障環節,比如非常看重覆蓋率評估、測試報告提交等,但如果讓企業老板選工具,恐怕他首先考慮的是這個工具的價格。所以,測試工具的選型過程,必然是各種因素綜合考慮的權衡過程。進行公正的工具選型首要問題是:如何選擇評估要素并賦予不同的權重,套用一句規范術語,我們先建模,確定評估模型,再按條目打分作決策。
由于白盒工具的核心功能比較確定,都離不開寫腳本做測試,要打樁、構造測試數據、看覆蓋率等,所以,鑒于本領域的特殊性,我們不必按功能逐項評估,只需評價這些功能服務于“測試效率提升”、“工具易用性”、“對質量保證的促進”的能力如何就可以了。
常用的白盒測試工具匯總:
Jtest:是一個代碼分析和動態類、組件測試工具,是一個集成的、易于使用和自動化的Java單元測試工具。它增強代碼的穩定性,防止軟件錯誤。
Jcontract:Jcontract在系統級驗證類/部件是否正確工作并被正確使用。Jcontract 是個獨立工具,在功能上是Jtest 的補充。可以用Jcontract插裝按DbC注解的Java代碼。當您將類/部件組裝成系統時,Jcontract 在運行時監視并報告錯用和功能性問題。Jcontract 幫助每個開發人員有效地考核類/部件的系統級行為。
CodeWizard 代碼靜態分析工具,先進的C/C++源代碼分析工具,使用超過500 個編碼規范自動化地標明危險的,但是編譯器不能檢查到的代碼結構。
Insure++是一個基于C/C++的自動化的內存錯誤、內存泄漏的精確檢測工具。 Insure++能夠可視化實時內存操作,準確檢測出內存泄漏產生的根源。Insure++還能執行覆蓋性分析,清楚地指示那些代碼已經測試過。
BoundsChecker Visual C++ Edition 是針對Visual C++開發人員的首選的運行時的錯誤檢測和調試工具。它通過駐留在Visual C++ 開發環境內部的自動調試處理程序來加速應用程序的開發,縮短產品發布的時間。BoundsChecker 對于編程中的錯誤,大多數是 C++中特有的提供了清晰的詳細的分析。它能夠檢測和診斷出在靜態,堆棧內存中的錯誤以及內存和資源泄漏問題。在運行狀態下,BoundsChecker 驗證超過 8,700 APIs 和 OLE 方法,包括最新的 Windows APIs, ODBC,ActiveX,DirectX, COM 和 Internet APIs。
CodeAnalyzer(簡稱CA)是上海澤眾軟件科技有限公司自主研發的專業代碼質量管理的代碼審查軟件,用于實現靜態分析、代碼走查、代碼規范檢查以及代碼潛在錯誤分析的白盒測試工具,它是一種脫離編譯器的代碼靜態分析軟件產品。
推薦閱讀:
您的信息已成功提交!
我們的客服人員稍后會與您聯系