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,认证是在系统级别完成的,个别工具和软件没有独立认证。在这些情况下,工具供应商会在文档和专业服务方面提供鉴定工具包和帮助,从而大大降低鉴定用于项目的工具所需的成本和工作量。

审核编辑:郭婷

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

    关注

    31

    文章

    5984

    浏览量

    90664
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74384
  • 线程
    +关注

    关注

    0

    文章

    510

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    通用自动化测试系统:FCT、ATE、ICT、PCBA功能测试

    在现代制造业中,自动化测试已经成为提高生产效率、降低错误率、提升产品质量的关键环节。尤其是在电子产品的测试过程中,FCT(功能测试)、ATE
    发表于 04-13 14:54

    电测行业中都有哪些射频器件自动化测试软件

    在5G通信、卫星互联网、汽车雷达等应用驱动下,射频器件的测试复杂度呈指数级增长。传统手动测试模式不仅效率低下,更难以保证多批次产品的一致性。自动化测试
    的头像 发表于 03-31 17:44 1324次阅读
    电测行业中都有哪些射频器件<b class='flag-5'>自动化</b><b class='flag-5'>测试</b><b class='flag-5'>软件</b>?

    ATE测试是什么?电源企业为什么必须上自动化测试

    在电源行业快速发展的年代,产品质量、生产效率与成本控制成为企业竞争的关键。很多电源厂家都在关注ATE 测试,但不少人仍不清楚 ATE测试是什么,也不明白自动化
    的头像 发表于 03-24 14:37 345次阅读
    ATE<b class='flag-5'>测试</b>是什么?电源企业为什么必须上<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>?

    AI辅助软件测试:几个关键路径

    软件测试是保障质量的关键环节,但测试用例设计耗时、覆盖分析繁琐、自动化脚本维护成本高等问题,一直困扰着
    的头像 发表于 03-23 15:34 147次阅读

    Parasoft C/C++test:嵌入式安全关键行业的一体软件测试解决方案

    缝融入 DevOps 的自动化测试工具。Parasoft C/C++test 正是为解决这一痛点而生,它是面向嵌入式安全关键行业的集成软件
    的头像 发表于 03-06 09:42 383次阅读

    嵌入式软件单元测试中AI自动化与人工检查的协同机制研究:基于专业工具的实证分析

    分析、工具评估、实证研究与标准解读,得出以下结论: ‌嵌入式软件安全关键性、实时性与硬件耦合性,对单元测试的要求远高于通用软件‌,必须使用
    发表于 12-31 11:22

    自动化测试的「千里眼」:当RTSM远程控制遇上自动化测试效率直接拉满!

    自动化痛点】自动化测试的“黑箱困境”:你真的敢说“完全放心”? 凌晨2点,测试工程师小李盯着电脑屏幕上的自动化脚本进度条——第17步卡住了
    的头像 发表于 12-11 11:26 493次阅读
    <b class='flag-5'>自动化</b><b class='flag-5'>测试</b>的「千里眼」:当RTSM远程控制遇上<b class='flag-5'>自动化</b>,<b class='flag-5'>测试</b>效率直接拉满!

    CI/CT自动化测试解决方案

    北汇信息可以提供Jenkins、Gitlab Runner CI和自研平台等的CI/CT整体解决方案,通过CI/CT自动化测试执行、测试策略定制、测试任务
    的头像 发表于 11-12 16:01 1602次阅读
    CI/CT<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>解决方案

    测试小白3分钟上手,零代码自动化测试平台,15分钟搭建自动化测试方案

    还在为不懂代码、搭建测试方案耗时久而发愁?ATECLOUD 零代码自动化测试平台,专为自动化测试量身打造,小白3 分钟就能轻松上手,15 分
    的头像 发表于 09-22 17:52 1020次阅读
    <b class='flag-5'>测试</b>小白3分钟上手,零代码<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>平台,15分钟搭建<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>方案

    电源模块的短路保护如何通过自动化测试软件完成测试

    在当今电力电子领域,电源模块的可靠性至关重要,短路保护作为其关键特性,需通过精确的自动化测试软件进行验证。本文将整理如何借助自动化
    的头像 发表于 09-03 19:10 1011次阅读
    电源模块的短路保护如何通过<b class='flag-5'>自动化</b><b class='flag-5'>测试</b><b class='flag-5'>软件</b>完成<b class='flag-5'>测试</b>

    如何用Renix实现网络测试自动化: 从配置分离到多厂商设备支持

    文章主要介绍如何使用Renix高层封装API编写自动化脚本的基础知识和技巧。只要熟悉测试流程,不需要很强的代码能力就可以顺利编写自动化测试
    的头像 发表于 08-27 15:21 775次阅读
    如何用Renix实现网络<b class='flag-5'>测试</b><b class='flag-5'>自动化</b>: 从配置分离到多厂商设备支持

    除了LabVIEW还有哪些自动化测试软件

    NI 开发的 LabVIEW 软件在工业控制领域中一直占有举足轻重的地位,其市场占有率在一众平台中也是领先的,那么除了 LabVIEW 拿有哪些自动化测试软件?本文将介绍一些
    的头像 发表于 07-30 17:18 1246次阅读
    除了LabVIEW还有哪些<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>的<b class='flag-5'>软件</b>?

    自动化测试平台ATECLOUD推出AI算法功能

    作为纳米软件自主研发的自动化测试平台,ATECLOUD 始终致力于为用户提供高效优质的测试解决方案。面对5G、AI等前沿技术的迭代发展,平台深度融合新技术持续升级
    的头像 发表于 07-22 16:10 1003次阅读
    <b class='flag-5'>自动化</b><b class='flag-5'>测试</b>平台ATECLOUD推出AI算法功能

    车机交互测试自动化实现路径与案例分析

    测试设备是车机交互测试自动化实现的核心支撑,通过合理选型、部署和应用北京沃华慧通测控技术有限公司汽车测试设备,结合科学的实现路径和丰富的案例经验,能够有效提高车机交互
    的头像 发表于 07-10 09:24 1558次阅读
    车机交互<b class='flag-5'>测试</b><b class='flag-5'>自动化</b>实现路径与案例分析

    UTP系统通过ModBus协议对温度传感器的自动化测试介绍

    、4G/5G)、显示识别(设备屏幕、按钮、LED等)、设备操控、软件功能等各方面进行自动化测试,能够进行各种复杂时序的自动化测试。 接下来,
    的头像 发表于 06-07 15:12 978次阅读
    UTP系统通过ModBus协议对温度传感器的<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>介绍