1. 程式人生 > >常用軟體測試工具介紹與分析

常用軟體測試工具介紹與分析



隨著軟體測試的地位逐步提高,測試的重要性逐步顯現,測試工具的應用已經成為了普遍的趨勢。目前用於測試的工具已經比較多了,測試工具的應用可以提高測試的質量、測試的效率、減少測試過程中的重複勞動、實現測試自動化,這些測試工具一般可分為白盒測試工具、黑盒測試工具、效能測試工具,另外還有用於測試管理的工具,本文對常用的測試工具 一個分析比較。

1、白盒測試工具

白盒測試工具一般是針對程式碼進行測試,測試中發現的缺陷可以定位到程式碼級,根據測試工具原理的不同,又可以分為靜態測試工具和動態測試工具。 靜態測試工具直接對程式碼進行分析,不需要執行程式碼,也不需要對程式碼編譯連結,生成可執行檔案。靜態測試工具一般是對程式碼進行語法掃描,找出不符合編碼規範的地方,根據某種質量模型評價程式碼的質量,生成系統的呼叫關係圖等;動態測試工具與靜態測試工具不同,動態測試工具的一般採用"插樁"的方式,向程式碼生成的可執行檔案中插入一些監測程式碼,用來統計程式執行時的資料。其與靜態測試工具最大的不同就是動態測試工具要求被測系統實際執行。

(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) Jcheck

Jcheck 是 DevPartner Studio 開發除錯工具的一個元件, 使用事件除錯技術,可以收集 Java程式執行中準確的實時資訊。我們在 Java 程式中經常要使用執行緒,而關於執行緒的常見錯誤有死鎖、系統崩潰、同步問題等。JCheck 通過監視和分析當前記憶體中所有執行緒的執行狀況,找到出錯的根源,並且可以定位到具體是程式中的哪個方法出錯,錯誤位於程式的哪一行。

(11) TrueCoverage

TrueCoverage 是一個程式碼覆蓋率統計工具,在開發過程中,對一個應用程式通過手工測試,總會有一 分程式碼功能沒有被檢測到,或者說逐個檢測每一個函式的呼叫是相當費時間的;未被檢測的程式碼我們不能保證它的可靠性,以後程式的失敗可能往往就是由這 分未檢測的程式碼造成的。現在我們可以用 TrueCoverage 來幫助我們解決這些問題,我們在測試程式時,每完成一次應用話路,TrueCoverage 就能夠列出在這次對話中所有函式被呼叫次數、所佔比率等,並可以直接定位到原始碼,當然我們也可以合併多個應用話路來進行檢測。所以說 TrueCoverage 能通過衡量和跟蹤程式碼執行及程式碼穩定性, 幫助開發團隊節省時間和改善程式碼可靠性。TrueCoverage 支援 C++, JAVA,Visual Basic 語言環境。

(12) SmartCheck

SmartCheck 是針對 Visual Basic 的主要的自動錯誤檢測和除錯工具。它能夠自動檢測和診斷 VB 執行時的錯誤,並將一些表達不清楚的錯誤資訊轉換為確切的錯誤描述。它的EventDebugging 特性為 Visual Basic 開發小組和獨立的開發人員解決最棘 的問題提供了簡便的方法。它可以進行致命錯誤的分析、相容性檢查、定位到原始碼。

不是 Visual Basic 中所有的問題都是執行時或系統的錯誤。許多的問題來自於未預期的程式流程的結果。如果沒有 EventDebugging,將問題分離出來是相當困難,甚至不可能的。當簡單的動 比如設定控制元件的屬性發生時,會觸發一些程式設計人員想象不到的事件的發生,從而使的錯誤檢測和除錯邊的更加複雜。SmartCheck 顯示使用時的屬性,方法和事件以便於將這些事件驅動的問題隔離出來。SmartCheck EventDebugging 跟蹤事件以簡化錯誤的定位。舉個例子,SmartCheck 在事件被設定或只讀時將其方法和屬性全 顯示,連同由這些事件觸發的形式。

(13) CodeReview

對於 Visual Basic 開發人員來說,CodeReview 是最好的自動原始碼分析工具,它對應用程式的元件、邏輯、Windows 和 Vb 自身潛在的數百個問題進行嚴格地原始碼檢查。CodeReview 分析的型別包括 Y2K 問題,邏輯錯誤,應用程式效能和可用性問題,Windows API 呼叫和標準一致性問題等。可以檢測整個的 VB 工程或指定的模組,並能定製檢錯的種類;對檢測的結果有詳細的說明,提供幫助和推薦解決方案,而且能夠直接的連結到原始碼。CodeReview 系統還提供了兩個子模組,一個是 Metrics:通過對 VB 工程(vbp)的執行,計算出程式碼的長度、複雜度、理解度、語言的使用等級、出錯的可能性等資料;另一個是 Namer:它呼叫一個 VB 工程,自動並規則地對其中的物件重新命名,並備份原來沒有規則命名的工程檔案,使開發人員對程式能夠有條理地管理。