• 181查看
  • 0回复

[测试标定] 汽车软件测试入门指南

[复制链接]


该用户从未签到

发表于 5-3-2024 16:18:51 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师



    1 行业背景

随着新能源汽车朝着电气化、智能化的发展,软件价值被提升到前所未有的高度,“软件定义汽车”便成了行业中的一个前沿方向。有数据显示,在目前的量产车中,软件代码多达1亿5000万行,随着智能化功能的逐步叠加,代码数量还会呈几何数增长。然而,随着软件在整车中占比越来越大,原本以硬件为主的机械产品变得越发复杂,软件故障频率增加,正逐渐演变成为汽车召回主因。如何降低甚至避免汽车软件故障、提高汽车可靠性是整个汽车行业需要深思的问题。单以过去半年来看,去除XX的变速箱缺陷外,国内汽车因电器设备相关故障展开的召回超过52万辆,远超第三位发动机故障,占召回总量超两成。放大至与系统程序和软件设计相关缺陷车辆,多达123.7万辆,涉及品牌有14家汽车企业。

汽车软件测试入门指南w1.jpg

数据来源于《上半年召回255万辆汽车软硬件BUG频出》http://auto.youth.cn/xw/202207/t20220702_13816308.htm


    2 软件测试的发展前景


    新能源汽车的发展,对于汽车相关的人才需求越来越多;

    软件定义汽车时代的来临,随着控制器自主开发力度的加强,作为V流程中必备的开发环节,软件测试工程师岗位需求会越来越多;

    控制器集成化,即域控制器的开发,功能集成程度越来越高,对于软件测试工程师的能力及知识面及学习能力要求越来越高;

    软件测试作为汽车软件开发中的一个环节,工资待遇也是不错的。

    随着软件定义汽车的发展趋势,硬件将会同质化越来越严重,差异化竞争主要体现在软件上,软件的质量很大程度上决定了汽车的质量。因此,软件测试将会在汽车行业越来越受到重视。


    3 软件测试入门指南

汽车软件测试入门指南w2.jpg

从整个工作场景开始谈谈汽车软件入门所需要具备的条件。工作场景中包括测试资料、测试工程师、测试设备、被测控制器,如何让四者有机的运行起来,就是入门所具备的条件。

1、测试资料主要指的是测试流程及技术,对于一个流程技术,了解、会、掌握、精通的等级对于人员的要求是不同的,入门的话,需要做到掌握的程度。该部分主要侧重于实践,在实际的工作岗位上进行历练,如果需要提前进行入门的话,要学会测试流程及测试技术,可以提前学习以下资料:


    以下主要是讲互联网行业的软件测试,但是测试之道是相通的,可以挑选2-3本进行学习。下面推荐汽车行业软件测试相关的流程与技术标准:

汽车软件测试入门指南w3.jpg

ISO/IEC/IEEE29119-1 Software and systems engineering — Software testing — Part 1: Generalconcepts

ISO/IEC/IEEE29119-2 Software and systems engineering— Software testing — Part 2: Test processes

ISO/IEC/IEEE29119-3 Software and systems engineering— Software testing — Part 3: Test documentation

ISO/IEC/IEEE29119-4 Software and systems engineering— Software testing — Part 4: Test techniques

ISO/IEC/IEEE29119-5 Software and systems engineering— Software testing — Part 5: Keyword-Driven Testing


    《IATF16949 汽车行业质量管理体系标准》,国际标准化组织(ISO)公布的一项行业性的质量体系要求,它的全名是“质量管理体系—汽车行业生产件与相关服务件的组织实施ISO9001的特殊要求”,英文为IATF16949。


    《新能源汽车车载控制器软件功能测试标准》


    随着系统复杂性的提高,软件和机电设备的应用,来自系统失效和随机硬件失效的风险也日益增加,制定ISO 26262标准的目的是使得人们对安全相关功能有一个更好的理解,并尽可能明确地对它们进行解释,同时为避免这些风险提供了可行性的要求和流程。ISO 26262为汽车安全提供了一个生命周期(管理、开发、生产、经营、服务、报废)理念,并在这些生命周期阶段中提供必要的支持。该标准涵盖功能性安全方面的整体开发过程(包括需求规划、设计、实施、集成、验证、确认和配置)。

汽车软件测试入门指南w4.jpg

ISO26262-1:2018 Road vehicles — Functional safety — Part 1: Vocabulary

ISO26262-2:2018 Road vehicles — Functional safety — Part 2: Management offunctional safety

ISO26262-3:2018 Road vehicles — Functional safety — Part 3: Concept phase

ISO26262-4:2018 Road vehicles — Functional safety — Part 4: Product development atthe system level

ISO26262-5:2018 Road vehicles — Functional safety — Part 5: Product development atthe hardware level

ISO26262-6:2018 Road vehicles — Functional safety — Part 6: Product development atthe software level

ISO26262-7:2018 Road vehicles — Functional safety — Part 7: Production, operation,service and decommissioning

ISO26262-8:2018 Road vehicles — Functional safety — Part 8: Supporting processes

ISO26262-9:2018 Road vehicles — Functional safety — Part 9: Automotive safetyintegrity level (ASIL)-oriented and safety-oriented analyses

ISO26262-10:2018 Road vehicles — Functional safety — Part 10: Guidelines on ISO26262

ISO26262-11:2018 Road vehicles — Functional safety — Part 11: Guidelines onapplication of ISO 26262 to semiconductors

ISO26262-12:2018 Road vehicles — Functional safety — Part 12: Adaptation of ISO26262 for motorcycles


    ASPICE是“Automotive Software Process Improvement and Capability ”的缩写,顾名思义,这是一套用于改进汽车行业软件开发过程和提升软件能力的一套标准化流程管理,说白了就是一套针对汽车行业软件开发的方法,过程和工具集。目的就是减少问题的概率,减少软件bug的缺陷数量,降低版本发布的次数。

汽车软件测试入门指南w5.jpg

软件测试技术:包括软件测试的定义,原则,软件测试的基本过程,经典测试技术(决策表,状态图,等价类,边界值等),以及探索测试技术等。软件测试技术作用于被测控制器的功能需求,从而设计出测试用例。

2、测试工程师主要是岗位对于测试工程师的要求,百度百科这样定义:测试工程师,软件质量的把关者,工作起点高,发展空间大。我国的软件测试职业还处于一个发展的阶段,所以测试工程师具有较大发展前景。与此同时,测试是一个枯燥、工作任务重、工作态度认真,对于沟通能力也要求较高,总结起来就是心理素质过硬、能吃苦、沟通能力强、心细思维活跃。同时保持一颗爱学习的心,技术发展的越来越快,需要不断补充的知识越来越多,对于岗位的能力要求也越来越高。

(1)沟通能力

(2)要有严谨、稳重的做事风格

(3)具有责任感

(4)爱学习

(5)心理素质过硬

(6)过硬的技术能力

…….

3、测试设备,学会使用工具是执行软件测试必备的技能,技能是通过学会使用设备、学会更新和维护设备、学会搭建测试设备、学会开发部分设备进行进阶。入门的话可以通过以下途径进行:

MIL方向:
    知网查找相关论文了解工具的架构。学习相关的软件技能,实验软件、执行自动化软件,Python、C、Simulink等编程技术,以及被控对象的建模原理及其参数化的方法等。对于初学者如果相关测试工具有限,可以先把C语言,以及Matlab/Simulink的能力进行提前补充或者加强。测试工具:静态测试软件(QAC、Klocwork、Coverity、Matlab/Simulink等)单元测试软件/集成测试软件(VectorCAST、TestBED、Tessy、C++Test、Matlab/Simulink等)

HIL方向:
    知网查找相关论文了解设备的架构,HIL系统基本原理,HIL系统各设备的功能及作用,例如各种板卡的基本功能描述,RTPC的功能描述,FIU故障注入单元的功能描述等。学生通过实习的机会掌握测试设备的使用,或者有条件的学校实验室进行学习。参加设备供应商的培训,dspace/NI/恒润等设备厂商。学习相关的软件技能,实验软件、执行自动化软件,总线仿真软件,Python、C、Simulink等编程技术,以及被控对象的建模原理及其参数化的方法等。HIL测试工具:dspace/NI/恒润等等。

4、被测控制器,主要是指被测件,软件运行在被测控制器上,需要对于控制器有一定的认知。

可以提前学习以下资料,建立一定程度的认知,后续工作岗位慢慢掌握透彻:

MIL方向:
    学习汽车相关的基本知识:汽车构造,汽车理论,发动机原理,动力电池技术,电动机原理,自动控制原理等等。软件开发技术,单片机开发技术;

HIL方向:
    学习汽车相关的基本知识:汽车构造,汽车理论,发动机原理,动力电池技术,电动机原理,自动控制原理等等。汽车软件相关的标准协议(比如CAN/CANFD规范,LIN规范,车载以太网规范,UDS规范等)。数电模电基础知识,软件开发技术,单片机开发技术等。

汽车软件测试入门指南w6.jpg

控制器硬件架构图

汽车软件测试入门指南w7.jpg

控制器软件架构图

总体上来说,对于入门,学习的路径是从整车相关知识到系统,到子系统;对于实践,则是从子系统的HIL到系统级HIL,到整车级HIL。目前行业内,只要有自主开发控制器能力的企业,HIL设备都是必备的,以子系统HIL为主,大概占70%,系统大概占HIL25%,整车级大概占HIL5%。

汽车软件测试入门指南w8.jpg

由于最近游走在开发与测试整个体系下,经常会接触到开发过程中各种各样的问题,也接触到了形形色色的人,通过实际的场景和人物,下一篇文章我将谈谈《汽车控制器出现问题之后,我们是如何优雅的甩锅的?
汽车软件测试入门指南w9.jpg

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-2-2025 10:41 , Processed in 0.300151 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.