Parasoft C/C++ test 自動化用戶指南(二十三):用測試開始和停止信息對結果進行注釋
Parasoft C/C++test針對C/C++開發的專業白盒自動化測試方案,能有效提高軟件開發效率和代碼質量。C++test 可以進行靜態分析,全面代碼審查,運行時錯誤檢測,并在單元測試和組件測試中集成覆蓋率分析。
在 Parasoft C/C++test 中,可以使用測試開始/停止信息注釋代碼覆蓋率結果,以了解特定測試場景如何影響代碼執行。測試開始通知傳達有關測試名稱的信息,可在處理測試數據和生成報告時使用。
測試開始/停止注釋功能可作為 API 使用,并且可以擴展到許多不同的場景。例如,可以將代碼覆蓋率結果與單元測試相關聯,或者將代碼覆蓋率結果與系統測試期間執行的手動測試場景相關聯。
使用測試啟動/停止 API
API包括以下功能:
- void CDECL_CALL CppTest_TestStart(const char* testName) - 向結果流發送關于具有指定名稱的測試開始的通知
- void CDECL_CALL CppTest_TestStop(void) - 向結果流發送關于先前開始的測試結束的通知。
在將調用 API 函數的源文件中包含一個專用的頭文件:
#include "cpptest/cpptest.h"
|
編譯源文件時使用-I選項指定cpptest.h頭文件位置:
-I <Installation Directory>/runtime/include
|
指定一個有效的字符串作為CppTest_TestStart function. 空指針或無效字符串將導致未定義的行為。
測試啟動/停止場景的常見應用
以下場景說明了測試啟動/停止通知 API 的用法。
使用單元測試用例名稱注釋覆蓋結果
在這種情況下,單元測試用例名稱用作指定給CppTest_TestStart函數調用的參數。對于一些流行的 C/C++ 單元測試框架,提供了專用連接器來自動執行此任務。
要使用沒有專用連接器的單元測試框架,您可以在測試用例的開頭和結尾調用啟動/停止 API 函數:
#include "cpptest/cpptest.h"
TEST(TimerTest, smokeTest) {
const char * tcName = testCaseName();
CppTest_TestStart(tcName);
int res = init_timer();
ASSERT_TRUE(res != 0);
CppTest_TestStop();
}
|
使用系統測試會話的手動測試場景名稱注釋覆蓋結果
有幾種方法可以實現這個目標:
- 對測試啟動/停止 API 的調用可以直接添加到測試源。它們可以在被測試應用程序的調試或測試版本中使用專用宏激活。向 API 函數調用提供測試場景名稱的方法取決于應用程序的類型。在某些情況下,您可以向測試應用程序的菜單添加一個特殊選項,該選項僅在調試版本或命令行中可見。這將使您能夠指定執行的測試場景的名稱,并在輸入名稱后將通知發送到結果流。
- 在啟動測試應用程序之前,還可以從環境變量集中讀取測試用例的名稱。
- 使用作為獨立線程實現的特殊模塊,該線程與測試應用程序的線程并行啟動。例如,該模塊可以偵聽 TCP/IP 套接字,并在從外部工具發送測試啟動/停止命令時做出反應。
Parasoft——領先的自動化測試工具,滿足絕大多數行業標準
Parasoft是一家專門提供軟件測試解決方案的公司,幫助企業打造無缺陷的軟件。
從開發到質量檢查,Parasoft的技術通過集成靜態和運行時分析,單元、功能和API測試,以及服務虛擬化,在不犧牲質量和安全性的情況下加快軟件交付,節約交付成本。
強大的報告和分析功能可幫助用戶快速查明有風險的代碼區域,并了解新代碼更改如何影響其軟件質量,而突破性的技術將人工智能和機器學習添加到軟件測試中,使組織更容易采用和擴展跨開發和測試團隊的有效的軟件測試實踐。
Parasoft針對C/C++、Java、.NET和嵌入式的開發測試都有著30多年的深入研究,很多全國500強企業使用Parasoft的產品實現了軟件快速、高質量的交付。
獲取Parasoft資料或申請試用可加QQ:2867205852