收藏 分销(赏)

基于功能安全的汽车嵌入式软件单元验证技术研究.pdf

上传人:自信****多点 文档编号:2351695 上传时间:2024-05-28 格式:PDF 页数:4 大小:2.15MB
下载 相关 举报
基于功能安全的汽车嵌入式软件单元验证技术研究.pdf_第1页
第1页 / 共4页
基于功能安全的汽车嵌入式软件单元验证技术研究.pdf_第2页
第2页 / 共4页
基于功能安全的汽车嵌入式软件单元验证技术研究.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、设计研究/Design research64AutoelectricpartsNo.10,2023基于功能安全的汽车嵌入式软件单元验证技术研究肖蕾,卢倩,冉毅德,覃高峰(上汽通用五菱汽车股份有限公司,广西柳州【摘要】随着汽车嵌入式软件功能的不断叠加,软件复杂性不断提升,对汽车嵌入式软件的安全性提出了更高要求,基于功能安全的嵌入式软件开发和测试已成为汽车行业非常重要的流程标准。本文基于ISO26262标准,对满足功能安全ASIL等级的汽车嵌入式软件单元验证技术进行详细介绍,从而提高软件质量,减少软件安全隐患,对汽车嵌入式软件开发和测试工作具有一定的指导意义。【关键词】汽车嵌入式软件;功能安全;单

2、元验证中图分类号:U463.6Research on Verification Technology of Automotive Embedded Software Unit Based on Functional SafetyAbstract With the continuous superposition of the functions of automotive embedded software,the softwarecomplexity is constantly improving,which puts forward higher requirements for the

3、safety of automotive embeddedsoftware.Embedded software development and testing based on Functional safety has become a very important processstandard in the automotive industry.Based on ISO 26262 standard,this paper introduces in detail the verificationtechnology of automotive embedded software uni

4、t that meets the ASIL level of Functional safety,so as to improvesoftware quality and reduce software security risks,which has certain guiding significance for automotive embeddedsoftware development and Test effort.Key words automotive embedded software;functional safety;unit validation作者简介肖蕾,硕士,研究

5、方向为汽车嵌入式软件开发和测试。1研究背景随着汽车使用场景的增加和辅助驾驶功能的扩展,汽车嵌人式软件的集成度和复杂性也随之增加,愈加庞大的软件系统意味着存在更多难以发现的安全风险。传统的软件开发和测试流程难以满足现阶段对汽车软件安全性的要求-3。ISO26262道路车辆功能安全国际标准是为满足道路车辆上特定电子电器系统的需求而编写,适用于道路车辆上特定的由电子、电气和软件组件组成的安全相关系统在安全生命周期内的所有活动,目前已成为非常前沿的汽车安全相关标准。其主要基于汽车电子行业公认的“V模型”,强调通过各开发阶段的测试和验证来降低风险4-5。软件单元验证作为软件测试的第一道关卡,能够尽早发现

6、代码漏洞、降低开发成本、缩短开发周期,能有效提高软件质量,是软件测试中最重要的部分。基于功能安全的软件单元验证是为了证明软件最小单元满足软件设计,以及安全措施得到实施,并满足根据所需ASIL等级分配的软件要求而开展的活动,兼顾软件安全要求和非安全要求。收稿日期:2 0 2 3-0 3-10545007)文献标识码:A文章编号:10 0 3-8 6 39(2 0 2 3)10-0 0 6 4-0 3XIAO Lei,LU Qian,RAN Yide,QIN Gaofeng(SAIC-GM-Wuling Automobile Co.,Ltd.,Liuzhou 545007,China)评审软件单元

7、测N试计划执行和评审N静态测试图1软件单元验证流程图为了保证验证的充分性和完整性,功能安全要求通过评审、分析和测试等组合方法对软件进行单元验证。本文基于ISO26262道路车辆功能安全国际标准第6部分第9 章节“Software unitverification”中的要求,对符合功能安全的软件单元验证技术进行详细研究,对汽车软件开发和测试从业人员具有一定的参考意义。2软件单元验证流程软件单元验证流程如图1所示。按照静态测试在先、动态测试在后的准则进行,每一步都需要有上一步的输出资开始单元验证编制和编制和评审软件单元测试报告N执行单元测试Y编制和Y评审软件单元测试说明YNY结束单元验证65Des

8、ign research/设计研究汽车电器2 0 2 3年第10 期料作为输入,且上一步未评审通过不可进入下一步,保证验证过程可靠且闭环。开始前,需要有软件单元设计规范软件接口规范软件开发环境文档等文档作为验证过程的需求输入。需要注意的是,功能安全侧重于对活动过程的检查和确认,因此对重要步骤的审查是非常有必要的。2.1编制和评审软件单元测试计划测试负责人根据各模块ASIL等级要求对单元测试的各项工作内容编制单元测试计划,规定时间进度要求,确认测试的范围、方法、测试用例设计方法、覆盖率要求等,输出软件单元测试计划。测试小组内部对软件单元测试计划内的各项工作安排进行评审,评审通过则开始静态测试,若

9、评审不通过,则修改计划再次评审直到通过。2.2执行和评审静态测试根据要求对模型或代码执行静态测试,确认对建模规范、编码规范、软件质量度量以及相关文档的符合性,记录测试执行结果并输出软件单元验证静态代码分析报告。对于需要修改的缺陷执行缺陷修正,对于不需要修改的缺陷进行分析说明。根据测试结果评审静态测试是否通过,评审通过则进行动态测试,若评审不通过,通知开发组修改代码直到再次评审通过。2.3编制和评审软件单元测试说明测试工程师依据软件详细设计说明软件单元验证测试策略和ASIL等级要求编写用例的ID、名称、设计方法、预置条件、执行步骤、预期结果、判断准则,输出软件单元测试说明,根据追溯一致性要求需要

10、建立软件详细设计与软件单元测试用例的追溯关系。评审小组评审通过,则开始执行单元测试,若评审不通过,测试组修改测试用例直至再次评审通过。2.4执行单元测试测试工程师搭建测试环境并执行软件单元测试,测试覆盖率需达到要求。若覆盖率未达标,测试发现缺陷,需按照问题解决管理过程规范流程执行分析、处理。对测试用例未通过的情形,测试工程师根据策略执行回归测试并记录结果。对不能通过测试验证的非功能需求,进行评审或采用其他方法验证。依据测试记录和结果输出软件单元测试记录。2.5编制和评审软件单元测试报告测试工程师依据软件单元测试记录和结果,编制软件单元测试报告。报告内容主要包括:测试目标、测试结果、结果分析、测

11、试结论和意见。评审小组评审软件单元测试报告,评审内容主要包括:从技术角度检查静态验证、测试用例的执行情况;确认测试执行符合策略要求;确保建立追溯关系的一致性。评审通过则结束软件单元验证活动。3软件单元验证方法表1列出了目前常用的软件单元验证方法,大致可分为评审、分析、测试3大类,分别对应1la-lc、1d-l i 和1j-ln。标准要求通过这些方法的适当组合,对软件单元设计和已表1软件单元验证方法方法A1a走查“1b结对编程。1c检查1d半形式验证1e形式验证1f控制流分析b.1g数据流分析b.c1h静态代码分析d1i基于抽象解释的静态分析。1j基于需求的测试1k接口测试名11故障注人测试h1

12、m资源使用评估1如果适用,在模型和代码1n之间背靠背对比测试实现的软件单元进行验证,来证明软件的功能和特性满足软件安全要求。不同ASIL等级对不同方法的推荐度不一样,其中“+”为特别推荐,“+”为推荐,“”为不推荐。为满足单元验证的完整性和充分性,通常会在不同大类中选择所有无重复项目的“+”项进行组合测试。注意,如果代码保留了模型特性,可以通过在模型层面执行验证来替代在源码层面执行验证,但需要证明该模型具有足够的置信度。以ASILB等级为例,可选择检查+静态代码分析+基于需求的测试+接口测试方法进行组合验证。3.1检查对开发文档、代码和设计的一致性、代码执行标准的情况、代码逻辑表达的正确性、代

13、码结构的合理性以及代码的可读性等进行检查。将所有与文档和代码相关的检查项列举在软件单元验证检查审查单中,根据检查结果给予“通过”“建议”和“不通过”,审查通过率高于9 0%判定为通过。3.2静态代码分析在不运行应用程序的情况下,对软件的源代码的语义、结构和行为进行分析,由此找出程序中的不规范、不合理或者可能造成程序运行异常的代码。静态代码分析可借助软件对源代码进行静态分析。图2 为HelixQAC软件对某代码进行静态分析的结果示意图,编码规范遵守MISRAC+。3.3基于需求的测试基于需求的测试是根据单元设计文档提取明确要求进行的测试活动。通过分析各接口具有的意义、值的范围及算法,确认需求的输

14、人值和预期值,对单元代码进行测试,从而实现基于设计需求的单元测试。3.4接口测试根据所测单元代码被调用的输入参数与该单元的形式ASILBC+00+D00+设计研究/Design research66AutoelectricpartsNo.10,2023为个数的函数输人单元。划分的边界上,需相应地为边界上及两侧的情况设计测试用例。此方法适用于对接口、接近边界的值与边界交叉的值较为敏感的函数单元。DQAF2_create-PRQASourceCodeAnalysi FfraProjedtAdninAgalyeeRepont QA-VerilyYierHelpCorejet10bsaleteMess

15、ages71.15Miscellaneous269023CAPRQAPRQA-FTPFlObsoleteMesseslysisBerslta/bixpo929.0.0-3401985:92.0.0-372098C-9.0.0.372098C:9.0.0-79Z98C9.0.0-379Z参数在个数、属性、量纲、顺序上是否一致等方面设计测试用例进行测试。基于需求的测试和接口测试范围存在重叠,通常以基于需求的测试为主,接口测试进行查缺补漏。此过程需要根据软件详细设计文档、安全需求文档和接口文档进行测试用例设计,保证测试用例对功能、安全需求和接口的100%覆盖。图3为VectorCAST软件对某源代码

16、进行单元测试的结果示意图,测试结果和预期结果一致,测试通过。KelGettingStartedUSER_GLOBALS_VCASTreetanglm)Beotamnl:InstahoeheetmdleBeetmglehictavidth+Retangle:ethresreturn4软件单元测试用例得出方法标准要求使用表2 列出的软件单元测试用例得出方法。表2 软件单元测试用例得出方法ASIL方法A1a需求分析1b等价类的生成和分析a1c边界值分析1d错误推测。1)需求分析法。根据软件详细设计文档中的功能描述来设计测试用例,每一个测试用例用来检验一个或者多个测试需求。每个测试用例需要与测试需求编

17、号一一对应形成追溯关系,需求覆盖率需要达到10 0%。所有功能安全等级均要求使用此方法。2)等价类划分法。根据被测函数的输人、输出范围划分有效等价类和无效等价类。针对每一个等价类设计至少一个有效等价类和一个无效等价类测试用例来确保被测程序单元的处理是完整的。此方法适用于具有取值范围或值lrbaedmdyissf prejet:oararatePbatafloeSettinesdatapap-eottaetotreturned Jogical eddreanViolationsViolations760760work2.0.0lconfg115Posibleprecedence confusio

18、n etra parentheses arImplicit coversiors unsigned char to double11Implca converior unsignedcharto doubleImplit converie unsigned long to doubleImpliet comveniors unsigned long to double图2HelixQAC静态分析结果3Moni torX$tAre.001TyPClSoClasst图3VectorCAST单元测试结果+LaentTrojeets:8xPCmmitiLina:1279,Calun:11hanged1

19、282612802727iendit_REDSE_CONV_GLOBAL_T_LOGICAL 1:274D_TRAMEDITRY8O_EXTTdMLAJNP_COIN_GLOBAL_TO_LOGICAL/-ottatB+EQAF2,createQAF2Jjavatampleegject.difamplejnspectconvert 24 bitglobel to-16 hit logicnlmplejivaLogica1(5:3)/cplunplusInput:Values3)边界值分析法。边界值分析法使用与等价类划分法相同的划分,但是边界值分析假定错误更多地存在于两个e_mtr_jnteml

20、e_qacsJEACo:endedheremainc三mainemaineTestCaieBaportGrdupExpeetad YaluesReetanelCehoBatandle:Reotandleo1.02.0C+4)错误推测法。根据以往测试经验和其他一些测试技术,猜测错误的类型及在特定的软件中错误发生的位置,并设计测试用例去发现它们。此方法适用于存在易错代码的函数单元,通常基于经验学习和专家判断中收集的数据。5软件单元层面结构覆盖率度量对单元测试完整性的另一个重要评估标准是软件单元层面的结构覆盖率要求,结构覆盖率分析可以发现测试用例的不足、需求的缺陷、无效代码或非预期功能,因此标准要求

21、按照表3列出的度量对结构覆盖率进行测试。表3软件单元层面结构覆盖率度量ASIL方法A1a语句覆盖率1b分支覆盖率1cMC/DC(修改条件/决策覆盖率)1)语句覆盖率是指被测试到的语句数量/可执行的语句总数10 0%。belass2)分支覆盖率是指被测试到的分支数量/总分支总数100%。3)M C/D C(修改条件/决策覆盖率)要求在一个程序中每一种输人输出至少出现一次,每一个判定中的每一个条件必须产生所有输出结果至少一次,每一个判定必须产生所有可能的输出结果至少一次,并且每一个判定中的每一个条件都能独立影响一个判定结果,因此MC/DC是最可靠的覆盖率。但由于其时间成本过高,目前只在功能安全要求

22、最高的ASILD中实施。实际进行软件单元测试用例设计时,D可以将测试用例导出方法与MC/DC标准相结合,提高测试效+率、测试力度和测试充分性。+当软件只需要满足ASILB等级时,选择语句覆盖和分+支覆盖并满足覆盖率要求即可。图4为VectorCAST软件对某+源代码进行单元测试的覆盖率统计结果。需要注意的是,MetricsStatement+BranchUnitSubprogramrectangleRectangle:Rectangle0)Rectangle:Rectangle(const float,const foat)RectanglegetHeightRectanglegetWidth

23、Rectangle:getAreaTOTALS5GRANDTOTALS5图4VectorCAST单元测试覆盖率统计结果B+ComplexityStatements12/2(100%)12/2(100%)11/1(100%)11/1(100%)11/1(100%)5717(100%)5717(100%)(下转第6 9 页)C+Branches1/1(100%)1/1(100%)1/1(100%)1/1(100%)1/1(100%)5/5(100%)5/5(100%)D+69Designresearch/设计研究汽车电器2 0 2 3年第10 期平均加速度族族20.5F0.5F-20+冲击度均值1

24、2筷10.50-2冲击度均值族门族20.50.500-2-1踏板最大开度族1族20.50-2-1图2隶属度与特征参数关系曲线参考文献:1张雅丽,付锐,袁伟,等.考虑能耗的进出站驾驶风格分类及识别模型吉林大学学报(工学版),2 0 2 2(7):2029-2042.2杨建军,李立治,郭文翠,等。适合国内人群的驾驶风格分类和识别方法及系统:中国,CN110321954AP.2019-10-11.(上接第6 6 页)无理由的覆盖率无目标值或低目标值会被认为不满足功能安全要求。对于可接受的死代码(用于调试的代码)或不同软件配置的代码区段,可以给出接受所达到的覆盖率水平的理由,或使用补充方法(代码走审查

25、)验证未被覆盖的代码。如果认为已实现的结构覆盖率不充分,需要定义额外的测试用例或提供基于其他方法可补充覆盖率以达到要求的理由,此部分证据可在软件单元验证测试报告中提供。6结论功能安全是当下汽车软件行业的主流趋势,根据功能安全开发流程对汽车软件进行开发和测试可以大大提高软件的质量,减少软件安全隐患,提升汽车核心竞争力。本文基于ISO26262标准结合不同功能安全等级从软件单元验证流程、软件单元验证方法的选择、软件单元测试用例得出方法的选择和使用以及软件单元测试结构覆盖率度量4方面对满足功能加速度标准差族1族22-4最小冲击度族2族10.5-1012010表2 驾驶风格辨识结果驾驶片段隶属度Adr

26、iverlAgg=0.837,Gen=0.163Adriver2Agg=0.860,Gen=0.140-20-21012踏板平均开度族族22-22驾驶风格AggAgg2Adriver3Adriver4Adriver5Adriver6Adriver7Adriver8Adriver9AdriverloBdriverlBdriver2Bdriver3-101Agg=0.899,Gen=0.101Agg=0.964,Gen=0.036Agg=0.707,Gen=0.293Agg=0.285,Gen=0.715Agg=0.960,Gen=0.040Agg=0.876,Gen=0.124Agg=0.963

27、,Gen=0.037Agg=0.947,Gen=0.053Agg=0.425,Gen=0.575Agg=0.874,Gen=0.126Agg=0.112,Gen=0.8882Bdriver4Bdriver5Bdriver6Bdriver7Bdriver8Bdriver9Bdriverlo3 马跃,郭烈,秦增科,等考虑驾驶风格的路径跟踪控制方法J重庆理工大学学报(自然科学),2 0 2 2,36(11):20-30.4 周开乐。模糊C均值聚类及其有效性检验与应用研究D合肥:合肥工业大学,2 0 14.(编辑凌波)安全的汽车嵌人式软件单元验证技术进行了详细阐述,对汽车嵌人式软件开发和测试行业具有一

28、定的指导意义。参考文献:1 王旭阳参照ISO26262的安全低功耗AUTOSAR基础软件模块D.杭州:浙江大学,2 0 13.2 还宏生.汽车设计中的安全要求及ISO26262标准汽车零部件,2 0 12(10):41-43.3 葛鹏,陈勇,罗大国,等基于道路车辆功能安全标准ISO.26262的7 DCT电控系统设计.汽车技术,2 0 14(9):21-23,57.4吴玲玉,张宗哲,马凯。基于ISO26262的嵌入式软件测试研究.软件导刊,2 0 2 0,19(4):152-158.5 辛强,朱卫兵,胡璟基于ISO26262的新能源汽车电子电器部件功能安全开发简介J.汽车零部件,2 0 2 1(6):63-65.(编辑凌波)AggAggAggGenAggAggAggAggGenAggGenAgg=0.934,Gen=0.066AggAgg=0.184,Gen=0.816GenAgg=0.047,Gen=0.953GenAgg=0.499,Gen=0.501GenAgg=0.168,Gen=0.832GenAgg=0.319,Gen=0.681GenAgg=0.505,Gen=0.495Agg

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服