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

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

3天内不再提示

使用测试自动化左移您的安全关键软件测试

星星科技指导员 来源:嵌入式计算设计 作者:Marc Brown 2022-06-29 14:25 次阅读

我们正处于安全关键软件的成本危机中。现在需要的增加的功能已经超出了支付其开发费用的能力。例如, 波音 787 计划需要 650 万行代码,设计、开发和测试花费了 40 亿美元。

主要安全关键项目的趋势显示总成本呈指数级增长,软件在年度开发总预算中占较大比例。使用以前项目中使用的相同技术,下一个大型航空航天项目可能无法负担。所以,我们能做些什么?

安全认证以及所需的测试和验证是软件开发预算的很大一部分。在开发生命周期的早期开始软件测试,同时利用自动化在成本、风险和进度方面带来了巨大的收益,如图 1 所示。

pYYBAGK78HaAIn8LAAHAR5Jk-A8323.png

【图1 | 商业航空项目中每行代码的软件开发成本]

创建和发现错误的位置以及成本影响

不出所料,大多数缺陷都是在项目开始时引入的,甚至在编写第一行代码之前。大多数错误是在测试过程中发现并修复的,但很大一部分(高达 20%)是在产品发货后的操作过程中发现的。在经过认证的系统中,这要么意味着极其昂贵的修复-测试-重新认证周期,要么意味着针对问题的操作员解决方法(图 2)。

pYYBAGK78H6ALWkeAAIkglkED84987.png

【图2 | 在不同开发阶段引入和检测到的缺陷百分比]

在项目的整个过程中,发现和修复缺陷的成本会成倍增加。最坏的情况是在产品交付给客户后修复缺陷。部署后的缺陷修复成本是保守的,不包括对您的品牌造成的损害和现场安全事故的责任(图 3)。显然,目标是将检测到并修复的缺陷移到生命周期的早期——换句话说,“左移”。此外,希望减少传递给客户的缺陷数量(每个领域的现实)。

poYBAGK78IWAWM-pAAHQpPjYJcM679.png

【图3 | 在每个开发阶段查找和修复错误的相对成本。在需求和设计期间是基线 (1x) 和修复缺陷成本最低的地方。]

测试自动化在左移中的作用

安全关键软件行业认识到需要改变做事的方式。太多的项目试图重新发明轮子,而认证新软件既耗时又昂贵。

新产品的连接性和功能性的增长意味着方法需要改变。任何安全关键项目的很大一部分都是测试,而自动化对于实现安全、安保和质量目标是绝对必要的。以下是测试自动化工具如何支持新的软件开发方法并提高测试和文档生产力的示例:

支持敏捷和迭代开发方法: 了解瀑布方法的问题,许多团队使用更现代的开发方法来提高质量和安全性。测试自动化是任何迭代开发方法的重要组成部分,因为测试套件在模块、组件等的每个新迭代上运行。测试自动化通过可重复的自动化测试支持这些方法,为每个测试提供不同级别的报告,但也可以累积结果随着时间的推移。动态分析工具对于检测难以检测的运行时错误至关重要,而静态分析在测试开始前检测缺陷方面起着重要作用。

支持软件检查: 检查是在开发生命周期早期消除缺陷的良好实践。检查意味着审查所有内容,而不仅仅是源代码。例如,检查需求和设计对于防止系统中的主要错误来源至关重要(再次图 2)。许多错误是从字面上设计到系统中的。工具在这个阶段发挥的作用较小,但确实提高了代码审查的有效性。自动化单元测试、动态错误检测和静态分析在项目的早期编码阶段提供了极大改进的错误检测。自动化测试的结果可以在代码审查中呈现,从而减少对手动错误检测的依赖,并留出更多时间来检测不正确的需求和设计决策。

提高测试效率: 手动测试乏味且可重复性较差。结果收集可能是临时的,尽管结果“正确”,但仍可能遗漏错误。实现所需的代码覆盖率,这取决于安全标准和项目的关键性,很难跟踪。测试自动化不仅减少了测试的乏味和可重复性,而且高级测试工具的报告功能创建了有关项目状态的重要管理信息。添加动态分析(在代码运行时分析代码(以检测棘手的运行时错误))和静态分析(在代码运行之前分析代码)增加了测试工具的错误检测能力。

自动化编码标准合规性: 许多安全关键项目需要源代码标准。例如,MISRA 在汽车软件中很常见,但已在其他行业中获得认可。一些标准要求代码符合满足特定目标的公司标准。在每种情况下,手动强制执行代码合规性都是乏味且容易出错的。静态分析工具可以强制执行合规性,高级工具通过检测超出格式违规的错误更进一步。

自动化认证文档: 实现软件安全认证的大部分工作量是记录流程、验证和验证。测试自动化显着降低了记录测试结果和覆盖分析的成本。

加速第三方软件的重用: 提高生产力的一个关键策略是软件重用。理想情况下,可以使用已经过认证的组件来降低这些子单元的开发成本。项目需要使用 COTS(现成的商业)软件以及可能的开源和其他源代码。使用静态和动态分析工具自动评估该软件可降低使用这些组件的风险。

提高质量、安全性和保障性: 即使是严格的测试方案也可能遗漏严重错误。例如,仅代码覆盖率不足以确保在安全攻击或多线程代码情况下的正确行为。静态分析工具可以在不运行特定测试的情况下检测源代码中的错误,并且可以发现单元或系统测试中难以发现的安全漏洞等错误。动态分析工具可以在测试期间检测运行代码中可能反映在测试结果中的错误(例如,缓慢的内存泄漏)。系统测试期间的模糊测试和渗透测试可以发现在正常操作条件下遗漏的错误。总体而言,最先进的工具发现的额外缺陷和安全漏洞有助于降低成本、风险以及使其投入生产的 20% 左右的许多错误。

左移有什么影响?

很明显,必须采取一些措施来解决图 2 中清楚显示的问题。在生命周期的开始,引入了太多缺陷并且未被发现,而当产品交到客户手中时,产品中留下了太多缺陷。 采用新的开发方法、重用组件、利用 COTS 和开源以及工具自动化都是提高开发效率的关键步骤。

pYYBAGK78I6AcP1GAAJnvm7qhWI131.png

【图4 | 该图显示了改进的开发过程,该过程在生命周期的早期转移了对错误和安全漏洞的检测。]

从图 3 中我们知道,每个开发阶段的成本都会显着增加。图 5 显示了修复传统方法与图 4 中所示方法的缺陷的成本比较。更早发现和修复错误,不出所料,成本低于稍后修复它们。在此处介绍的情况下,总体成本差异约为 40%,有利于左移方法。

poYBAGK78JaATFDoAAI44-EppR8583.png

[图 5. 该图显示了修复传统方法与左移方法中的错误的相对成本。即使总缺陷数量相同,早期检测也会显着降低成本。]

认证工具链和资格协助的重要性

在安全关键项目中使用自动化工具需要对工具本身的信任。产品制造商有责任确信用于创建软件的流程和工具符合标准要求。工具供应商可以通过在出售给制造商之前获得安全标准机构认证的工具来提供帮助,或者在无法进行此类预认证的情况下,提供资格援助。然后,他们可以在自己的认证提交中使用工具供应商的认证证据,并减少所需的工作量。例如, Parasoft C/C++test 已通过 TÜV SÜD 认证,符合 IEC 61508 和 ISO 26262 标准的安全相关软件开发资格。

在某些软件安全标准中,例如 DO-178B 和 DO-178C,认证是在系统级别完成的,个别工具和软件没有独立认证。在这些情况下,工具供应商会在文档和专业服务方面提供鉴定工具包和帮助,从而大大降低鉴定用于项目的工具所需的成本和工作量。

审核编辑:郭婷

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

    关注

    29

    文章

    5498

    浏览量

    79047
  • 代码
    +关注

    关注

    30

    文章

    4733

    浏览量

    68294
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19638
收藏 人收藏

    评论

    相关推荐

    探索Playwright:前端自动化测试的新纪元

    作者:京东保险 张新磊 背景 在前端开发中,自动化测试是确保软件质量和用户体验的关键环节。随着Web应用的复杂性不断增加,手动测试已经无法满
    的头像 发表于 10-22 14:27 101次阅读

    开关电源自动化测试设备:如何实现自动化测试

    开关电源自动化测试设备是将测试软件测试硬件集成在一个电源测试柜中的ate
    的头像 发表于 08-30 18:19 1141次阅读
    开关电源<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>设备:如何实现<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>?

    台式机电源测试软件自动化检测电源性能好坏

    纳米软件NSAT-8000电源测试系统以自动化测试平台ATECLOUD为基础,封装仪器指令,采用云计算和多元算子服务,通过简单拖拽仪器指令、循环、计算、条件节点等,就可以快速完成台式机
    的头像 发表于 07-05 11:36 660次阅读
    台式机电源<b class='flag-5'>测试</b><b class='flag-5'>软件</b>:<b class='flag-5'>自动化</b>检测电源性能好坏

    软件接口自动化测试,使用软件工具+工装治具测试

    软件接口自动化测试结合软件工具与工装治具的应用,极大地提升了测试的效率和质量,是现代软件开发不可
    的头像 发表于 06-07 15:59 1261次阅读

    基于TAE的数字钥匙自动化测试解决方案

    通过自动化测试执行软件TAE、总线监控分析工具VBA和程控电源,的联合调用,实现数字钥匙 的功能测试、性能测试、诊断
    的头像 发表于 05-29 15:15 861次阅读
    基于TAE的数字钥匙<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>解决方案

    纳米软件自动化测试合作:4644芯片与VPX模块测试

    近日,纳米软件与西安广勤电子技术有限公司就4644电源芯片自动化测试和VPX电源自动化测试达成战略合作。在双方进行深入探讨后,纳米
    的头像 发表于 05-09 15:49 393次阅读
    纳米<b class='flag-5'>软件</b><b class='flag-5'>自动化</b><b class='flag-5'>测试</b>合作:4644芯片与VPX模块<b class='flag-5'>测试</b>

    ATECLOUD自动化测试系统区别于传统自动化测试系统

    纳米软件通过多年业务积累,具有丰富的软件开发和系统集成经验。ATECLOUD自动化测试平台也一直在迭代升级,扩展功能,致力于让测试变得更简单
    的头像 发表于 05-08 15:58 391次阅读
    ATECLOUD<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>系统区别于传统<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>系统

    纳米软件自动化测试方案:新能源车内连接器测试

    在使用纳米软件ATECLOUD自动化测试系统时,系统会通过设定电压和电流来调整电源,并且会实时显示温度巡检仪采集到的温度数据。一旦温度超过阈值,系统会在软件进行红色显示报警,之后立即关
    的头像 发表于 04-29 17:59 715次阅读
    纳米<b class='flag-5'>软件</b><b class='flag-5'>自动化</b><b class='flag-5'>测试</b>方案:新能源车内连接器<b class='flag-5'>测试</b>

    纳米软件分享:电源管理芯片自动化测试方案

    在纳米软件与江苏某科技公司合作的电源管理芯片产线测试项目中,需要完成单入单出、单入双出、单入三出、单入四出系列微模块的14个项目的自动化测试。该公司之前是手动
    的头像 发表于 04-23 13:47 429次阅读
    纳米<b class='flag-5'>软件</b>分享:电源管理芯片<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>方案

    电源自动化测试系统选择指南:稳定、可靠测试

    ,打破了传统测试壁垒,并不断迭代升级,旨在为用户带来更好的测试服务体验。纳米软件从仪器选型、软件开发,到数据报告、数据分析,提供软硬件一体
    的头像 发表于 04-15 15:00 476次阅读

    Eggplant—HMI自动化测试软件

    Eggplant是英国TestPlant公司推出的创新性自动化测试工具。通过VNC或RDP通讯技术远程桌面连接被测对象,基于图像和文字识别算法进行对象定位,进而驱动和确认被测HMI设备的响应,能够
    的头像 发表于 01-23 18:00 555次阅读

    电源测试怎么自动化?电源模块自动化测试系统如何实现?

    纳米软件在电测行业深耕十余年,在行业的大背景下,为了进一步完善自动化测试,开发出了新的智能的电源模块自动化
    的头像 发表于 12-15 14:40 807次阅读
    电源<b class='flag-5'>测试</b>怎么<b class='flag-5'>自动化</b>?电源模块<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>系统如何实现?

    LabVIEW与Tektronix示波器实现电源测试自动化

    LabVIEW与Tektronix示波器实现电源测试自动化 在现代电子测试与测量领域,自动化测试系统的构建是提高效率和精确度的
    发表于 12-09 20:37

    特种电源模块测试方法是什么?自动化测试软件如何对其测试

    特种电源区别于普通电源,由于其设计要求特别高及其功能特点,对于特种电源的研发、产线测试要求也非常严格,确保其可以满足设备需求,提供稳定的电源。因此自动化测试是特种电源测试的高可靠性
    的头像 发表于 12-01 14:50 422次阅读

    开关电源自动化测试方案的流程是什么?开关电源测试系统如何测试

    开关电源测试系统是针对开关电源测试而开发的一种智能自动化测试系统,打破传统测试程序与缺陷,满足客户新的
    的头像 发表于 11-22 16:37 1073次阅读
    开关电源<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>方案的流程是什么?开关电源<b class='flag-5'>测试</b>系统如何<b class='flag-5'>测试</b>?