產(chǎn)品概述
德國(guó)QA Systems公司的Cantata是圍繞C/C++語(yǔ)言的特點(diǎn)而設(shè)計(jì)的,能夠滿足開發(fā)者進(jìn)行的單元和集成測(cè)試的需求。具有一整套包含單元和集成測(cè)試、獨(dú)特的AutoTest測(cè)試、覆蓋率分析、靜態(tài)分析、測(cè)試需求追蹤、代碼變更分析、Cantata Makefile等功能。
功能特性
●靈活的測(cè)試框架
靈活的測(cè)試框架(測(cè)試腳本和支持庫(kù))支持單元和可擴(kuò)展的集成測(cè)試的任何測(cè)試樣式組合。測(cè)試可以在GUI中直接編輯為C/C++代碼,在嵌入式目標(biāo)平臺(tái)和主機(jī)平臺(tái)上作為可執(zhí)行文件運(yùn)行。
●黑盒與白盒測(cè)試
高度自動(dòng)化測(cè)試用例的創(chuàng)建提供了黑盒測(cè)試的功效和精度,以及更有效的全面的白盒測(cè)試。通過用戶選擇的或預(yù)定義的參數(shù)化循環(huán)測(cè)試,針對(duì)大型數(shù)據(jù)集的組合效果計(jì)算器和CSV導(dǎo)入/導(dǎo)出,可以實(shí)現(xiàn)強(qiáng)大的黑盒測(cè)試。通過Cantata精確的白盒測(cè)試,直接從測(cè)試腳本自動(dòng)訪問封裝代碼,無需條件編譯,無需控制靜態(tài)、私有函數(shù)以及數(shù)據(jù)。
●健壯性測(cè)試
魯棒性(Robustness)測(cè)試能夠很容易地使用Cantata規(guī)則集對(duì)基本數(shù)據(jù)類型值進(jìn)行預(yù)定義,以循環(huán)測(cè)試用例的方式進(jìn)行。自動(dòng)檢查所有可訪問的全局?jǐn)?shù)據(jù)是否在無意中發(fā)生更改。
●面向?qū)ο蟮臏y(cè)試
Cantata面向?qū)ο鬁y(cè)試由測(cè)試方法、模板或類的集群來實(shí)現(xiàn)。 它們具有自動(dòng)化:
■通過并行繼承層次重用測(cè)試用例
■測(cè)試類繼承已繼承類的結(jié)構(gòu)
■具體實(shí)現(xiàn)抽象基類(ABCs)或純虛方法(PVM)
為了打破類依賴鏈并使C++隔離測(cè)試變得容易,Cantata自動(dòng)發(fā)現(xiàn)并解析未被測(cè)試軟件直接調(diào)用的未定義引用的依賴關(guān)系。
●AutoTest測(cè)試
Cantata 自動(dòng)測(cè)試生成完整的、可通過的單元測(cè)試腳本。測(cè)試用例向量可以在檢查數(shù)據(jù)、參數(shù)和調(diào)用順序時(shí)執(zhí)行100%的代碼覆蓋。自動(dòng)測(cè)試創(chuàng)建回歸單元測(cè)試的安全網(wǎng),以減少對(duì)昂貴系統(tǒng)測(cè)試的依賴,并自動(dòng)填補(bǔ)代碼覆蓋的缺口。
自版本9.0開始AutoTest功能已擴(kuò)展為支持C++,對(duì)C++03和早期C++版本的以下內(nèi)容也提供支持:
■C++具體與抽象基類
■重載和繼承
■名字空間和類
■異常處理
■在給定代碼中顯式實(shí)例化的模板
■混合的C&C++代碼庫(kù)
●獨(dú)特的調(diào)用控制
Cantata自動(dòng)生成測(cè)試控制,模擬(樁)和攔截(封裝)被測(cè)軟件的所有函數(shù)調(diào)用,提供:
■可選的自動(dòng)檢查參數(shù)和數(shù)據(jù)
■針對(duì)不同調(diào)用行為的多個(gè)實(shí)例
■每個(gè)測(cè)試用例中靈活的調(diào)用順序驗(yàn)證
■接口錯(cuò)誤檢測(cè)和錯(cuò)誤注入
■控制耦合測(cè)試

●需求追蹤
所有安全相關(guān)標(biāo)準(zhǔn)需求都要求測(cè)試用例或測(cè)試計(jì)劃的雙向可追溯性。需求或測(cè)試計(jì)劃集被導(dǎo)入到Cantata服務(wù)器,通過拖放界面分配關(guān)系,然后使用Cantata測(cè)試導(dǎo)出結(jié)果狀態(tài)和代碼覆蓋信息。
可以通過CSV、MicrosoftExcel?或需求交換格式(ReqIf)導(dǎo)入/導(dǎo)出。滿足您的工作流程和特定需求管理工具版本(例如IBM?Rational?DOORs?、PTCIntegrity?、Polarion?REQUIREMENTS?)。Cantata服務(wù)器還有一個(gè)完整的REST API。

●代碼覆蓋率
Cantata代碼覆蓋提供了測(cè)試用例執(zhí)行源代碼(無論是否由Cantata測(cè)試驅(qū)動(dòng))的客觀測(cè)量。自動(dòng)化數(shù)據(jù)報(bào)告對(duì)所需代碼覆蓋率級(jí)別的集成檢查,可以易于使用特定標(biāo)準(zhǔn)的Cantata覆蓋規(guī)則集。

代碼覆蓋率使用以下指標(biāo)衡量:
■入口點(diǎn)
■調(diào)用返回
■語(yǔ)句
■基本塊
■判定(分支)
■條件
■MC / DC(屏蔽法和原因法兩種)
■循環(huán)
■關(guān)系運(yùn)算符
針點(diǎn)型(Pin-point)診斷可以過濾或聚合完整項(xiàng)目代碼樹的覆蓋。通過測(cè)試用例、測(cè)試運(yùn)行、度量類型和代碼前后關(guān)系(繼承、線程、狀態(tài)、數(shù)據(jù)耦合等),下拉到單個(gè)代碼結(jié)構(gòu),進(jìn)入每行代碼中。自動(dòng)測(cè)試用例優(yōu)化有助于從大型數(shù)據(jù)集中選擇測(cè)試用例向量,并減少回歸測(cè)試消耗。
對(duì)于具有多個(gè)構(gòu)建變體(Build Variant)的C/C++代碼,Cantata使用預(yù)編譯定義區(qū)分不同的構(gòu)建變體,覆蓋率視圖顯示相同源代碼的多個(gè)構(gòu)建變體的集合數(shù)據(jù)。還可以生成包含所有定義的集合覆蓋率報(bào)告,適合作為源代碼所有構(gòu)建變體的證明證據(jù)
對(duì)于內(nèi)存較小的目標(biāo)平臺(tái),Cantata的覆蓋率延遲分析功能很有用,它把在目標(biāo)上收集的覆蓋數(shù)據(jù)傳遞回主機(jī),然后再運(yùn)行覆蓋檢查和報(bào)告。此項(xiàng)功能已經(jīng)包含在SGS-TüV SAAR GmbH的工具認(rèn)證中。這意味著使用此方法生成的.ctr報(bào)告現(xiàn)可用作認(rèn)證證據(jù)。
●代碼變更分析
代碼變更和測(cè)試依賴性分析可以發(fā)現(xiàn)哪些代碼發(fā)生變化并影響現(xiàn)有的測(cè)試腳本、哪些測(cè)試腳本被代碼修改所影響、代碼修改對(duì)之前的測(cè)試覆蓋產(chǎn)生什么影響。針對(duì)代碼的變更,提供指導(dǎo)性的測(cè)試腳本更改建議和自動(dòng)重構(gòu)。

●測(cè)試驅(qū)動(dòng)開發(fā)(TDD)
在TDD的開發(fā)方法中,單元測(cè)試是在源代碼實(shí)現(xiàn)之前編寫的。這種敏捷技術(shù)確保測(cè)試用例的開發(fā)重點(diǎn)是從需求而不是從源代碼實(shí)現(xiàn)開始,因此可以幫助工程師編寫出“更干凈”的代碼。
Cantata具有支持TDD的新功能,輕松地為尚未編寫的源代碼生成測(cè)試。一旦在頭文件中創(chuàng)建函數(shù)原型,TDD函數(shù)就可用于生成測(cè)試用例。使用Cantata for TDD改進(jìn)了TDD中常用的簡(jiǎn)單黑盒測(cè)試,進(jìn)行完整的白盒測(cè)試,因?yàn)镃antata可以直接調(diào)用被封裝的代碼內(nèi)部,可以訪問私有/靜態(tài)數(shù)據(jù)和函數(shù)。

測(cè)試腳本是自動(dòng)生成的,為頭文件中定義的每個(gè)函數(shù)原型生成一個(gè)測(cè)試用例。以這些用例為基礎(chǔ)創(chuàng)建更多的測(cè)試用例,避免手動(dòng)將函數(shù)原型中包含的信息添加到測(cè)試用例中。頭文件中聲明的任何全局?jǐn)?shù)據(jù)同樣會(huì)被自動(dòng)地進(jìn)行設(shè)置和檢查。 Cantata TDD生成了空源文件,因此函數(shù)體一旦有了實(shí)現(xiàn),就可以簡(jiǎn)單地重建和運(yùn)行測(cè)試以測(cè)試新代碼。

Cantata Trace功能可與Cantata TDD結(jié)合使用,以便根據(jù)需求改進(jìn)測(cè)試用例的開發(fā)。測(cè)試用例在設(shè)計(jì)時(shí)就可追蹤被導(dǎo)入的需求。測(cè)試用例、代碼和需求之間的關(guān)聯(lián)讓所有工作更加清晰,并使以后的代碼重構(gòu)變得更加容易。
為尚未編寫實(shí)現(xiàn)的所有函數(shù)生成樁函數(shù),這使得測(cè)試用例能夠在代碼完全實(shí)現(xiàn)之前運(yùn)行。當(dāng)函數(shù)有了實(shí)現(xiàn),就可以使用Cantata的變更分析功能自動(dòng)刪除這些樁函數(shù)或?qū)⑵滢D(zhuǎn)換為Cantata封裝函數(shù)(以攔截并繼續(xù)檢查對(duì)這些對(duì)象/函數(shù)的調(diào)用)。一旦測(cè)試通過,源代碼就可以重構(gòu)并重新運(yùn)行測(cè)試以確保它們?nèi)匀煌ㄟ^。
●持續(xù)測(cè)試
Cantata在測(cè)試創(chuàng)建時(shí)自動(dòng)生成Makefile文件,以批處理的方式對(duì)整個(gè)測(cè)試進(jìn)行編譯、鏈接、配置、執(zhí)行和獲取結(jié)果。它們可使用現(xiàn)有的Make文件,且易于與開源或商業(yè)的持續(xù)集成工具集成。
●診斷和報(bào)告
Cantata在Eclipse?GUI中提供了強(qiáng)大的過濾功能,診斷測(cè)試和代碼覆蓋結(jié)果;靈活的用戶可配置的XML、HTML格式報(bào)告和用于安全標(biāo)準(zhǔn)認(rèn)證的ASCII文本。

●團(tuán)隊(duì)報(bào)告
團(tuán)隊(duì)報(bào)告是可選插件,使用客戶端-服務(wù)器體系結(jié)構(gòu),Web界面和REST API,使分布式團(tuán)隊(duì)能夠更有效地工作。

兼容你的工作環(huán)境
Cantata可以安裝在Windows?和Linux?主機(jī)操作系統(tǒng)上,建立在Eclipse 2018-09發(fā)行版(Eclipse 4.9)之上,也可以作為一個(gè)Eclipse-Ready插件安裝到從Juno(4.2)到Eclipse 2018-09(4.9)的環(huán)境中。
對(duì)GNU GCC和g++編譯器的支持已經(jīng)擴(kuò)展到Windows上的 8.1版本和Linux上的 8.3版本。
完全支持所有C++ 11和14的語(yǔ)言特征。
并且還集成了大量的嵌入式開發(fā)工具鏈:
■IDEs/RTOSs
■交叉編譯器
■調(diào)試器
■構(gòu)建/持續(xù)集成
■軟件配置管理
■需求管理
●無限制嵌入式目標(biāo)
對(duì)于目標(biāo)環(huán)境,內(nèi)置向?qū)峁o限制的部署和使用,無需任何許可限制。 Cantata部署包括與代碼兼容的庫(kù),配置選項(xiàng)和二進(jìn)制文件。這些都是經(jīng)過測(cè)試和控制的,用于安全相關(guān)項(xiàng)目的認(rèn)證使用。
●在目標(biāo)上簡(jiǎn)單靈活的測(cè)試
Cantata測(cè)試(平臺(tái)無關(guān)測(cè)試腳本在C / C ++和平臺(tái)特定部署)構(gòu)建為C / C ++可執(zhí)行文件,在目標(biāo)平臺(tái)上加載運(yùn)行,就如同在以下位置運(yùn)行自己的代碼一樣:
■模擬器
■仿真器
■物理目標(biāo)板
功能和代碼覆蓋測(cè)試結(jié)果直接返回給主機(jī),得出診斷和報(bào)告。該過程使用Cantata完全自動(dòng)創(chuàng)建文件、測(cè)試腳本、平臺(tái)定制,方便靈活地從GUI或CLI完成目標(biāo)測(cè)試。

用戶代碼由具有目標(biāo)兼容庫(kù)的便攜式測(cè)試腳本驅(qū)動(dòng),并且構(gòu)建為單個(gè)測(cè)試可執(zhí)行文件,在多個(gè)主機(jī)或目標(biāo)平臺(tái)上運(yùn)行。程序用于白盒訪問和代碼覆蓋,因此無需為測(cè)試修改產(chǎn)品代碼。
符合安全標(biāo)準(zhǔn)
國(guó)際軟件安全標(biāo)準(zhǔn)要求提供低級(jí)別(單元和集成)測(cè)試的證據(jù),以獲得設(shè)備軟件的認(rèn)證。
此外,大多數(shù)標(biāo)準(zhǔn)要求所使用的測(cè)試工具必須經(jīng)過認(rèn)證/合格或通過使用得到證明。Cantata已經(jīng)獲得了SGS-TUV SAAR GmbH的獨(dú)立認(rèn)證。特定標(biāo)準(zhǔn)的Cantata工具認(rèn)證包是免費(fèi)提供的,包含所有需要的開箱即用的東西,幫助您獲得設(shè)備軟件認(rèn)證的全面指導(dǎo)。當(dāng)工具必須針對(duì)每個(gè)項(xiàng)目(比如DO-178B/C)單獨(dú)進(jìn)行合格審定的時(shí)候,針對(duì)標(biāo)準(zhǔn)的工具認(rèn)證是不被接受的,此時(shí)我們也提供Cantata的工具合格審定。
典型應(yīng)用
●航天航空
多家軟件評(píng)測(cè)中心使用Cantata。工具的Auto Test 功能在當(dāng)前軟件測(cè)試的實(shí)際生態(tài)下,極大地提高了測(cè)試人員的工作效率,減輕了由文檔不全、代碼邏輯復(fù)雜、遺留代碼等造成的測(cè)試難度。
●軌道交通
某用戶將Cantata成熟運(yùn)用于開發(fā)與測(cè)試的工作流程,實(shí)現(xiàn)EN 50128 SIL4的認(rèn)證。維持著工具的升級(jí)和續(xù)夠。
●汽車電子
某用戶將Cantata用于Tasking代碼的單元和集成測(cè)試,輔助完成ISO 26262的認(rèn)證。

更多詳細(xì)內(nèi)容請(qǐng)?jiān)L問QA Systems中文網(wǎng):http://qa-systems.cn/