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.
靜態(tài)分析
-
提高團(tuán)隊(duì)開發(fā)效率 — 應(yīng)用一套全面的最佳實(shí)踐集合以縮減測試時間,降 低測試難度,和減少到達(dá) QA 階段的缺陷數(shù)量。
-
優(yōu)化團(tuán)隊(duì)開發(fā)資源的配置 — 自動地審查已知的代碼問題,以便有更多的 時間可以被用于需要人類智慧的地方。
-
建立更可靠的代碼庫 — 高效地構(gòu)建,并可持續(xù)地執(zhí)行,和維護(hù)一個全面的 回歸測試套件,用于檢測更新是否破壞了既有的功能。
-
讓 C 和 C++ 代碼質(zhì)量和進(jìn)度可視化 — 獲取對用于實(shí)現(xiàn)需求代碼的評估 ,并跟蹤其過程以實(shí)現(xiàn)質(zhì)量和進(jìn)度的目標(biāo)。
-
降低項(xiàng)目成本 — 自動對廣泛的潛在用戶路徑進(jìn)行測試以查找出只有在真 正使用時才能發(fā)現(xiàn)的問題。
應(yīng)用案例
跟蹤指標(biāo)
可配置的詳細(xì)報告
C++test 的 HTML, PDF 和自定義格式的報告可以通過 GUI 控件或一個選項(xiàng)文件來配置。標(biāo)準(zhǔn)報告包括有通過 /失敗的代碼分析和測試結(jié)果的概要,已分析文件的列 表,和一個代碼覆蓋率概要。 此報告可以進(jìn)行自定義,以
包括活動的靜態(tài)分析檢查的清單, 具有單獨(dú)測試的通過 /失敗狀態(tài)的擴(kuò)展測試輸出, 對于關(guān)鍵指標(biāo)的趨勢圖參 數(shù),和用顏色表明的所有代碼覆蓋率結(jié)果的完整代碼清單 。 生成的報告可以根據(jù)各種角色的過濾器通過郵件被自
動地發(fā)送。除了直接提供數(shù)據(jù)給負(fù)責(zé)缺陷所標(biāo)記代碼的 開發(fā)人員, C++test 也發(fā)送概要報告給管理人員和團(tuán)隊(duì) 負(fù)責(zé)人。
高效的團(tuán)隊(duì)部署
通過自動化任務(wù) 安排 和分配使缺陷審查和糾正更加容易。每個檢測到的缺陷通過區(qū)分優(yōu)先順序,被安排給相應(yīng)編寫這部分代碼的開發(fā)人 員,并分配完整數(shù)據(jù)和代碼的交叉鏈接到他的或她的 IDE
中。為了幫助管理人員評估和記錄趨勢,集中化的報告能夠 確保對質(zhì)量狀態(tài)和過程實(shí)時監(jiān)控。這些數(shù)據(jù)同樣幫助確定是否需要進(jìn)一步的行動以滿足內(nèi)部目標(biāo)或證明策略的遵從性。
應(yīng)用案例
宿主(開發(fā))環(huán)境
在宿主機(jī),模擬器和目標(biāo)機(jī)上測試
C++test 自動化實(shí)施完整的測試執(zhí)行流程, 包括測試用例生 成,交叉編譯,部署,執(zhí)行,和加載結(jié)果 (包括覆蓋率指標(biāo)) 返回到 GUI 中??梢詾樽詣拥臏y試執(zhí)行來從 GUI 或命令行交互地驅(qū) 動測試,
以及批處理回歸測試。在交互模式中, 為了方便調(diào)試 或驗(yàn)證用戶可以單獨(dú)地或在選中的組中運(yùn)行測試。 對于批處 理執(zhí)行,用戶可以針對指定的代碼,它們的名稱或者在磁盤 上的位置來執(zhí)行測試。
高度的可定制化
C++test 允許用戶完全自定義測試執(zhí)行流程。除了使用內(nèi)建 的自動化測試以外,用戶可以包含自定義的測試腳本和 shell 命令來使工具符合他們具體的構(gòu)建和測試環(huán)境。
通過交叉編譯為預(yù)期的目標(biāo)環(huán)境所提供的運(yùn)行時庫,C++test 可以被廣泛的用于多種嵌入式操作系統(tǒng)和結(jié)構(gòu)體系。C++test 的所有測試中間產(chǎn)物的源代碼都可見,因此完全可以移植。
應(yīng)用案例
獨(dú)特優(yōu)勢
Windows
-
在不執(zhí)行程序的情況下識別運(yùn)行時缺陷
-
自動化代碼分析,增強(qiáng)兼容性
-
支持嵌入式和跨平臺開發(fā)
-
提高團(tuán)隊(duì)代碼走查的效率和全面性
-
為即時驗(yàn)證和回歸測試提供自動化單元及組件測試
-
充分集成WindRiver Workbench和 ARM RVDS的C++test插件
-
可高度自定義
支持的環(huán)境
主機(jī)平臺
-
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的項(xiàng)目導(dǎo)入支持
-
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
目標(biāo)/交叉編譯器
-
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
構(gòu)建管理
-
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申請免費(fèi)試用
在不執(zhí)行程序的情況下識別運(yùn)行時缺陷
C++test BugDetective 通過靜態(tài)模 擬程序執(zhí)行路徑, 可跨越多個函數(shù)和 文件, 從而找到運(yùn)行時缺陷。查找到 的缺陷包括使用未初始化的內(nèi)存, 空 指針引用, 除零, 內(nèi)存和資源泄漏。 這些通過常規(guī)靜態(tài)分析所忽略的缺陷, 可高亮顯示其執(zhí)行路徑。
對未經(jīng)健壯性測試的遺留代碼 或基于某些嵌入式系統(tǒng)的代碼( 運(yùn) 行時分析是無效或不可能實(shí)現(xiàn) 的),BugDetective的這種在執(zhí)行 代碼前就定位缺陷的能力對用戶是 非常有用的。
自動化代碼分析以增強(qiáng)兼容性
一套行之有效的編碼策略能夠降低整 個程序中的錯誤,C++Test通過建立一 系列編碼規(guī)范進(jìn)而通過靜態(tài)分析來檢測兼 容性并預(yù)防代碼錯誤。對C++test進(jìn)行配 置用戶可以對特定團(tuán)隊(duì)或組織進(jìn)行編碼標(biāo) 準(zhǔn)策略增強(qiáng),同時用戶可以在內(nèi)建和自定 義規(guī)則中定義自己的規(guī)則集。C++test提 供800多條的內(nèi)建規(guī)則,包括從MISRA, JSF, Ellemtel, Meyers's EffectiveC++和 EffectiveSTL等書中以及其它的一些主 流資源中提取的編程建議,識別代碼中 因C/C++使用不當(dāng)而存在潛在缺陷,提 供最佳編碼建議以提高代碼的可維護(hù)性和 可重用性。使用圖形化的RuleWizard編 輯器制訂的自定義規(guī)則能將API使用標(biāo)準(zhǔn) 化并預(yù)防單個錯誤發(fā)現(xiàn)后類似錯誤重復(fù)出 現(xiàn)。
支持嵌入式和跨平臺開發(fā)
針對嵌入式和跨平臺開發(fā),C++test 可以用于基于宿主環(huán)境和目標(biāo)環(huán)境的代碼 分析和測試流。在宿主環(huán)境中,開發(fā)者通 過使用編碼策略增強(qiáng),靜態(tài)代碼分析,全 面代碼審查,單元、組件測試以及回歸測 試來檢測代碼。測試過程中依賴外部環(huán)境 的代碼將被樁函數(shù)替換,樁函數(shù)模擬真實(shí) 運(yùn)行環(huán)境,而不需要訪問相關(guān)硬件或軟 件。
通過宿主環(huán)境的擴(kuò)展測試,C++test 允許用戶在目標(biāo)硬件尚未構(gòu)建好或不可用 于測試的情況下,針對已經(jīng)完成的代碼進(jìn) 行驗(yàn)證。正是因?yàn)槿绱?,?yīng)用程序邏輯上 的大多數(shù)問題能夠在早期就被發(fā)現(xiàn),這時 發(fā)現(xiàn)并且修復(fù)是最方便和迅捷的,從而使 目標(biāo)環(huán)境的測試能夠著重于驗(yàn)證軟硬件的 接口方面的問題。此外,宿主環(huán)境中,自 動化運(yùn)行和維護(hù)更易于進(jìn)行,使開發(fā)者能
夠檢查獨(dú)立于平臺的代碼的正確性而不必 使用其它附加的嵌入式開發(fā)工具。
當(dāng)開發(fā)者準(zhǔn)備在仿真器或?qū)嶋H目標(biāo)環(huán) 境上測試時,這些此前生成和改善的測試 套件又能被重用于在目標(biāo)平臺上驗(yàn)證代碼 的功能性。在系統(tǒng)集成測試時,之前使用 的樁函數(shù)被實(shí)際代碼和系統(tǒng)接口替換,該 過程不需要更改任何測試代碼。C++test
在執(zhí)行過程中,通過自動捕捉測試結(jié)果, 然后把這些結(jié)果轉(zhuǎn)為“黃金”數(shù)據(jù)集,以用 于后續(xù)的回歸測試。
C++test使整個測試執(zhí)行流程自動 化,包括生成測試用例,交叉編譯,配 置,執(zhí)行和向GUI中導(dǎo)入結(jié)果(包括覆蓋 率信息)。測試過程可以在GUI中交互進(jìn) 行,或在命令行中自動執(zhí)行以及用回歸測 試的批處理方式。在交互模式下,用戶可 以選擇單個測試對象或者選擇一組測試對 象進(jìn)行測試以方便檢查和調(diào)試。在批處理 模式下,用戶可按照被鏈接的用戶代碼, 名字或磁盤中的位置幾種分類來進(jìn)行測 試。
這種靜態(tài)分析方法消除了在同行代碼 走查過程中逐行檢查代碼的必要性,使走 查過程能夠注重于檢查算法,設(shè)計(jì)和自動 工具檢查不到的隱藏錯誤。
提高團(tuán)隊(duì)代碼走查的效率和全面性
這種創(chuàng)新性的代碼走查模塊使同行代碼走查工作的準(zhǔn)備,提示和跟蹤都自動完成,并根據(jù)豐富的開發(fā)實(shí)踐來定位其中已知的不足之處。通過掃描源碼控制系統(tǒng),C++test能自動識別更新過的代碼,根據(jù)指定的代碼走查者匹配對應(yīng)代碼,跟蹤進(jìn)程中的所有走查直到結(jié)束。使用CodeReview模塊,開發(fā)團(tuán)隊(duì)能建立一個堅(jiān)固的走查進(jìn)程以使所有的新代碼都能被檢查到并使所有檢查到的代碼得到處理。
為即時驗(yàn)證和回歸測試提供自動化 單元及組件測試
C++test的自動化測試過程能夠幫助用戶確保新代碼和既有代碼的正確性和可靠性。C++test為單個函數(shù)生成基于CppUnit格式的測試驅(qū)動和測試用例,這些自動生成的測試用例能檢查出函數(shù)在未知輸入情況下的表現(xiàn),發(fā)現(xiàn)潛在的可靠性方面的問題。為了驗(yàn)證代碼的功能是否正確,用戶可以通過對生成的測試用例添加附加測試的方式進(jìn)行擴(kuò)展或者通過手動測試向?qū)硗瓿伞S脩艨梢酝ㄟ^多種測試覆蓋率分析工具(包 括語句, 分支, 路徑和MC/DC覆蓋率)來對測試效果和完整性進(jìn)行計(jì)算,并與測試的兼容性和有效性要求(如DO178B)進(jìn)行印證。這種自動測試能力對自動化持續(xù)集成與測試以及同步測試開發(fā)的支持是極其有用的。
C++test還能幫助用戶開發(fā)健壯的回歸測試套件以檢測代碼改變是否會破壞程序的既有功 能。無論是對大量的既有代碼庫還是一小段剛完成的代碼亦或是其他介于兩者之間的代碼, C++test都能通過測試斷言來捕捉已有軟件行為進(jìn)而生成測試。隨著代碼庫的增加,C++test 會不斷返回這些測試并將當(dāng)前的結(jié)果和原始捕獲的數(shù)據(jù)集進(jìn)行比較。用戶可以方便的配置 C++Test以使用不同的執(zhí)行設(shè)置,測試用例和樁進(jìn)而支持對不同內(nèi)容的測試(如:不同的持續(xù) 集成階段,對未完成的系統(tǒng)進(jìn)行測試或測試已完成系統(tǒng)的某個特定部分)。這種回歸測試對發(fā) 布周期緊迫,功能需求持續(xù)擴(kuò)展而又難以測試的應(yīng)用程序而言是相當(dāng)關(guān)鍵的。
可高度自定義
在使用內(nèi)建自動化測試時, C++test允許完全自定義測試執(zhí) 行順序。用戶除了可以使用內(nèi)建 的自動化測試外, 還可以將
shell命令和自定義的測試腳本混 合使用以使C++test能夠在某些 特殊構(gòu)造和測試環(huán)境中運(yùn)行。 C++test運(yùn)行時的庫文件也能進(jìn)
行自定義并交叉編譯以支持各種 目標(biāo)操作系統(tǒng)。這種非凡的靈活 性可以使用戶不受預(yù)設(shè)工具性能 的限制而實(shí)現(xiàn)他們預(yù)期的測試流 程。
WindRiver®Workbench和 ARM®RVDS的C++test插件
C++test 可以充分集成于 WindRiver® Workbench 和 ARM®RVDS,從而使用戶在相 應(yīng)IDE環(huán)境下就能使用C++test 的全代碼分析和單元測試功能。 完整的基于目標(biāo)環(huán)境的測試流程 (包括生成測試用例,交叉編 譯,配置,執(zhí)行和在GUI環(huán)境中 導(dǎo)入結(jié)果) 可以通過與 Workbench 和RVDS的接口自 動進(jìn)行并按照用戶化需求進(jìn)行配 置。測試能通過Workbench和 RVDS調(diào)試器進(jìn)行調(diào)試。
功能:
- 根據(jù)用戶選定的編碼規(guī)范對代碼做靜態(tài)分析來增強(qiáng)兼容性
- 提供一個圖形化的RuleWizard編輯器來定制用戶編碼規(guī)則
- 對代碼路徑做靜態(tài)模擬以定位潛在運(yùn)行時錯誤
- 提供圖形化接口和動態(tài)跟蹤使代碼走查自動化
- 自動生成并執(zhí)行單元和組件級的測試
- 靈活的樁函數(shù)機(jī)制
- 完全支持回歸測試
- 代碼高亮顯示的代碼覆蓋率分析
- 使用圖形或命令行方式進(jìn)行全面團(tuán)隊(duì)部署
支持的環(huán)境
平臺
- 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
目標(biāo)編譯器
- 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