醋醋百科网

Good Luck To You!

Parasoft C / C ++test:嵌入式单元测试实践(十)

单元测试和安全完整性等级

根据IEC-61508-3定义的单元测试完整性水平在下表中进行了总结,如下:

  • R —指出IEC-61508标准推荐的与方法匹配的功能
  • HR —指出IEC-61508标准推荐的与方法匹配的功能

表中引用的技术/测量描述由IEC-61508-3标准定义。例如:(表A.3:1)参照IEC-61508-3,表A.3,技术1。

C++test功能SIL
ABCD
单元测试模块 - 通用
单元测试执行(表A.5:4,表A.7:3)HRHRHRHR
自动生成单元测试模块
自动生成单元测试采用边界值(表B.2:1,表B.3:3)RHRHRHR
准备输入参数的值组,所使用的工厂函数(表B.2:5)RRRHR
采用的随机输入组合(表A.5:1) RRHR
测试管理模块
使用用户定义的测试案例测试HRHRHRHR
使用数据源,以有效地提供多种输入HRHRHRHR
使用测试用例管理器来管理测试用例和审查测试用例状态(表A.5:2)RHRHRHR
C++test功能SIL
ABCD
功能存根
利用存根来控制执行测试的流程,以满足给定的条件 (表A.5:4)HRHRHRHR
使用功能存根来代替自动单元测试执行用户界面(表A.5:6)RRHRHR
使用存根提供故障条件测试(表B.2:2)RRRR
覆盖模块
针对结构测试,分析语句,分支和MC/ DC代码覆盖率(表B.2:6)RRHRHR

温馨提示:
  • 单元测试可以运行在仪表模式和非仪表模式—例如,覆盖工具不会影响测试结果。
  • 执行单元测试可以在目标设备上或模拟器中。

值得一提的是,IEC-61508在第二版中的改进很大。例如,在第一版本表B.2,技术6的引用的是一般的基础测试结构。在第二版中,表B.2有新增了(7A到7D)特定结构的测试覆盖类型并要求100%的覆盖率,这取决于SIL数目。

其他安全标准

IEC-61508不是唯一于功能安全相关的标准。有一些衍生自IEC-61508标准,用来解决特点行业的细节,而另一些是独立于它的。有一些更为严格(例如,与机载系统相关),而另一些则较为宽松。但是基本概念是相似的,所以单元测试已经被证明是必不可少的。下面我们简短的讲一下其他的相关标准,具体详情请自行参阅相关文件或咨询专家。

  • ISO/DIS-26262

    符合IEC-61508标准,适用于道路车辆的电子/电气系统的标准。

  • ASIL(汽车安全完整性等级)

    这是由ISO/ DIS-26262定义的标准,等价于SIL。它规定了必要的安全措施,以避免意外的风险残余。用D 代表最严格的级别,A代表最宽松的级别。

  • DO-178B/C

    飞机和发动机上使用的机载系统和设备软件标准。

  • IEC-60880-2

    符合IEC-61508标准,适用于核电厂安全系统的标准。

  • EN-5012X/EN-50128/EN-50129

    符合IEC-61508标准,适用于轨道交通。

结论

诚然,单元测试是需要投入成本的,但它是必不可少的。对于嵌入式单元测试来说,增加了更多的困难,这可以使用本文中所讨论的方式来解决。

单元测试会为您带来很多益处,如帮助您创建更好的代码,建立回归测试套件,实现所需的安全完整性等级,或获取DO-178B认证。

购买最新正版授权Parasoft赠送Macbook!"咨询在线客服"

慧都年终盛典火爆开启,一年仅一次的最强促销,破冰钜惠不容错过(12.01~12.31)!!

本站文章除注明转载外,均为本站原创或翻译

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言