绵羊汽车生活记录 sheep汽车资讯 安全相关的C代码测试方法

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

C是嵌入式体系开荒的主流发言,其直接筑设读写才干,既保障了代码的推行功效,同时也带来了调试和测试方面的艰难。好比内存读写差错、溢出差错、除零差错守候,

C是嵌入式体系开荒的主流发言,其直接筑设读写才干,既保障了代码的推行功效,同时也带来了调试和测试方面的艰难。好比内存读写差错、溢出差错、除零差错守候,都是通常发作的情形。对待安闲闭联的C代码,不但要验证软件的运转结果是否合适打算央求,况且还要餍足安闲闭联的程序,好比汽车规模的ISO26262,或者航空工业的DO178C程序。

本文以汽车巡航体系为例,操纵美国Reactive-systems公司的Reactis for C(下面简称RFC)软件,就担任政策的C代码,研商动态测试门径。正在“安闲闭联的软件测试门径”一文中,证实了基于模子的担任体系的测试门径。操纵代码天生器,将模子自愿转换成C代码后,咱们也必要对C代码举办测试,这既是ISO26262的央求,也能够验证C代码和模子的相同性。同样正在天生二进制推行文献后,操纵好像的测试用例,能够验证C代码和二进制的相同性。

Reactis for C是C代码的白盒子动态测试东西,用于自愿天生测试用例,并正在验证C代码的性能和安规(ISO26262)的同时,发摩登码的运转时差错:

下面就性能测试和安规测试两方面举办证实,苛重闭心正在测试验证方面,以避免实质反复。假如必要明白根本章程,好比ISO26262正在软件测试方面的条例,能够参考“安闲闭联的软件测试门径”。

RFC测试C代码的计划处事分两步,第一步是创立编译剧本,设定编译涉及的文献,目次,自愿检测缺失的extern变量界说和函数界说,并自愿打桩,如图_1所示。第二步是设定Harness,即输入输出,测试实质,以及差错处罚方法等等。假如C代码是从模子转出来的,这一步也能够操纵Reactis正在模子阶段测试时操纵的设定。因为其设定方法,与模子测试的设定根本相同,这里不周密证实。

RFC的性能测试方法差别于基于模子的门径,正在软件的菜单栏,也没有特意的“Validate”菜单。而是正在图_1的“Instrumentation Code”中增加。下面就其道理,作扼要证实:

C发言的编译,能够分为Debug方法和Release方法。正在Debug方法中,平常会参预少许调试代码。当编译Release结果时,C的预编译器会按照“NDEBUG”等界说,将这些调试代码去除后,再编译成二进制。

– 也能够操纵图_1中的“Instrumentation Code”窗口,正在被测代码的指定行号后增加。如图_2所示。

从图_2能够看到,操纵RFC供应的“C Code Editor”窗口增加的测试代码,正在RFC主窗口中显示时,其编号是独立的,况且高亮显示,以区别实践的被测。

UDT和Assertion的影响,跟模子测试时相通,UDT用来打算场景,Assertion用来发明违反打算央求的测试用例。

平日的做法是,测试工程师会按照打算需求,编写验证用的C文献和头文献。并如图_2所示,将UDT函数和Assertion函数,辨别参预到reactis_target()和reactis_assertion()函数中。然后用RFC的自愿天生测试用例,来笼罩这些UDT和Assertion。

背靠背测试是验证模子及其对应的C代码的相同性。Reactis和RFC的测试用例文献操纵了好像的花式(rst文献),因此能够直接正在Reactis或RFC软件中掀开对应的模子和C代码的测试用例文献举办测试,验证相同性。

而对待其他软件或HIL平台获得的测试用例和结果,Reactis和RFC供应了导入csv文献的性能。当发明结果发作过失时,RFC会按照设定的偏差限度,供应Warning音信,工程师也能够直接用“Difference Scope”图表显示背靠背测试中发明的偏离,如图_4所示。

正在“安闲闭联的软件测试门径”一文中提到,为了抬高笼罩度,对待输入的正确设定是需要的,这不但必要少许光阴,也央求工程师对这些量的物理寄义有斗劲分明的理解。对待从模子天生的C代码,RFC供应了直接导入模子阶段所作的这些设定,减轻测试工程师的处事量。

汽车测试网-开创于2008年,报道汽车测试本事与产物、趋向、动态等 闭系邮箱 marketing#auto-testing.net (把#改成@)

本文来自网络,不代表绵羊汽车生活记录立场,转载请注明出处:http://car.shaomingyang.com/14828.html

作者: sheep

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

13426325341

在线咨询: QQ交谈

邮箱: 2363400792@qq.com

工作时间:7*24小时全年无休
返回顶部