2009-01-13 49 views
10

對於C++,有很多很好的單元測試框架,但我找不到一個好的functional testing。有了功能測試,我的意思是觸及磁盤的東西,需要整個應用程序等。C/C++功能/系統測試的測試框架?

點情況:什麼樣的框架可以幫助測試是否您的I/O工作?我有一個手動滾動系統,它創建臨時文件夾,圍繞一堆數據進行復制,因此測試總是在相同的環境中完成,但在我花費更多時間在我的定製框架之前 - 是否有那裏已經有好的一個?

+0

你在哪個平臺上? – 2009-01-13 13:37:50

+0

目前的Windows和Linux。我目前的測試框架是針對.NET 2編寫的,適用於Mono工作的地方。 – Anteru 2009-01-13 16:14:01

回答

3

我從頭開始寫了三遍 - 兩次用於測試使用FIX協議交談的C++應用程序,一次用於GUI應用程序。

問題是,你需要模擬外界做適當的系統測試。我的意思是「你的代碼之外」 - 在你的應用程序之外。這涉及模擬最終用戶,外部實體,互聯網等。

我通常使用perl來編寫我的系統測試框架和測試,主要是因爲它很適合訪問各種操作系統設施,而正則表達式是一流的公民。

一些提示:確保您的日誌很容易解析,但詳細但不太詳細。有一個理智的默認配置。輕鬆「重置」應用程序 - 您需要在每次測試後完成。

我通常使用的方法是使某種「適配器」將應用程序與外部世界的通信轉換爲某些可執行文件的標準輸入/標準輸出。然後我在上面構建一個perl框架,然後測試用例使用框架。

2

下面我列出了一些我知道的工具和更大的測試應用程序。如果您提供有關您的平臺(操作系統等)的更多信息,我們可能會提供更好的答案。

對於您所需要的一部分,微軟提供了Application Verifier

應用程序驗證程序(AppVerifier)在測試應用程序用於與Microsoft Windows XP兼容的運行時驗證工具。該工具可用於在應用程序運行時測試各種已知的兼容性問題。本文詳細介紹了使用AppVerifier作爲應用程序開發和測試周期的有效補充的步驟。

應用程序驗證程序可用於測試低內存條件,其他低資源和其他API使用情況。

這個難題的另一部分是Microsoft Detours包,它可以用你自己的代碼替換API調用(對於難以設置的測試返回錯誤代碼很有用)。

Detours是一個用於在x86,x64和IA64機器上檢測任意Win32函數的庫。 Detours通過重寫目標函數的內存代碼來攔截Win32函數。 Detours軟件包還包含用於將任意DLL和數據段(稱爲有效內容)附加到任何Win32二進制文件的實用程序。

還有其他更大(也更昂貴)的綜合軟件包可用。 Borland製作Silk
自動軟件使得TestComplete。選擇其中一種工具可以滿足您的應用需求。
IBM/Rational提供了可在多種平臺上使用的Rational Functional Tester,並且功能豐富。

+0

與Detours相提並論的是,儘管v2.1是免費的,但它僅適用於研究,非商業,非生產。 3.0版本取消了這些限制,但花費9,999美元 - 如果您不知道它是否滿足您的需求,則需付出沉重的承諾。 – 2011-07-05 21:05:14

0

您好我不確定我們的框架是否有助於您的情況,但它會掛鉤到Rational Functional Tester中,並允許用戶創建各種數據集以附加到不同的測試並更改環境而無需更改腳本和重用以有效的方式實現自動化。 看看你的興趣: http://www.testpro.com.au/Test-Automation-Framework.html