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) 来减少总测试周期时间。完整的应用程序测试需要一到两周的时间并不少见。使用基于更改的测试,可以在几分钟内测试小的更改。基于更改的测试计算每个代码更改所需的最小测试用例集,并仅运行这些测试。

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

到银行进行基线测试

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

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

审核编辑:郭婷

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

    关注

    2574

    文章

    54474

    浏览量

    786643
  • 物联网
    +关注

    关注

    2942

    文章

    47387

    浏览量

    408784
  • 摄像头
    +关注

    关注

    61

    文章

    5062

    浏览量

    102548
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    汽车软件安全测试中的痛点与Bugspot解决方案

    上海磐时PANSHI“磐时,做汽车企业的安全智库”汽车软件安全测试中的痛点与Bugspot解决方案日前在
    的头像 发表于 09-05 16:17 476次阅读
    <b class='flag-5'>汽车</b><b class='flag-5'>软件</b><b class='flag-5'>安全</b>测试中的痛点与Bugspot解决方案

    汽车软件开发阶段安全的意义与原则

    上海磐时PANSHI“磐时,做汽车企业的安全智库”好书分享/《一本书读懂智能汽车安全汽车软件
    的头像 发表于 09-05 16:16 698次阅读
    <b class='flag-5'>汽车</b><b class='flag-5'>软件</b>开发阶段<b class='flag-5'>安全</b>的意义与原则

    经纬恒润推动汽车软件安全新生态,打造全流程质量协同新范式

    日前,由ATC汽车技术平台主办的“第四届汽车软件安全技术周”在上海圆满闭幕。大会聚焦功能安全
    的头像 发表于 07-28 11:44 491次阅读
    经纬恒润推动<b class='flag-5'>汽车</b><b class='flag-5'>软件</b><b class='flag-5'>安全</b>新生态,打造全流程质量协同新范式

    新思科技如何验证更安全的智能汽车软件

    汽车软件正在迅速发展,其复杂性、安全性要求以及对高效开发流程的需求与日俱增。在这一背景下,虚拟ECU(vECU)成为加速开发和验证的关键工具,而将Rust语言集成进AUTOSAR Cl
    的头像 发表于 07-10 15:12 817次阅读
    新思科技如何验证更<b class='flag-5'>安全</b>的智能<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>

    编译器功能安全验证的关键要素

    汽车、工业、医疗等安全关键应用中,确保功能安全合规性需要严格的工具链验证。开发安全
    的头像 发表于 07-05 13:37 1341次阅读

    软件定义汽车如何影响汽车行业

    软件定义汽车(SDV)是指一些关键功能(如驾驶辅助、信息娱乐系统,甚至核心车辆行为)都由软件实现、控制并更新的汽车
    的头像 发表于 07-01 16:21 807次阅读
    <b class='flag-5'>软件</b>定义<b class='flag-5'>汽车</b>如何影响<b class='flag-5'>汽车</b>行业

    汽车安全技术全面解析#主动安全、被动安全和ADAS

    汽车安全技术包括主动安全、被动安全以及ADAS/自动驾驶辅助等多个层面。 主动安全系统 通过传感
    的头像 发表于 05-10 15:15 3422次阅读
    <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>和ADAS

    AUTO TECH China 2025广州国际汽车软件安全技术展览会:开启汽车科技新时代

    2025年11月20 - 22日,AUTO TECH China 2025 广州国际汽车软件安全技术展览会将在广州保利世贸博览馆盛大开幕,这场展会将汇聚行业前沿成果,引领
    的头像 发表于 04-12 10:49 616次阅读

    NVIDIA Halos自动驾驶汽车安全系统发布

    自动驾驶汽车的开发。正确的技术与框架对确保自动驾驶汽车驾驶员、乘客和行人的安全至关重要。 因此,NVIDIA 推出了NVIDIA Halos综合安全
    的头像 发表于 03-25 14:51 992次阅读

    密码赋能|事关智能网联汽车产品准入、召回及软件在线升级管理

    等方面的风险。密码技术是保障智能网联汽车安全性的关键技术,是智能网联汽车信息安全的基石,贯穿数据
    的头像 发表于 03-20 16:04 799次阅读
    密码赋能|事关智能网联<b class='flag-5'>汽车</b>产品准入、召回及<b class='flag-5'>软件</b>在线升级管理

    直流充电安全测试负载方案解析

    专业化的安全测试负载方案进行系统性验证。本文针对直流充电安全测试需求,深入解析关键技术及实施方案。 一、安全测试的核心挑战 故障场景多样性 需模拟充电过程中的12类典型故障(如绝缘失效
    发表于 03-13 14:38

    探秘 AUTO TECH China 2025:汽车软件安全技术的创新风暴来袭

    前沿科技的行业盛会 —— 广州国际汽车软件安全技术展览会。 此次展会作为 AUTO TECH China 2025 的关键专题展,将携手
    的头像 发表于 02-25 09:09 705次阅读
    探秘 AUTO TECH China 2025:<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>与<b class='flag-5'>安全</b><b class='flag-5'>技术</b>的创新风暴来袭

    DevSecOps自动化在安全关键软件开发中的实践、Helix QAC&amp;amp; Klocwork等SAST工具应用

    DevSecOps自动化旨在通过在软件开发生命周期的各个阶段集成安全流程,使用自动化工具和最佳实践来简化开发、安全和运营。实现DevSecOps自动化流程的一个重要部分就是使用SAST工具,以帮助尽早发现问题,减少手动测试需求,
    的头像 发表于 01-03 16:05 744次阅读
    DevSecOps自动化在<b class='flag-5'>安全</b><b class='flag-5'>关键</b><b class='flag-5'>型</b><b class='flag-5'>软件</b>开发中的实践、Helix QAC&amp;amp; Klocwork等SAST工具应用

    软件定义汽车是智能驾驶发展的关键推动力?

    编者语: 「智驾最前沿」微信公众号后台回复: C-0604 ,获取本文参考报告:《软件定义汽车,RoboTaxi前瞻》pdf下载方式。 RoboTaxi(自动驾驶出租车)作为高级别自动驾驶技术的主要
    的头像 发表于 12-23 10:48 1250次阅读
    <b class='flag-5'>软件</b>定义<b class='flag-5'>汽车</b>是智能驾驶发展的<b class='flag-5'>关键</b>推动力?

    云计算HPC软件关键技术

    云计算HPC软件关键技术涉及系统架构、处理器技术、操作系统、计算加速、网络技术以及软件优化等多个方面。下面,AI部落小编带您探讨云计算HPC
    的头像 发表于 12-18 11:23 824次阅读