白盒測試工具一般是針對代碼進行測試,測試中發現的缺陷可以定位到代碼級,根據測試工具原理的不同,又可以分為靜态測試工具和動态測試工具。靜态測試工具直接對代碼進行分析,不需要運作代碼,也不需要對代碼編譯連結,生成可執行檔案。靜态測試工具一般是對代碼進行文法掃描,找出不符合編碼規範的地方,根據某種品質模型評價代碼的品質,生成系統的調用關系圖等;動态測試工具與靜态測試工具不同,動态測試工具的一般采用“插樁”的方式,向代碼生成的可執行檔案中插入一些監測代碼,用來統計程式運作時的資料。其與靜态測試工具最大的不同就是動态測試工具要求被測系統實際運作。
(1) Jtest
是一個代碼分析和動态類、元件測試工具,是一個內建的、易于使用和自動化的Java單元測試工具。它增強代碼的穩定性,防止軟體錯誤。
(2) Jcontract
Jcontract在系統級驗證類/部件是否正确工作并被正确使用。Jcontract 是個獨立工具,在功能上是Jtest 的補充。可以用Jcontract插裝按DbC注解的Java代碼。當您将類/部件組裝成系統時,Jcontract 在運作時監視并報告錯用和功能性問題。Jcontract 幫助每個開發人員有效地考核類/部件的系統級行為。
(3) C++ Test
C++Test可以幫助開發人員防止軟體錯誤,保證代碼的健全性、可靠性、可維護性和可移植性。C++Test自動測試C和C++類、函數或元件,而無需編寫單個測試執行個體、測試驅動程式或樁調用。
(4) CodeWizard
CodeWizard 代碼靜态分析工具,先進的C/C++源代碼分析工具,使用超過500 個編碼規範自動化地标明危險的,但是編譯器不能檢查到的代碼結構。
(5) Insure++
Insure++是一個基于C/C++的自動化的記憶體錯誤、記憶體洩漏的精确檢測工具。 Insure++能夠可視化實時記憶體操作,準确檢測出記憶體洩漏産生的根源。Insure++還能執行覆寫性分析,清楚地訓示那些代碼已經測試過。
(6) .test
.TEST是專為.NET開發而推出的使用友善的自動化單元級測試與靜态分析工具。使用超過200條的工業标準代碼規則對所寫代碼自動執行靜态分析。這些規則立即應用.NET 工業專家深入、全面的程式設計知識到你的代碼當中,迅速、徹底地防止錯誤的出現。自動測試代碼構造與功能。 .TEST非常智能。他能提取剛完成的代碼,對其進行讀取,并提出如何對這些代碼進行單元測試,不需要任何的人為幹涉。所有由.TEST産生的單元測試都是可以使用者自定義的。
(7) BoundsChecker
BoundsChecker Visual C++ Edition 是針對Visual C++開發人員的首選的運作時的錯誤檢測和調試工具。它通過駐留在Visual C++ 開發環境内部的自動調試處理程式來加速應用程式的開發,縮短産品釋出的時間。BoundsChecker 對于程式設計中的錯誤,大多數是 C++中特有的提供了清晰的詳細的分析。它能夠檢測和診斷出在靜态,堆棧記憶體中的錯誤以及記憶體和資源洩漏問題。在運作狀态下,BoundsChecker 驗證超過 8,700 APIs 和 OLE 方法,包括最新的 Windows APIs, ODBC,ActiveX,DirectX, COM 和 Internet APIs。
(8) TrueTime
代碼運作緩慢是開發過程中一個重要問題。一個應用程式運作速度較慢,程式員不容易找到到底是在哪裡出現了問題,如果不能解決應用程式的性能将降低并極大的影響應用程式的品質,于是查找和修改性能瓶頸是調整整個代碼性能的關鍵。如何快速的查找性能瓶頸呢?TrueTime 的出現就使這個問題變得很容易了。當我們在測試程式時,每完成一次應用話路,TrueTime 都能提供這次對話中函數的調用時間,提供詳細的應用程式群組件性能的分析,并自動定位到運作緩慢的代碼。這樣就能幫助程式員盡快地調整應用程式的性能。TrueTime 支援C++, JAVA, Visual Basic語言環境。
(9) FailSafe
FailSafe是Visual Basic語言環境下的自動錯誤處理和恢複工具,FailSafe将插入額外的代碼對你的程式進行插裝,當程式執行時,FailSafe通過這些插裝的代碼捕獲、記錄錯誤資訊。(10) JcheckJcheck 是DevPartner Studio開發調試工具的一個元件,他使用事件調試技術,可以收集Java程式運作中準确的實時資訊。我們在Java程式中經常要使用線程,而關于線程的常見錯誤有死鎖、系統崩潰、同步問題等。JCheck 通過監視和分析目前記憶體中所有線程的運作狀況,找到出錯的根源,并且可以定位到具體是程式中的哪個方法出錯,錯誤位于程式的哪一行。
(11) TrueCoverage
TrueCoverage是一個代碼覆寫率統計工具,在開發過程中,對一個應用程式通過手工測試,總會有一部分代碼功能沒有被檢測到,或者說逐個檢測每一個函數的調用是相當費時間的;未被檢測的代碼我們不能保證它的可靠性,以後程式的失敗可能往往就是由這部分未檢測的代碼造成的。現在我們可以用TrueCoverage 來幫助我們解決這些問題,我們在測試程式時,每完成一次應用話路,TrueCoverage 就能夠列出在這次對話中所有函數被調用次數、所占比率等,并可以直接定位到源代碼,當然我們也可以合并多個應用話路來進行檢測。是以說TrueCoverage 能通過衡量和跟蹤代碼執行及代碼穩定性,幫助開發團隊節省時間和改善代碼可靠性。TrueCoverage支援C++, JAVA,Visual Basic語言環境。