事倍功半!如何正確選擇自動化軟體測試工具?

創提科技
2023/11/01

分享到

事倍功半!如何正確選擇自動化軟體測試工具?-1小.jpg


創提科技剖析如何選擇自動化測試工具--創提科技


高安全性產業近年來在產業標準上,對軟體的驗證及測試要求愈來愈高。如國防、醫療機械、軌道交通、航空電子、工業自動化、甚至到汽車電子…等。以汽車電子的產業標準ISO 26262為例,Part6-9單元測試與Part 6-10單元整合測試,在標準上除了要求許多的測試方法,甚至還要求開發人員提供程式碼測試的涵蓋率,若在測試過程中,沒有選擇合適且合格的自動化程式碼測試工具,很可能事倍功半,花了許多時間及資源,結果還是不符合產業標準要求。本文主要探討,針對軟體單元與單元整合測試工具,我們該如何正確的選擇。


在產業標準的要求下,工具的使用信心度為基本門檻,以ISO26262 Part 8-11的章節為例,該章節提到了工具的TCL(Tool Confidence Level)應用在不同的產品開發需求ASIL(Automotive Safety Integrity Level)必需提供相關證明或合格證書來符合產品開發。在符合基本門檻後,工具的支援程度就成了選擇的難題,我們以嵌入式軟體開發常用的C與C++語言為例,提供以下幾個項目是否支援給讀者作為評比:


(一)、自動化測試工具本身是否已完整獲得相關功能安全認證確保其可使用在功能安全研發專案中?無需浪費工程人員寶貴的時間及資源去準備辨證為何不使用已得到完整功能安全認證的測試工具。測試工具本身被認證的工具功能完整性至關重要,否則可能陷入事倍功半之泥淖。
 
(二)、是否可以簡便的操作並自動化生成測試用例?且自動生成之測試用例可立即提升不同測試涵蓋率要求?
 
(三)、是否可以很好的支持C與C++自動生成測試用例? 一般工具都可有效的支持C語言的自動生成測試用例,但如在SoC晶片開發上,C++也可能被大量使用,故工具是否有效同步支援C++生成高效的測試用例變為重要。
 
(四)、關聯且相依的函數間,是否可非常容易透過工具內建的打樁(stub)機制來測試單一函數? 並且能利用工具內建機制較快的完成故障注入(Fault injection)測試?
 
(五)、單元測試工具是否支援市場大部分編譯器與模擬器環境? 不需耗費大量人力資源及時間配置。
 
(六)、工具是否能提供軟體Architecture 以及Unit Level測試涵蓋率? 且可結合不同層級的涵蓋率報告,讓被要求的測試涵蓋率更高效的完成。
 
(七)、測試報告是否可依照不同的安全等級(如: ISO26262的ASIL)自動生成?
 
(八)、因為大部分的產業功能安全標準都與軟體工程相關,工具應能用最簡便的方式與ALM系統進行集成,以利達成軟體需求與測試的追蹤性要求。


創提科技作為Vector Informatik公司在台灣的合作夥伴,旗下工具Vector CAST/ Team除了能符合在ISO26262 ASIL A~D單元測試與單元整合測試的要求,更能與系統層級測試HiL(Hardware in Loop)搭配使用,並獲取系統層級涵蓋率。創提科技在軟體安全性產業累積了20年以上的經驗,創提科技很願意與已踏入或準備踏入高安全性軟體的開發人員進行交流,並提供相對應的解決方案與經驗分享。