安全相关的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 |
需登入才能下载 |
下载 |