行业合规标准MISRA如何帮助C/C++代码程序员高效地编写代码?

2023-10-30

MISRA标准包含编写软件的准则和代码规则。汽车、航空航天和国防、医疗、工业自动化和铁路等行业都使用该标准来帮助他们的开发人员编写源代码,以确保软件的安全、安保和可靠性。

由于嵌入式软件工程师使用C和C++编程语言来编写安全关键型软件的代码,MISRA标准的创建者为使用这两种语言的编码者建立了这些标准。

在20世纪90年代初,电子产品在汽车中变得越来越重要。作为这些电子产品的一个组成部分的嵌入式软件也是如此。因此,工程师和制造商开始意识到,无论是出于安全还是商业原因,软件的可靠性是至关重要的。今天的挑战甚至更大,因为一辆汽车的软件可能涉及超过1亿行的编码。

MISRA的功能安全编码标准

今天,开发团队采用编码标准作为定义、管理和利用一组编码实践的方法,其首要目标是一致性。编码规则的主要目的是限制语言的使用,这样可以防止开发人员做一些 "错误 "的事情,并可能产生潜在的危险。

开发人员可以通过采取合理的语言使用限制来避免软件中的许多缺陷。这导致了风格的统一,这在软件项目中作为一种纪律是很有价值的。

常用的MISRA C和C++语言指南和规则

每个MISRA标准都包含了一套编码参数和规则,以及支持材料。支持材料是标准的补充部分,提供了任何想获得符合性的程序员所必需的重要背景信息。 让我们看看当前的C和C++ MISRA编码标准本身和简要说明:

  • MISRA C++ 2008:虽然C仍然是主流的编码语言,但这个版本谈到了C++的使用增加。注意:许多企业选择以AUTOSAR C++ 14为标准,它涵盖了C++的最新变化。事实上,AUTOSAR和MISRA联手制作了下一代的标准。
  • MISRA C 2012:该版本于2013年发布,也被称为MISRA C3,进一步发展了MISRA C标准。它吸取了14年来与成千上万的组织和用户互动的经验,包括了一些新的规则,弥补了一些漏洞,并改进了以前存在的规则背后的解释和描述。该标准扩展了对C99的支持,并保持了对C90、C11和C18的支持。它还做出了一些改进,降低了合规的复杂性和成本。
  • MISRA合规性2020:这份现行文件为完成MISRA编码标准的合规性设定了一个框架。它取代了以前版本的标准中的合规性和流程及偏差要求。

使用Parasoft静态分析实现MISRA合规性

MISRA编码标准提供了全面的规则和指导方针,因此公司可以保护他们的应用程序免受运行时错误和软件故障的影响,并使它们不太容易出现安全和安全漏洞。符合MISRA标准有助于改进语法,创建代码一致性,并促进可移植性。对于不使用静态分析(或SAST-静态应用安全测试)解决方案或工具的团队来说,验证合规性可能会有问题。Parasoft简化了这一过程,这对于确保及时的软件交付和编码安全至关重要。

在整个软件开发生命周期中应用MISRA合规性是很重要的,包括在代码实现期间进行左移测试和加快代码审查。这不仅提供了质量改进,还提供了进度度量、持续可追溯性和强制执行。根据2020年MISRA合规性自动记录和合规性报告也是节省资源和时间的一个关键因素,也是解决违规问题时避免沮丧的一个关键因素。

Parasoft这样的工具可以被配置成检测整个MISRA标准的子集。这减少了分析产生的噪音量,并增加了对解决严重违规问题的关注。

>>获取Parasoft测试试用和技术支持

合规报告

与公司实现MISRA合规性相关的问题之一是缺乏证明合规性的标准机制。为了解决这个问题,MISRA发布了“MISRA合规性2020:实现对MISRA编码指南的合规性”,这是最新的更新,提供了“MISRA合规性”的更具体定义,并确定了证明符合MISRA标准所需的几个交付件。

  • 指南合规性总结。总体项目合规性的强制性主要记录。GCS包括每个指南的条目、其符合性水平、任何偏差和/或重新分类。
  • 指南重新分类计划。必须遵循所有强制性准则来实现合规性。但是,必需和咨询指南可以重新分类为更严格的类别(例如从咨询到必需),但只有咨询指南可以重新分类为不太严格的类别(例如从咨询到禁用)。
  • 偏差报告。您的项目可能存在偏离指导方针或违反规则的情况,如果这些偏离是合理的,并记录在报告中,且不影响安全,则仍然被认为是合规的。
  • 指南实施计划。演示如何验证每个MISRA指南。在MISRA符合Parasoft的背景下,GEP将MISRA指南映射到Parasoft代码分析规则和DTP功能。

Parasoft——领先的自动化测试工具,满足绝大多数行业标准

鉴定工具的目的是证明它们对预期的使用是有效的。它包括证明团队如何对其进行资格认证以及背后的理由。Parasoft C/C++test和我们的报告工具Parasoft DTP已经通过了TÜV SÜD的认证,可用于安全关键型应用,而且对于一些最严格的工艺标准,如DO-178B/C及其要求,存在一个工具鉴定套件。

从开发到质量检查,Parasoft的技术通过集成静态和运行时分析,单元、功能和API测试,以及服务虚拟化,在不牺牲质量和安全性的情况下加快软件交付,节约交付成本。

强大的报告和分析功能可帮助用户快速查明有风险的代码区域,并了解新代码更改如何影响其软件质量,而突破性的技术将人工智能和机器学习添加到软件测试中,使组织更容易采用和扩展跨开发和测试团队的有效的软件测试实践。

Parasoft针对C/C++、Java、.NET和嵌入式的开发测试都有着30多年的深入研究,很多全国500强企业使用Parasoft的产品实现了软件快速、高质量的交付。

>>获取Parasoft测试试用和技术支持

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

行业合规标准MISRA如何帮助C/C++代码程序员高效地编写代码? 的相关文章

  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 微信小程序的自动化测试框架

    微信发布了小程序的自动化测试框架Minium 提供了多种运行验证方式 其特点 支持一套脚本 iOS Android 模拟器 三端运行 提供丰富的页面跳转方式 看不到也能去得到 可以获取和设置小程序页面数据 让测试不止点点点 可以直接触发小程
  • 基于Loadrunner的性能分析及调优经验分享

    公司某个系统的微信端计划将开放给几百上千的人员登录查询 并且登录账号为同一账号多人使用 后台服务能够支撑起多用户的并发操作以及成百上千人登录微信端对生产数据库或者登录查询的性能效率高成为交付可靠生产环境的必要条件 因此 项目组决定提交测试
  • 测试用例评审流程优化

    测试用例 评审是QA日常工作流程中的关键一环 是QA同学完善测试用例 交流测试经验的好机会 负责组内测试用例建设以来 作者对于评审流程做了一些优化工作 本文作者将整个优化过程中的心得体会做了一个总结 希望能给大家带来帮助 01 原始流程 1
  • 软件测试|使用Python轻松裁剪视频

    简介 裁剪视频是在视频编辑和处理中常见的任务之一 Python提供了多种库和工具 可以用来裁剪视频 在本文中 我们将详细讨论如何使用Python来裁剪视频 并提供示例代码 步骤1 环境准备 首先 我们要安装必要的Python库 我们将使用
  • 软件测试|使用matplotlib绘制多种折线图

    简介 在数据可视化领域 Matplotlib是一款非常强大的Python库 它可以用于绘制各种类型的图表 包括折线图 本文将介绍如何使用Matplotlib创建多种不同类型的折线图 并提供示例代码 创建模版 在绘图之前 我们可以先创建我们的
  • 软件测试|Selenium StaleElementReferenceException 异常分析与解决

    简介 Selenium 是一个流行的自动化测试工具 用于模拟用户与网页交互 然而 当我们在使用 Selenium 时 可能会遇到一个常见的异常 即 StaleElementReferenceException 这个异常通常在我们尝试与网页上
  • 软件测试|sqlalchemy relationship

    简介 SQLAlchemy是一个流行的Python ORM 对象关系映射 库 它允许我们以面向对象的方式管理数据库 在SQLAlchemy中 relationship 是一个重要的功能 用于建立表之间的关系 在本文中 我们将详细探讨 rel
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 开眼了,自动化测试还能这样用?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • 外包干了2个月,技术倒退2年。。。

    先说一下自己的情况 本科生 20年通过校招进入深圳某软件公司 干了接近4年的 功能测试 今年国庆 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了3年的女朋
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • 一文让你快速写出高效的软件测试用例

    前言 编写测试用例的目的就是确保测试过程全面高效 有据可查 但要编写出高效的测试用例 需要搞清楚什么是测试用例 以及如何编写出高效的测试用例 接下来将从以下几个部分来进行展开 1 什么是测试用例 2 如何编写测试用例 3 软件测试学习资源分
  • 不要扩展 CMake 列表变量

    我有一个 CMake 脚本 可以通过以下方式运行一些测试add test 在 Windows Server 2008 不要问 下运行于 CMake 3 15 当调用这些测试时 它们运行的 环境中的 PYTHONPATH 环境变量似乎会重置为
  • 使用 cmake 构建项目后如何运行 ctest

    我希望每次成功构建项目时都启动测试 如果某些测试被破坏 我希望我的构建也被破坏 默认情况下 我需要通过运行来手动运行测试ctest命令 CTest 实际上可以构建项目 但我使用调用的 IDEmake建立资源 和make不运行测试 我将此命令

随机推荐

  • 答题卡实战

    import cv2 import matplotlib pyplot as plt import numpy as np import myutils import argparse import imutils contours 正确答
  • CSDN中如何使用“私信”功能

    私信功能一直是CSDN被吐槽的诸多功能之一 但是有时我们还是需要这个功能的 比如说 我们可以私信给CSDN管理员 把我们的ID加入审核的白名单 这样以后妈妈就再也不用担心自己的博客被 待审核了 下面就一步步教你如何使用私信功能 1 悬浮在自
  • java利用模板生成PDF

    maven依赖 lt dependency gt lt groupId gt net sf jasperreports lt groupId gt lt artifactId gt jasperreports lt version gt 6
  • C语言,通过多文件编辑定义字符指针,指向堆区空间,计算字符串长度

    通过多文件编辑 定义字符指针 分别指向堆区空间 计算字符串长度 要求 1 定义函数实现堆区空间申请 2 在主函数中实现输入字符串 3 定义函数实现字符串长度 函数原型 size t my strlen const char s 4 定义函数
  • struts2拦截器

    拦截器定义
  • vivado:debug状态下无法抓取数据。(已解决)

    这两天搞一个小项目 里面用到了SPI 时钟频率很低 我就设置了10MHz 结果 我在VC707的板子上跑 崩溃呀 跑都跑通了 但是用debug 怎么也抓取不到波形 一度怀疑是vivado 2017 4又存在重大bug 然后 仔细看了看他的报
  • Arthas常用命令

    目录 一 常用命令 二 常用系统命令 三 JVM相关命令 四 class classloader相关命令 五 高级命令 一 常用命令 1 dashboard 仪表板 第一部分是显示JVM中运行的所有线程 所在线程组 优先级 线程的状态 CP
  • 动态网站设计与开发总结

    接触到了动态网站设计与开发这门课程 老师先引入了动态网站 之后引导我们安装Web服务器 Tomcat和第一个Web项目 接着有Intellij创建Web项目 在Intellij上面创建动态页面 我们用jsp实现打印功能 将某一个页面设置为动
  • mysql核心数据库_MySQL核心基础(一)之数据库介绍

    一 数据库的相关概念及术语 一 数据 数据库 数据库系统 什么是数据 Data 广义上讲 全部可以传递和存储信息的东西都叫数据 而狭义上说是存储在计算机磁盘上的信息 mysql 什么是数据库 Database 数据库是指高效存放数据的地方s
  • unreal虚幻引擎学习(二)UE4工程无法调试

    工程如下设置即可
  • win 11 无法打出中文句号问题(中/英文标点切换) 微软五笔输入法

    问题 今天在用微信时 突然发现我打的 怎么这么窄 像英文输入法下的逗号 而不是中文输入法下的 同时发现句号也只是 而打不出 上网查了下 搜到第一条就是这篇win 10 word 打不出中文句号 微软拼音输入法 问题原因 误在某个时刻使用了
  • /dev/zero是什么意思

    原文链接 http www linuxdiyf com viewarticle php id 161384 dev zero 是一个输入设备 你可你用它来初始化文件 dev zero 该设备无穷尽地提供0 可以使用任何你需要的数目 设备提供
  • matplotlib-绘制条形图

    文章目录 绘制单个条形图 横着 竖着 绘制频数 率 分布直方图 绘制单个条形图 横着 竖着 设置字体 import matplotlib as mpl mpl rcParams axes unicode minus False mpl rc
  • 记录一次vue项目本地打包部署过程

    记录一次本地打包vue项目遇见的问题 内存溢出 FATAL ERROR CALL AND RETRY LAST Allocation failed JavaScript heap out of memory Building for pro
  • 树莓派4B安装Tensorflow(Python3.5和3.7下分别进行安装)

    前言 虽然树莓派的速度不如PC 但是它功耗小 价格便宜 很多同学都用来学习机器学习的相关课程 而且tensorflow官方是支持树莓派 我们可以直接在树莓派上进行学习 网上的现在树莓派已经发布4B 新版本的rasbian系统全面采用了pyt
  • Raspberry Pi和Python-OpenCV-TensorFlow卷积神经网络热成像人物检测

    构建逻辑 定期从红外摄像机捕获快照 对其进行标准化 并将其存储在某处 标记图片 检测到人物存在 检测到人物不存在 并在其上训练模型 在树莓派上部署模型并运行定期针对新捕获的图像进行检测 房间里的人是否存在 物料清单 通讯选择 系统准备 捕捉
  • 永兴的tensorflow笔记-6 激活函数

    一 基本神经元 神经元模型 用数学公式表示为 f 为激活函数 w为权重 b为偏置 人工神经网络是由神经元构成的 二 什么是激活函数 将线性函数转变为非线性函数 负责将神经元的输入映射到输出端 激活函数 Activation function
  • bootstrap-table遇到的问题

    1 controller层 queryParams 参数提交不过去 是因为 bootstrap table js中默认是contentType application json 我们必须改成 contentType application
  • IOC和注解

    想要学好spring 必须时时刻刻想着 spring的本质就是一个容器 放java对象的容器 java对象在spring容器中也叫做bean对象 文章目录 一 spring介绍 1 什么是框架 2 框架的作用 在这里插入图片描述 https
  • 行业合规标准MISRA如何帮助C/C++代码程序员高效地编写代码?

    MISRA标准包含编写软件的准则和代码规则 汽车 航空航天和国防 医疗 工业自动化和铁路等行业都使用该标准来帮助他们的开发人员编写源代码 以确保软件的安全 安保和可靠性 由于嵌入式软件工程师使用C和C 编程语言来编写安全关键型软件的代码 M