事倍功半!如何正确选择自动化软件测试工具?

创提信息
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年以上的经验,创提科技很愿意与已踏入或准备踏入高安全性软件的开发人员进行交流,并提供相对应的解决方案与经验分享。