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

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

3天内不再提示

通过覆盖分析深入研究安全关键代码测试

星星科技指导员 来源:嵌入式计算设计 作者:Jay Thomas 2022-07-05 09:45 次阅读

对于安全关键代码,确保应用程序执行它应该执行的操作并正确执行这些操作的功能测试只是表面上的问题。应用程序包含隐藏的复杂性,这些复杂性可能会在不可预测的条件下出现。如果编码不正确,它们可能会导致灾难。开发人员必须深入挖掘以测试所有底层代码是否存在细微错误。但这究竟是什么意思?

虽然可以从系统需求文档手动生成基本功能测试,但使用自动化工具(生成测试工具和测试用例的工具、运行这些测试的工具以及评估测试有效性的工具)进行更深层次的测试会更有效。 最后,关键活动是通过覆盖分析完成的。

在基本层面上,函数(或过程)覆盖分析显示每个函数是否已被调用。语句覆盖更进一步,提供了一种方法来确保每一行代码至少被执行一次。但是虽然这些都很有用,但覆盖分析不仅仅是函数和语句覆盖。

安全关键代码需要更深入的分析

可以在多个级别测试代码,安全关键代码需要深入、彻底的研究。分支/决策覆盖提供了更彻底的检查,旨在证明每个分支至少被采用一次,而分支条件组合覆盖需要测试所有可能的条件组合。

这听起来很简单,但如果一个决定取决于四个或更多条件,那么测试每个组合的要求就会变得不合理。修改条件/决策覆盖或 MC/DC 旨在提供一种实用的替代方案。MC/DC 确保:

调用每个入口和出口点

每一个决定都有每一个可能的结果

决策中的每个条件都包含所有可能的结果

决策中的每个条件都显示为独立地影响决策的结果

函数调用覆盖扩展了该查询线,并通过生成有关已执行哪些函数调用的信息来构建函数覆盖概念。这很重要,因为错误通常发生在模块之间的接口中。

在某些情况下,例如受 DO-178C 等标准约束的关键航空电子应用,还需要进行更苛刻的测试。对于最关键的“DAL A”应用,DO-178C 需要目标代码验证,其中包括分析汇编代码和源代码的覆盖信息。

动态测试通常使用软件工具进行,该工具检测源代码的副本以在运行时提供覆盖率数据。随后分析该数据以准确揭示代码的哪些部分已被执行,以及执行到什么级别。它以数据和控制流程图以及带有符号的源代码等显示形式使开发人员可以看到结果(图 1)。

poYBAGLDl8WAfI2JAAD7GRVeO_8478.png

【图1 | LDRA 的 TBvision 代码覆盖为 DO-178C 等安全关键标准提供语句、分支和 MC/DC 覆盖。背景是一个分支/决策图,交叉引用了带注释的源代码。前景是每个功能和通过/失败结果的覆盖范围摘要。]

使用自动化工具减轻琐碎的测试任务

动态分析可以应用于完整的应用程序(系统测试)或它的子集(单元测试,包括集成组件测试),并且通常在完整系统可用时使用这两种方法的组合。一个集成的工具套件整理来自两个来源的信息,以提供整体覆盖率指标。单元测试工具通过静态分析代码结构,然后围绕应用程序创建一个“线束”或框架,在测试期间注入输入并接收输出,从而减轻了设置测试环境的繁琐工作。对于安全关键型应用程序,“测试向量”必须基于要求,以提供证据证明代码对预期和未预期的输入都按预期执行,但仍满足要求,仅此而已。

还可以通过对源代码的深入静态分析自动生成测试向量,这通常会导致在运行时覆盖 50% 到 75% 的代码。显然,这并不能提供正确功能的证据,但它确实在非关键应用程序中占有一席之地,否则覆盖率分析可能不会发生。即使在关键应用程序中,这种方法通过验证面对边界值、空指针和默认 switch 语句条件等数据的稳健行为,将动态分析超越了基于需求的测试。

在开发周期中尽早开始单元测试是最具成本效益的,甚至可能在目标硬件可供开发人员使用之前。这意味着使用在主机开发系统和目标硬件上应用相同测试向量的工具非常重要,以便生成一次测试用例,从而节省时间和金钱。

一个完整的工具套件还可以提供数据和控制流分析形式的分析,这是 DO-178C(航空电子)和 ISO 26262(汽车)等标准所要求的,以确保功能的每次调用都已执行,并且对数据的每次访问都已执行。它通过源代码跟踪变量并报告异常使用(图 2)。

poYBAGLDl8yACjG8AAEAXKXEqFI141.png

【图2 | 基于当前测试运行的变量和参数使用报告突出显示文件中使用变量的文件和位置,并使用允许更精细测试的自定义过滤器。]

这种深层次的测试——以及对测试的彻底和严格的评估——只有使用一套集成的软件分析工具才能可靠地完成。

审核编辑:郭婷

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

    关注

    96

    文章

    2944

    浏览量

    66675
  • 代码
    +关注

    关注

    30

    文章

    4758

    浏览量

    68370
  • 应用程序
    +关注

    关注

    37

    文章

    3248

    浏览量

    57616
收藏 人收藏

    评论

    相关推荐

    可回馈式电网模拟器的使用方法有哪些?

    电网模拟器的使用方法主要包括连接设备、设置参数、运行模拟、分析结果、故障模拟和培训操作人员等步骤。通过使用回馈式电网模拟器,可以对电力系统的运行进行深入研究,提高电力系统的运行效率和安全
    发表于 10-16 10:50

    如何使用 IOTA 分析安全漏洞的连接尝试

    在当今数字化世界中,网络安全变得至关重要。本文将探讨如何利用流量数据分析工具来发现和阻止安全漏洞和恶意连接。通过分析 IOTA 流量,您可以了解如何识别不当行为,并采取适当的措施来保护
    的头像 发表于 09-29 10:19 236次阅读
    如何使用 IOTA <b class='flag-5'>分析</b><b class='flag-5'>安全</b>漏洞的连接尝试

    汽车电子芯片推拉力测试测试流程的几个关键步骤

    在现代汽车技术迅猛发展的今天,汽车电子产品的可靠性已成为确保车辆性能和乘客安全关键因素。标准下的键合线剪切试验,作为评估这些产品中关键连接点强度的一项测试,扮演着至关重要的角色。本文
    的头像 发表于 08-07 18:00 620次阅读
    汽车电子芯片推拉力<b class='flag-5'>测试</b>机<b class='flag-5'>测试</b>流程的几个<b class='flag-5'>关键</b>步骤

    单元测试工具TESSY 新版本亮点速览:提供测试驾驶舱视图、超级覆盖率、代码访问分析、增强覆盖率审查

    各种测试对象和方法的所有覆盖率测量结果,并记录在新的测试总结报告中。 了解更多TESSY新版本功能详情或申请免费试用,欢迎咨询TESSY中国授权分销商——龙智。 新版本功能亮点速览: 1、超级
    的头像 发表于 07-08 16:20 415次阅读
    单元<b class='flag-5'>测试</b>工具TESSY 新版本亮点速览:提供<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>率审查

    信息安全驱动汽车行业快速向数字化转型

    经纬恒润针对ISO/SAE 21434、WP.29 R155等法规进行了深入研究,结合多年功能安全、信息安全经验,可以为客户提供信息安全全流程解决方案。
    的头像 发表于 07-05 14:35 1483次阅读
    信息<b class='flag-5'>安全</b>驱动汽车行业快速向数字化转型

    伦敦商学院深入研究中国神州数码战略转型

    China)数字化转型历程的深入研究为基础,共同撰写了案例研究「神州数码的转型:驾驭数据、云和人工智能的潜力(The Transformation of Digital China
    的头像 发表于 07-02 11:25 473次阅读
    伦敦商学院<b class='flag-5'>深入研究</b>中国神州数码战略转型

    功能测试覆盖中最常见的是什么方法

    常见的方法,包括黑盒测试、白盒测试、灰盒测试、等价类划分、边界值分析、错误推测法、因果图法、状态迁移测试、场景法、决策表
    的头像 发表于 05-30 14:55 599次阅读

    开关电源安全测试项目有哪些?如何测试

    总结而言,通过对开关电源进行过压保护、过流保护、短路保护、绝缘电阻测试、高压测试以及温升测试等一系列全面的安全性检测,可以充分评估电源的可靠
    的头像 发表于 05-23 17:41 849次阅读
    开关电源<b class='flag-5'>安全</b>性<b class='flag-5'>测试</b>项目有哪些?如何<b class='flag-5'>测试</b>?

    深入研究:我国工业实时操作系统的核心技术与演进路径

    RTOS广泛应用于各类关键场景,且相较于传统软件单品,更需要通过建设丰富的软、硬件生态,进一步满足广泛连接和多样化负载的需求。在此背景下,统一而规范的接口和基础设施是代码移植和复用的前提,也是各种
    的头像 发表于 04-07 17:24 814次阅读
    <b class='flag-5'>深入研究</b>:我国工业实时操作系统的核心技术与演进路径

    迈威通信工业以太网交换机通过软件源代码安全审定

    深入测试,MISCOM7000交换机的软件源代码安全审定中表现出色,不仅未发现任何明显的安全漏洞和缺陷,更展现出强大的防御能力,能够有效
    的头像 发表于 03-29 10:43 340次阅读
    迈威通信工业以太网交换机<b class='flag-5'>通过</b>软件源<b class='flag-5'>代码</b><b class='flag-5'>安全</b>审定

    深开鸿首个通过公安部安全检测认证的开源鸿蒙安全操作系统发行版!

    近日,深开鸿基于开源鸿蒙打造的国产操作系统“KaihongOS”经过严格的漏洞覆盖安全测试,取得了国家网络与信息系统安全产品质量检验检测中心(公安部第三
    的头像 发表于 03-20 10:12 590次阅读
    深开鸿首个<b class='flag-5'>通过</b>公安部<b class='flag-5'>安全</b>检测认证的开源鸿蒙<b class='flag-5'>安全</b>操作系统发行版!

    透射电镜TEM测试解剖芯片结构:深入微观世界的技术探索

    在芯片制造领域,透射电镜TEM技术发挥着至关重要的作用。通过TEM测试,科学家可以观察芯片中晶体结构的变化,分析晶体缺陷,研究材料界面结构,从而深入
    的头像 发表于 02-27 16:48 1100次阅读
    透射电镜TEM<b class='flag-5'>测试</b>解剖芯片结构:<b class='flag-5'>深入</b>微观世界的技术探索

    深入理解FFmpeg阅读体验》+ 书收到了,崭新的开篇

    今天收到了《深入理解FFmpeg》 崭新的书,一个在2022年较近距离接触过却尚未深入研究的领域图像处理。最近刚好在作这方面的研究,希望自己可以把握这次机会,好好学习下 FFMpeg,相信可以让自己
    发表于 01-07 18:57

    怎么用Vivado做覆盖分析

    在做仿真的时候往往会去做代码覆盖率和功能覆盖率的分析,来保证仿真是做的比较充分完备的。
    的头像 发表于 01-03 12:34 1592次阅读
    怎么用Vivado做<b class='flag-5'>覆盖</b>率<b class='flag-5'>分析</b>

    网络安全测试工具有哪些类型

    工具可以分为以下几大类型: 漏洞扫描器 漏洞扫描器是一类常见的网络安全测试工具,用于检测系统、网络和应用程序中存在的各种漏洞和安全风险。这些工具通过自动化扫描和
    的头像 发表于 12-25 15:00 1220次阅读