Parasoft C/C++test is a unified, fully-integrated testing solution that helps users identify defects earlier in the development process. Parasoft C/C++test is the best tool on the market for reducing the burden of achieving compliance with security, functional safety, and coding standards such as MISRA, CERT, ISO 26262, DO-178B/C, IEC 61508, IEC 62304, and AUTOSAR.
靜態分析
-
提高團隊開發效率 — 應用一套全面的最佳實踐集合以縮減測試時間,降 低測試難度,和減少到達 QA 階段的缺陷數量。
-
優化團隊開發資源的配置 — 自動地審查已知的代碼問題,以便有更多的 時間可以被用于需要人類智慧的地方。
-
建立更可靠的代碼庫 — 高效地構建,并可持續地執行,和維護一個全面的 回歸測試套件,用于檢測更新是否破壞了既有的功能。
-
讓 C 和 C++ 代碼質量和進度可視化 — 獲取對用于實現需求代碼的評估 ,并跟蹤其過程以實現質量和進度的目標。
-
降低項目成本 — 自動對廣泛的潛在用戶路徑進行測試以查找出只有在真 正使用時才能發現的問題。
應用案例
跟蹤指標
可配置的詳細報告
C++test 的 HTML, PDF 和自定義格式的報告可以通過 GUI 控件或一個選項文件來配置。標準報告包括有通過 /失敗的代碼分析和測試結果的概要,已分析文件的列 表,和一個代碼覆蓋率概要。 此報告可以進行自定義,以
包括活動的靜態分析檢查的清單, 具有單獨測試的通過 /失敗狀態的擴展測試輸出, 對于關鍵指標的趨勢圖參 數,和用顏色表明的所有代碼覆蓋率結果的完整代碼清單 。 生成的報告可以根據各種角色的過濾器通過郵件被自
動地發送。除了直接提供數據給負責缺陷所標記代碼的 開發人員, C++test 也發送概要報告給管理人員和團隊 負責人。
高效的團隊部署
通過自動化任務 安排 和分配使缺陷審查和糾正更加容易。每個檢測到的缺陷通過區分優先順序,被安排給相應編寫這部分代碼的開發人 員,并分配完整數據和代碼的交叉鏈接到他的或她的 IDE
中。為了幫助管理人員評估和記錄趨勢,集中化的報告能夠 確保對質量狀態和過程實時監控。這些數據同樣幫助確定是否需要進一步的行動以滿足內部目標或證明策略的遵從性。
應用案例
宿主(開發)環境
在宿主機,模擬器和目標機上測試
C++test 自動化實施完整的測試執行流程, 包括測試用例生 成,交叉編譯,部署,執行,和加載結果 (包括覆蓋率指標) 返回到 GUI 中。可以為自動的測試執行來從 GUI 或命令行交互地驅 動測試,
以及批處理回歸測試。在交互模式中, 為了方便調試 或驗證用戶可以單獨地或在選中的組中運行測試。 對于批處 理執行,用戶可以針對指定的代碼,它們的名稱或者在磁盤 上的位置來執行測試。
高度的可定制化
C++test 允許用戶完全自定義測試執行流程。除了使用內建 的自動化測試以外,用戶可以包含自定義的測試腳本和 shell 命令來使工具符合他們具體的構建和測試環境。
通過交叉編譯為預期的目標環境所提供的運行時庫,C++test 可以被廣泛的用于多種嵌入式操作系統和結構體系。C++test 的所有測試中間產物的源代碼都可見,因此完全可以移植。
應用案例
獨特優勢
Windows
-
在不執行程序的情況下識別運行時缺陷
-
自動化代碼分析,增強兼容性
-
支持嵌入式和跨平臺開發
-
提高團隊代碼走查的效率和全面性
-
為即時驗證和回歸測試提供自動化單元及組件測試
-
充分集成WindRiver Workbench和 ARM RVDS的C++test插件
-
可高度自定義
支持的環境
主機平臺
-
Windows
-
Linux
-
Solaris UltraSPARC
IDE
-
Eclipse IDE for Developers
-
Microsoft Visual Studio
-
Wind River Workbench
-
ARM Workbench IDE for RVDS
-
ARM Development Studio
-
QNX Momentics IDE (QNX Software Development Platform)
-
Texas Instruments Code Composer Studio
IDE的項目導入支持
-
ARM ADS
-
Green Hills MULTI
-
IAR Embedded Workbench
-
Keil μVision IDE
-
Keil RealView
-
Microsoft eMbedded Visual C++
-
Microsoft Visual Studio
-
Texas Instruments Code Composer
-
Wind River Tornado
目標/交叉編譯器
-
Altera NIOS GCC
-
ADS (ARM Development Suite)
-
ARM for Keil μVision
-
ARM RVCT
-
ARM DS-5 GNU Compilation Tools
-
Cosmic Software 68HC08
-
eCosCentric GCC
-
Freescale CodeWarrior C/C++ for HC12
-
Fujitsu FR Family SOFTUNE
-
GCC (GNU Compiler Collection)
-
Green Hills MULTI for V800
-
IAR C/C++ for ARM
-
IAR C/C++ for MSP430
-
Keil C51
-
Microsoft Visual C++ for Windows Mobile
-
Microsoft Embedded Visual C++
-
National Instruments LavWindows/CVI 2015 Clang C/C++ Compiler
-
QCC (QNX GCC)
-
Renesas RX C/C++
-
Renesas SH SERIES C/C++
-
STMicroelectronics ST20
-
STMicroelectronics ST40
-
TASKING 80C196 C
-
TASKING TriCore VX-toolset C/C++
-
TI TMS320C2x/C2xx/C5x
-
TI TMS320C2000 C/C++
-
TI TMS320C54x C/C++
-
TI TMS320C55x C/C++
-
TI TMS320C6x C/C++
-
TI MSP430 C/C++
-
Wind River GCC
-
Wind River DIAB
構建管理
-
GNU make
-
Sun make
-
Microsoft nmake
源代碼控制
-
AccuRev SCM
-
Borland StarTeam
-
CVS
-
Git
-
IBM Rational ClearCase
-
IBM Rational Synergy
-
Microsoft Team Foundation Server
-
Microsoft Visual SourceSafe
-
Perforce SCM
-
Serena Dimensions
-
Subversion (SVN)
Parasoft C/C++test申請免費試用
在不執行程序的情況下識別運行時缺陷
C++test BugDetective 通過靜態模 擬程序執行路徑, 可跨越多個函數和 文件, 從而找到運行時缺陷。查找到 的缺陷包括使用未初始化的內存, 空 指針引用, 除零, 內存和資源泄漏。 這些通過常規靜態分析所忽略的缺陷, 可高亮顯示其執行路徑。
對未經健壯性測試的遺留代碼 或基于某些嵌入式系統的代碼( 運 行時分析是無效或不可能實現 的),BugDetective的這種在執行 代碼前就定位缺陷的能力對用戶是 非常有用的。
自動化代碼分析以增強兼容性
一套行之有效的編碼策略能夠降低整 個程序中的錯誤,C++Test通過建立一 系列編碼規范進而通過靜態分析來檢測兼 容性并預防代碼錯誤。對C++test進行配 置用戶可以對特定團隊或組織進行編碼標 準策略增強,同時用戶可以在內建和自定 義規則中定義自己的規則集。C++test提 供800多條的內建規則,包括從MISRA, JSF, Ellemtel, Meyers's EffectiveC++和 EffectiveSTL等書中以及其它的一些主 流資源中提取的編程建議,識別代碼中 因C/C++使用不當而存在潛在缺陷,提 供最佳編碼建議以提高代碼的可維護性和 可重用性。使用圖形化的RuleWizard編 輯器制訂的自定義規則能將API使用標準 化并預防單個錯誤發現后類似錯誤重復出 現。
支持嵌入式和跨平臺開發
針對嵌入式和跨平臺開發,C++test 可以用于基于宿主環境和目標環境的代碼 分析和測試流。在宿主環境中,開發者通 過使用編碼策略增強,靜態代碼分析,全 面代碼審查,單元、組件測試以及回歸測 試來檢測代碼。測試過程中依賴外部環境 的代碼將被樁函數替換,樁函數模擬真實 運行環境,而不需要訪問相關硬件或軟 件。
通過宿主環境的擴展測試,C++test 允許用戶在目標硬件尚未構建好或不可用 于測試的情況下,針對已經完成的代碼進 行驗證。正是因為如此,應用程序邏輯上 的大多數問題能夠在早期就被發現,這時 發現并且修復是最方便和迅捷的,從而使 目標環境的測試能夠著重于驗證軟硬件的 接口方面的問題。此外,宿主環境中,自 動化運行和維護更易于進行,使開發者能
夠檢查獨立于平臺的代碼的正確性而不必 使用其它附加的嵌入式開發工具。
當開發者準備在仿真器或實際目標環 境上測試時,這些此前生成和改善的測試 套件又能被重用于在目標平臺上驗證代碼 的功能性。在系統集成測試時,之前使用 的樁函數被實際代碼和系統接口替換,該 過程不需要更改任何測試代碼。C++test
在執行過程中,通過自動捕捉測試結果, 然后把這些結果轉為“黃金”數據集,以用 于后續的回歸測試。
C++test使整個測試執行流程自動 化,包括生成測試用例,交叉編譯,配 置,執行和向GUI中導入結果(包括覆蓋 率信息)。測試過程可以在GUI中交互進 行,或在命令行中自動執行以及用回歸測 試的批處理方式。在交互模式下,用戶可 以選擇單個測試對象或者選擇一組測試對 象進行測試以方便檢查和調試。在批處理 模式下,用戶可按照被鏈接的用戶代碼, 名字或磁盤中的位置幾種分類來進行測 試。
這種靜態分析方法消除了在同行代碼 走查過程中逐行檢查代碼的必要性,使走 查過程能夠注重于檢查算法,設計和自動 工具檢查不到的隱藏錯誤。
提高團隊代碼走查的效率和全面性
這種創新性的代碼走查模塊使同行代碼走查工作的準備,提示和跟蹤都自動完成,并根據豐富的開發實踐來定位其中已知的不足之處。通過掃描源碼控制系統,C++test能自動識別更新過的代碼,根據指定的代碼走查者匹配對應代碼,跟蹤進程中的所有走查直到結束。使用CodeReview模塊,開發團隊能建立一個堅固的走查進程以使所有的新代碼都能被檢查到并使所有檢查到的代碼得到處理。
為即時驗證和回歸測試提供自動化 單元及組件測試
C++test的自動化測試過程能夠幫助用戶確保新代碼和既有代碼的正確性和可靠性。C++test為單個函數生成基于CppUnit格式的測試驅動和測試用例,這些自動生成的測試用例能檢查出函數在未知輸入情況下的表現,發現潛在的可靠性方面的問題。為了驗證代碼的功能是否正確,用戶可以通過對生成的測試用例添加附加測試的方式進行擴展或者通過手動測試向導來完成。用戶可以通過多種測試覆蓋率分析工具(包 括語句, 分支, 路徑和MC/DC覆蓋率)來對測試效果和完整性進行計算,并與測試的兼容性和有效性要求(如DO178B)進行印證。這種自動測試能力對自動化持續集成與測試以及同步測試開發的支持是極其有用的。
C++test還能幫助用戶開發健壯的回歸測試套件以檢測代碼改變是否會破壞程序的既有功 能。無論是對大量的既有代碼庫還是一小段剛完成的代碼亦或是其他介于兩者之間的代碼, C++test都能通過測試斷言來捕捉已有軟件行為進而生成測試。隨著代碼庫的增加,C++test 會不斷返回這些測試并將當前的結果和原始捕獲的數據集進行比較。用戶可以方便的配置 C++Test以使用不同的執行設置,測試用例和樁進而支持對不同內容的測試(如:不同的持續 集成階段,對未完成的系統進行測試或測試已完成系統的某個特定部分)。這種回歸測試對發 布周期緊迫,功能需求持續擴展而又難以測試的應用程序而言是相當關鍵的。
可高度自定義
在使用內建自動化測試時, C++test允許完全自定義測試執 行順序。用戶除了可以使用內建 的自動化測試外, 還可以將
shell命令和自定義的測試腳本混 合使用以使C++test能夠在某些 特殊構造和測試環境中運行。 C++test運行時的庫文件也能進
行自定義并交叉編譯以支持各種 目標操作系統。這種非凡的靈活 性可以使用戶不受預設工具性能 的限制而實現他們預期的測試流 程。
WindRiver®Workbench和 ARM®RVDS的C++test插件
C++test 可以充分集成于 WindRiver® Workbench 和 ARM®RVDS,從而使用戶在相 應IDE環境下就能使用C++test 的全代碼分析和單元測試功能。 完整的基于目標環境的測試流程 (包括生成測試用例,交叉編 譯,配置,執行和在GUI環境中 導入結果) 可以通過與 Workbench 和RVDS的接口自 動進行并按照用戶化需求進行配 置。測試能通過Workbench和 RVDS調試器進行調試。
功能:
- 根據用戶選定的編碼規范對代碼做靜態分析來增強兼容性
- 提供一個圖形化的RuleWizard編輯器來定制用戶編碼規則
- 對代碼路徑做靜態模擬以定位潛在運行時錯誤
- 提供圖形化接口和動態跟蹤使代碼走查自動化
- 自動生成并執行單元和組件級的測試
- 靈活的樁函數機制
- 完全支持回歸測試
- 代碼高亮顯示的代碼覆蓋率分析
- 使用圖形或命令行方式進行全面團隊部署
支持的環境
平臺
- Windows NT/2000/XP
- Linux kernel 2.4 or 2.6 or higher with glibc 2.2 or higher and anx86-compatible processor
- Linux kernel 2.6 or higher with glibc 2.3 or higher and an x86_64-compatible processor (32-bit compatibility package is required)
- Solaris 7, 8, 9, 10 and an UltraSPARC processor
提供的IDE插件
- Eclipse 3.1, 3.2 (32-bit), 3.3 (32-bit)
- Visual Studio .NET 2003 and 2005
- Wind River Workbench 2.6 (for embedded development)
- ARM RVDS 3.x (for embedded development)
宿主編譯器
- Windows: Microsoft Visual C++ 6.0, .NET, .NET 2003, or 2005,
- GCC 2.95.x, 3.2.x, 3.3.x, 3.4.x; Green Hills MULTI for Windows x86 Native v4.0.x
- Linux (x86 processor): GCC 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x Linux (x86_64 processor): GCC 3.4.x, 4.0.x, 4.1.x
- Solaris: GCC 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x, Sun C++ 5.3 (Sun Forte C++ 6 Update 2), Sun C++ 5.5 (Sun ONE Studio 8), Sun C++ 5.6 (Sun ONE Studio 9), Sun C++ 5.7 (Sun ONE Studio 10) Sun C++ 5.8 (Sun ONE Studio 11); Green Hills MULTI for SPARC Solaris Native v4.0.x
目標編譯器
- Wind River: EGCS-2.90, GCC-2.96, GCC 3.4.x and DIAB 5.4+
- GCC 2.95.x - 4.1.x cross-compilers
- Green Hills 4.0.x
- ARM: ADS 1.2, RVCT 3.0, RVCT 3.1