会员服务

帐号
密码
忘记密码加入会员登入
电子报订阅

安全相关的C代码测试方法

2021.01.28

本文以汽车巡航系统为例,使用美国Reactive-systems公司的Reactis for C(下面简称RFC)软件,就控制策略的C代码,探讨动态测试方法。在“安全相关的软件测试方法”一文中,说明了基于模型的控制系统的测试方法。使用代码生成器,将模型自动转换成C代码后,我们也需要对C代码进行测试,这既是ISO26262的要求,也可以验证C代码和模型的一致性。同样在生成二进制执行文件后,使用相同的测试用例,可以验证C代码和二进制的一致性。

Reactis for C是C代码的白盒子动态测试工具,用于自动生成测试用例,并在验证C代码的功能和安规(ISO26262)的同时,发现代码的运行时错误:
- 整数溢出。
- 浮点数错误,比如0.0/0.0,+inf,-inf等。
- 内存错误,比如数组越界,无效指针等。
- 除零错误。
- 非法移位。
下面就功能测试和安规测试两方面进行说明,主要关注在测试验证方面,以避免内容重复。如果需要了解基本规则,比如ISO26262在软件测试方面的条例,可以参考“安全相关的软件测试方法”。
 
 
1.准备工作

RFC测试C代码的准备工作分两步,第一步是建立编译脚本,设定编译涉及的文件,目录,自动检测缺失的extern变量定义和函数定义,并自动打桩,如图_1所示。第二步是设定Harness,即输入输出,测试内容,以及错误处理方式等等。如果C代码是从模型转出来的,这一步也可以使用Reactis在模型阶段测试时使用的设定。由于其设定方式,与模型测试的设定基本一致,这里不详细说明。
 
 
图_1 创建编译脚本
 

2.功能测试

3.安全测试

4.背靠背测试

 
 
结语
 
完整资料请登入会员下载PDF

 



档案下载:

编号
档名
class
版本
标题
叙述
建立时间
上次更新
状态 下载

21SII-T02安全相关的C代码测试方法.pdf


安全相关的C代码测试方法
2021-01-28 11:48:58
2021-01-28 12:02:38
需登入才能下载 下载
TOP