德國QA Systems公司的Cantata是圍繞C/C++語言的特點而設計的,能夠滿足開發者進行高效的單元和集成測試的需求。具有一整套包含單元和集成測試、獨特的AutoTest測試、覆蓋率分析、靜態分析、測試需求追蹤、代碼變更分析、Cantata Makefile等功能。
●靈活的測試框架
靈活的測試框架(測試腳本和支持庫)支持單元和可擴展的集成測試的任何測試樣式組合。測試可以在GUI中直接編輯為C/C++代碼,在嵌入式目標平臺和主機平臺上作為可執行文件運行。
●黑盒與白盒測試
高度自動化測試用例的創建提供了黑盒測試的功效和精度,以及更有效的全面的白盒測試。通過用戶選擇的或預定義的參數化循環測試,針對大型數據集的組合效果計算器和CSV導入/導出,可以實現強大的黑盒測試。通過Cantata精確的白盒測試,直接從測試腳本自動訪問封裝代碼,無需條件編譯,無需控制靜態、私有函數以及數據。
●健壯性測試
魯棒性(Robustness)測試能夠很容易地使用Cantata規則集對基本數據類型值進行預定義,以循環測試用例的方式進行。自動檢查所有可訪問的全局數據是否在無意中發生更改。
●面向對象的測試
Cantata面向對象測試由測試方法、模板或類的集群來實現。 它們具有自動化:
■通過并行繼承層次重用測試用例
■測試類繼承已繼承類的結構
■具體實現抽象基類(ABCs)或純虛方法(PVM)
為了打破類依賴鏈并使C++隔離測試變得容易,Cantata自動發現并解析未被測試軟件直接調用的未定義引用的依賴關系。
●AutoTest測試
Cantata 自動測試生成完整的、可通過的單元測試腳本。測試用例向量可以在檢查數據、參數和調用順序時執行100%的代碼覆蓋。自動測試創建回歸單元測試的安全網,以減少對昂貴系統測試的依賴,并自動填補代碼覆蓋的缺口。
自版本9.0開始AutoTest功能已擴展為支持C++,對C++03和早期C++版本的以下內容也提供支持:
■C++具體與抽象基類
■重載和繼承
■名字空間和類
■異常處理
■在給定代碼中顯式實例化的模板
■混合的C&C++代碼庫
●獨特的調用控制
Cantata自動生成測試控制,模擬(樁)和攔截(封裝)被測軟件的所有函數調用,提供:
■可選的自動檢查參數和數據
■針對不同調用行為的多個實例
■每個測試用例中靈活的調用順序驗證
■接口錯誤檢測和錯誤注入
■控制耦合測試
●需求追蹤
所有安全相關標準需求都要求測試用例或測試計劃的雙向可追溯性。需求或測試計劃集被導入到Cantata服務器,通過拖放界面分配關系,然后使用Cantata測試導出結果狀態和代碼覆蓋信息。
可以通過CSV、MicrosoftExcel?或需求交換格式(ReqIf)導入/導出。滿足您的工作流程和特定需求管理工具版本(例如IBM?Rational?DOORs?、PTCIntegrity?、Polarion?REQUIREMENTS?)。Cantata服務器還有一個完整的REST API。
●代碼覆蓋率
Cantata代碼覆蓋提供了測試用例執行源代碼(無論是否由Cantata測試驅動)的客觀測量。自動化數據報告對所需代碼覆蓋率級別的集成檢查,可以易于使用特定標準的Cantata覆蓋規則集。
代碼覆蓋率使用以下指標衡量:
■入口點
■調用返回
■語句
■基本塊
■判定(分支)
■條件
■MC / DC(屏蔽法和唯一原因法兩種)
■循環
■關系運算符
針點型(Pin-point)診斷可以過濾或聚合完整項目代碼樹的覆蓋。通過測試用例、測試運行、度量類型和代碼前后關系(繼承、線程、狀態、數據耦合等),下拉到單個代碼結構,進入每行代碼中。自動測試用例優化有助于從大型數據集中選擇測試用例向量,并減少回歸測試消耗。
對于具有多個構建變體(Build Variant)的C/C++代碼,Cantata使用預編譯定義區分不同的構建變體,覆蓋率視圖顯示相同源代碼的多個構建變體的集合數據。還可以生成包含所有定義的集合覆蓋率報告,適合作為源代碼所有構建變體的證明證據
對于內存較小的目標平臺,Cantata的覆蓋率延遲分析功能很有用,它把在目標上收集的覆蓋數據傳遞回主機,然后再運行覆蓋檢查和報告。此項功能已經包含在SGS-TUV SAAR GmbH的工具認證中。這意味著使用此方法生成的.ctr報告現可用作認證證據。
●代碼變更分析
代碼變更和測試依賴性分析可以發現哪些代碼發生變化并影響現有的測試腳本、哪些測試腳本被代碼修改所影響、代碼修改對之前的測試覆蓋產生什么影響。針對代碼的變更,提供指導性的測試腳本更改建議和自動重構。
●測試驅動開發(TDD)
在TDD的開發方法中,單元測試是在源代碼實現之前編寫的。這種敏捷技術確保測試用例的開發重點是從需求而不是從源代碼實現開始,因此可以幫助工程師編寫出“更干凈”的代碼。
Cantata具有支持TDD的新功能,輕松地為尚未編寫的源代碼生成測試。一旦在頭文件中創建函數原型,TDD函數就可用于生成測試用例。使用Cantata for TDD改進了TDD中常用的簡單黑盒測試,進行完整的白盒測試,因為Cantata可以直接調用被封裝的代碼內部,可以訪問私有/靜態數據和函數。
測試腳本是自動生成的,為頭文件中定義的每個函數原型生成一個測試用例。以這些用例為基礎創建更多的測試用例,避免手動將函數原型中包含的信息添加到測試用例中。頭文件中聲明的任何全局數據同樣會被自動地進行設置和檢查。 Cantata TDD生成了空源文件,因此函數體一旦有了實現,就可以簡單地重建和運行測試以測試新代碼。
Cantata Trace功能可與Cantata TDD結合使用,以便根據需求改進測試用例的開發。測試用例在設計時就可追蹤被導入的需求。測試用例、代碼和需求之間的關聯讓所有工作更加清晰,并使以后的代碼重構變得更加容易。
為尚未編寫實現的所有函數生成樁函數,這使得測試用例能夠在代碼完全實現之前運行。當函數有了實現,就可以使用Cantata的變更分析功能自動刪除這些樁函數或將其轉換為Cantata封裝函數(以攔截并繼續檢查對這些對象/函數的調用)。一旦測試通過,源代碼就可以重構并重新運行測試以確保它們仍然通過。
●持續測試
Cantata在測試創建時自動生成Makefile文件,以批處理的方式對整個測試進行編譯、鏈接、配置、執行和獲取結果。它們可使用現有的Make文件,且易于與開源或商業的持續集成工具集成。
●診斷和報告
Cantata在Eclipse?GUI中提供了強大的過濾功能,診斷測試和代碼覆蓋結果;靈活的用戶可配置的XML、HTML格式報告和用于安全標準認證的ASCII文本。
●團隊報告
團隊報告是可選插件,使用客戶端-服務器體系結構,Web界面和REST API,使分布式團隊能夠更有效地工作。
●兼容你的工作環境
Cantata可以安裝在Windows?和Linux?主機操作系統上,建立在Eclipse 2018-09發行版(Eclipse 4.9)之上,也可以作為一個Eclipse-Ready插件安裝到從Juno(4.2)到Eclipse 2018-09(4.9)的環境中。
對GNU GCC和g++編譯器的支持已經擴展到Windows上的 8.1版本和Linux上的 8.3版本。
完全支持所有C++ 11和14的語言特征。
并且還集成了大量的嵌入式開發工具鏈:
■IDEs/RTOSs
■交叉編譯器
■調試器
■構建/持續集成
■軟件配置管理
■需求管理
●無限制嵌入式目標
對于目標環境,內置向導提供無限制的部署和使用,無需任何許可限制。 Cantata部署包括與代碼兼容的庫,配置選項和二進制文件。這些都是經過測試和控制的,用于安全相關項目的認證使用。
●在目標上簡單靈活的測試
Cantata測試(平臺無關測試腳本在C / C ++和平臺特定部署)構建為C / C ++可執行文件,在目標平臺上加載運行,就如同在以下位置運行自己的代碼一樣:
■模擬器
■仿真器
■物理目標板
功能和代碼覆蓋測試結果直接返回給主機,得出診斷和報告。該過程使用Cantata完全自動創建文件、測試腳本、平臺定制,方便靈活地從GUI或CLI完成目標測試。
用戶代碼由具有目標兼容庫的便攜式測試腳本驅動,并且構建為單個測試可執行文件,在多個主機或目標平臺上運行。程序用于白盒訪問和代碼覆蓋,因此無需為測試修改產品代碼。
符合安全標準
國際軟件安全標準要求提供低級別(單元和集成)測試的證據,以獲得設備軟件的認證。
此外,大多數標準要求所使用的測試工具必須經過認證/合格或通過使用得到證明。Cantata已經獲得了SGS-TüV SAAR GmbH的獨立認證。特定標準的Cantata工具認證包是免費提供的,包含所有需要的開箱即用的東西,幫助您獲得設備軟件認證的全面指導。當工具必須針對每個項目(比如DO-178B/C)單獨進行合格審定的時候,針對標準的工具認證是不被接受的,此時我們也提供Cantata的工具合格審定。
更多詳細內容請訪問QA Systems中文網:http://qa-systems.cn