0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

偿还安全关键型汽车软件的技术债务

星星科技指导员 来源:嵌入式计算设计 作者:John Paliotta 2022-06-16 14:40 次阅读

车辆已经从机械设备发展为复杂的集成技术平台,其嵌入式软件为所有主要系统提供动力,包括:发动机控制、动力总成、制动、驾驶员辅助和信息娱乐。现在,研究预测,到 2017 年,五分之四的新车将拥有互联网连接[1]。随着消费级信息娱乐软件和安全关键软件之间的界限变得模糊,这种“永远在线”的连接将带来新的挑战。

例如,远程信息处理系统提供车载语音控制应用程序等功能,以及与 GPS 系统交互以实现导航和交通功能。很快,车辆的 GPS 系统将不仅仅用于指示方向。随着我们进入联网和自动驾驶汽车的时代,诸如“自动 SOS”之类的功能将在这种现有的远程信息处理架构之上构建,该功能可以在发生碰撞时召唤帮助。

当阅读最近有关主要汽车制造商与美国国家公路交通安全管理局 (NHTSA) 达成协议将自动紧急制动 (AEB) 作为大多数汽车的标准设备的新闻时,我想到了从消费级向安全关键型转变的另一个例子。到 2021 年,AEB 系统由软件控制,这些软件为摄像头、雷达、接近传感器等提供动力,所有这些都需要完美运行,以便在驾驶员反应缓慢时安全停车。这也意味着以前用于被动驾驶辅助(例如停车)的嵌入式摄像头现在将成为安全关键系统的一部分。

前方无法克服的质量问题

大多数新软件应用程序都建立在遗留代码库之上。由于大量金钱和时间投资已投入到开发现有应用程序中,因此自然会对尽可能多地利用已经完成的工作感兴趣。

重用现有代码的问题在于,遗留应用程序通常背负着大量的技术债务。技术债务是系统初始设计和开发过程中走捷径的隐喻。这种“债务”通常是由于软件的持续开发而没有正确的质量控制流程造成的,通常是由于发布新版本的巨大业务压力。所产生的技术债务的累积责任最终使软件难以维护。

减少技术债务和提高质量的关键是重构组件(在不改变其外部行为/API 的情况下重构应用程序组件的过程),但开发人员常常因为害怕破坏现有功能而犹豫不决。重构的最大障碍之一是缺乏足够的测试来形式化应用程序的现有正确行为。

如果没有足够的测试,很难重构应用程序并且不会导致功能或性能的回归。根据 Gartner 的一项研究,“缺乏可重复的测试用例限制了组织以客观、可衡量的方式展示功能等效性的能力。”缺乏足够的测试最终意味着软件应用程序无法轻易修改以支持新的应用程序。特征。

偿还技术债务

基线测试,也称为特征测试,对于测试不足的遗留代码库很有用。已经部署的应用程序的开发人员不太可能返回并实现所有应该生成的低级测试。他们正确地认为部署的应用程序“运行良好”,那么他们为什么要花几个月的时间重新测试呢?

在这种情况下,更好的选择是使用自动测试用例生成 (ATG) 来快速提供一组基线测试,以捕获和表征现有应用程序行为。虽然这些测试并不能证明正确性,但它们确实使应用程序今天所做的工作正式化,这非常强大,因为它允许验证未来的更改以确保它们不会破坏现有功能。

pYYBAGKq0GKAInlQAABk4KoNH5o266.png

【图2 | 基线测试正式确定了应用程序今天所做的事情,这允许验证未来的更改以确保现有功能不会被破坏。基于变更的测试可用于仅运行显示变更效果所需的最小测试用例集。]

拥有一套完整的基线测试的另一个好处是可以使用基于变更的测试 (CBT) 来减少总测试周期时间。完整的应用程序测试需要一到两周的时间并不少见。使用基于更改的测试,可以在几分钟内测试小的更改。基于更改的测试计算每个代码更改所需的最小测试用例集,并仅运行这些测试。

因此,开发人员能够对代码进行增量更改,并确保这些更改不会破坏软件的现有行为。他们还能够做进一步的分析,如果有什么东西被打破了,如果引入了一个错误,一个实际上应该存在的功能已经被删除,或者是否存在一个应该解决的错误,因为它可能有其他后果。

到银行进行基线测试

在支持物联网的世界中,大量遗留代码将进入新应用程序的关键路径。如果没有适当的软件质量方法来确保此遗留代码的完整性,系统的整体安全性可能会受到影响。

基线测试可以帮助减少现有代码库中的技术债务,让开发人员有信心重构和增强这些代码库,并最终让这些遗留应用程序的所有者获得更多价值。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2548

    文章

    50698

    浏览量

    752044
  • 物联网
    +关注

    关注

    2903

    文章

    44284

    浏览量

    371324
  • 摄像头
    +关注

    关注

    59

    文章

    4810

    浏览量

    95451
收藏 人收藏

    评论

    相关推荐

    RT-Thread出席2024汽车软件安全技术周!

    背景ATC作为汽车技术会议领域的领先平台,专注于汽车电子与软件版块的技术交流将近10年历程,深耕行业问题,触达客户需求。并于2022年8月首次推出“
    的头像 发表于 07-17 08:35 233次阅读
    RT-Thread出席2024<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>与<b class='flag-5'>安全</b><b class='flag-5'>技术</b>周!

    更深入地了解汽车与航空电子等安全关键应用的IP核考量因素

    中国已经连续十多年成为全球第一大汽车生产国和消费市场,同时越来越多的制造商正在考虑进入无人机和飞行汽车等低空设备,而所有的这些产品都需要先进芯片的支撑,同时这些芯片又都是安全关键
    的头像 发表于 07-09 16:22 277次阅读
    更深入地了解<b class='flag-5'>汽车</b>与航空电子等<b class='flag-5'>安全</b><b class='flag-5'>关键</b><b class='flag-5'>型</b>应用的IP核考量因素

    2024 ACT汽车软件安全技术周 龙智即将携全方位汽车软件开发解决方案亮相,助力应对汽车软件开发功能安全

    2024年7月18-19日(周四-周五),2024第三届ACT汽车软件安全技术周将在上海佘山翰悦阁酒店举办。 龙智即将携汽车开发及管理解决
    的头像 发表于 07-08 16:17 510次阅读
    2024 ACT<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>与<b class='flag-5'>安全</b><b class='flag-5'>技术</b>周 龙智即将携全方位<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>开发解决方案亮相,助力应对<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>开发功能<b class='flag-5'>安全</b>

    安全关键技术有哪些

    安全是确保云计算环境中数据和应用程序安全的一种技术。随着云计算的普及,云安全已成为企业和个人关注的焦点。本文将详细介绍云安全
    的头像 发表于 07-02 09:20 551次阅读

    如何让电动汽车安全

    电动汽车(ElectricVehicles,EVs)的安全性受多个因素的影响,包括电池技术、车辆设计、软件系统等。以下是几个关键
    的头像 发表于 06-28 08:29 1042次阅读
    如何让电动<b class='flag-5'>汽车</b>更<b class='flag-5'>安全</b>

    ECU和汽车处理架构:虚拟化和软件定义汽车

    )的影响。 ECU是控制车内许多安全关键和非安全关键任务的专用计算机。例如,今天的大多数
    的头像 发表于 06-26 16:56 752次阅读

    网络安全数字孪生:一种新颖的汽车软件解决方案

    汽车软件的数字孪生为整个汽车生命周期的汽车软件提供了一种新的方法。软件孪生
    的头像 发表于 04-22 17:19 813次阅读
    网络<b class='flag-5'>安全</b>数字孪生:一种新颖的<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>解决方案

    ETAS与BlackBerry QNX合作为软件定义汽车和网络信息提供安全基础

    QNX业务部门已签署合同,将共同销售和推广软件解决方案,以加速下一代软件定义汽车(SDVs)安全关键功能的开发。
    的头像 发表于 04-12 09:52 419次阅读

    域控软件安全隔离关键技术剖析:MCU域 VS SOC域

    安全隔离的底层原理是避免软件对内存的不合理访问,以满足功能安全要求。硬件层面上,有MPU、MMU这样的硬件进行程序内存空间的保护和约束;软件层面上,容器化
    的头像 发表于 04-11 14:00 1059次阅读
    域控<b class='flag-5'>软件</b><b class='flag-5'>安全</b>隔离<b class='flag-5'>关键技术</b>剖析:MCU域 VS SOC域

    AEB是一种汽车主动安全技术,主要由哪3大模块构成?

    AEB是一种汽车主动安全技术,主要由哪3大模块构成
    发表于 02-20 06:06

    汽车软件开发CAEdge框架关键技术

    软件定义汽车中,汽车功能主要通过软件实现,不再仅仅依赖硬件。这种将软件与硬件解耦的方式使得新功能和软件
    发表于 01-24 14:16 519次阅读
    <b class='flag-5'>汽车</b><b class='flag-5'>软件</b>开发CAEdge框架<b class='flag-5'>关键技术</b>

    电动汽车充电的关键技术

    随着电动汽车的快速发展,如何安全、稳定、快速地为电动汽车的电池充电,便成为电动汽车能否广泛被消费者接受的关键要素之一,其中确保电池充电
    的头像 发表于 01-24 09:21 600次阅读
    电动<b class='flag-5'>汽车</b>充电的<b class='flag-5'>关键技术</b>

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

    ,对满足功能安全ASIL等级的汽车嵌入式软件单元验证技术进行详细介绍,从而提高软件质量,减少软件
    的头像 发表于 01-07 11:27 1010次阅读
    基于功能<b class='flag-5'>安全</b>的<b class='flag-5'>汽车</b>嵌入式<b class='flag-5'>软件</b>单元验证<b class='flag-5'>技术</b>研究

    SCADE—产品级安全关键系统的MBD开发套件

    随着新能源三电、智能驾驶等新技术的应用,汽车中衍生出很多安全关键零部件,如BMS、VCU、MCU、ADAS等,相应的软件
    的头像 发表于 01-05 14:12 559次阅读
    SCADE—产品级<b class='flag-5'>安全</b><b class='flag-5'>关键</b>系统的MBD开发套件

    汽车网络安全:防止汽车软件中的漏洞

    汽车网络安全汽车开发中至关重要,尤其是在 汽车软件 日益互联的情况下。在这篇博客中,我们将分享如何防止汽车网络安全漏洞。 静态分析工具有助
    的头像 发表于 12-21 16:12 1061次阅读
    <b class='flag-5'>汽车网络安全</b>:防止<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>中的漏洞