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

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

3天内不再提示

代码检查的方式有三种

jf_21561199 来源:jf_21561199 作者:jf_21561199 2024-02-25 10:08 次阅读

【摘要】代码检查中,提到的编程规范,规则集,规则,规则用例(场景、误报、检出)分别代表什么意思呢?

SAST 静态检查领域,代码检查服务可以帮助开发者发现和修复代码中的风格、质量和安全等方面的问题。那么在代码检查服务中,提到的编程规范,规则集,规则,规则用例(场景、误报、检出)分别代表什么意思呢?

编程规范

在 SAST 静态代码检查领域,编程规范是一套在组织层面关于代码编写的标准或准则。它可以帮助开发者遵循一致的风格和习惯,提高代码的可读性、可维护性、可移植性、安全性与可靠性,目的在于指导公司、部门、项目组编写出 CleanCode 及高质量的软件。

编程规范通常会参考业界标准及实践,并包含命名、缩进、注释、格式等方面的内容,业界内比较有名的有华为编程规范。

编程规范内的规则通常被用于在特定场景下使用,检测出代码中的漏洞和缺陷。但是这些规则并非就是万能完美的,在一些场景下,可能会导致误报率、漏报率高的情况发生。如果在日常使用中发现某些规则不适合或者无法遵循,经过团队共同研讨决策,是可以对规范中的规则进行改进甚至下线处理的。

注意,团队内在使用编程规范的时候,是希望团队成员都具有相应语言的基础编程能力,而不是说希望通过编程规范来学习某个具体的语言。

规则集

规则集则是一组用于做代码检查的规则组成的集合。

一般根据不同的检查目标和需求,规则集也有相应的分类,比如对安全类、安卓应用、编程风格这些类别进行检查的时候,规则集内的规则也会有不同的选择。

规则集可以应用在不同的范围上,比如:公司最小规则集可以在全公司范围内使用,产品线规则集则可以在最小规则集的基础上再额外加些产品线特有的规则进去,构建一个范围更大的产品线级规则集。

规则集也可以在不同的阶段使用。比如针对本地 IDE 编码阶段,可以构建一个 IDE 插件检查规则集在本地实时进行检查。在提交增量代码阶段,使用一个更大范围的规则集对增量代码进行自动化检查。在要进行版本级扫描阶段,与流水线协同提供全面、深度的全量检查。

wKgaomXYo62AeaT3AADeyFO_lyA012.png

华为云 CodeArtsCheck 的系统推荐规则集

规则

规则是一种用来指导和约束代码检查的标准和准则。它可以根据不同的编程语言、编码规范、质量要求等因素来制定。每个规则可以说都定义了一个缺陷模式,当该模式在目标代码中匹配成功后会生成一个检查问题。

每个规则都会包含一个 ID 和一个操作。ID 可以说是规则唯一的标识符,用于区分不同的规则;操作则用于指定改规则在代码检查期间应该执行的动作,比如告警等。

规则一般会包含描述信息(包含编写这条规则的背景等)、正确的代码示例、错误的代码示例、修复建议、参考的规范等信息。

wKgZomXYo62AYL81AADj2n83XMM218.png

华为云 CodeArtsCheck 的规则信息

规则用例

规则用例是一种用于验证代码检查规则是否按照预期正确工作的测试用例。一般它会包括一个或多个测试输入(代码片段),执行条件以及预期的检查结果(包括是否有问题,问题的类型,问题的位置等)。

规则用例可以说是检验和验证规则的一种手段,可以帮助开发人员和测试人员评估代码检查规则的有效性、准确性和覆盖性。

而和规则用例配套的术语则有:场景,误报,检出等。

场景

场景是一种描述代码检查规则应用的具体情况或背景的方法,它可以说是规则用例的集合(包含 1 个或多个规则用例)以及一些相关的信息(项目类型、编程语言、编码规范等)的结合。场景可以比规则用例更全面的模拟代码检查规则的使用场景。

误报

误报是指代码检查服务错误地报告了一个不存在的问题或一个错误的问题类型的状况。误报一般是由于代码检查规则的设计缺陷、实现错误、使用场景不匹配或配置不当等原因造成的,会导致开发人员和测试人员对代码检查服务的信任度降低。

检出

检出则和误报完全相反,是个好的现象,是指代码检查服务正确地报告了一个确实存在的问题及正确的问题类型的状况。检出高可以帮助开发人员预防和修复潜在的缺陷。

审核编辑 黄宇

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

    关注

    30

    文章

    4855

    浏览量

    69425
  • 华为云
    +关注

    关注

    3

    文章

    2714

    浏览量

    17712
收藏 人收藏

    相关推荐

    三种太赫兹波的产生方式

    本文简单介绍了三种太赫兹波的产生方式。 太赫兹波(THz)是一电磁波,在电磁波谱上位于红外与微波之间。太赫兹光子能量在1-10 meV范围之间,在光谱分析、医疗成像、移动通信方面都有非常广阔
    的头像 发表于 02-17 09:09 260次阅读
    <b class='flag-5'>三种</b>太赫兹波的产生<b class='flag-5'>方式</b>

    示波器的三种触发模式

    示波器的触发方式不仅影响波形捕捉的时机,还决定了显示的波形是否稳定。 常见的触发模式三种: 单次触发 (Single)、 正常触发 (Normal)和 自动触发 (Auto)。下面将对这三种
    的头像 发表于 01-07 11:04 1303次阅读
    示波器的<b class='flag-5'>三种</b>触发模式

    systemd journal收集日志的三种方式

    随着 systemd 成了主流的 init 系统,systemd 的功能也在不断的增加,比如对系统日志的管理。Systemd 设计的日志系统好处多多,这里笔者就不再赘述了,本文笔者主要介绍 systemd journal 收集日志的三种方式
    的头像 发表于 10-23 11:50 419次阅读
    systemd journal收集日志的<b class='flag-5'>三种</b><b class='flag-5'>方式</b>

    I2S左对齐,右对齐跟标准的I2S三种格式,那么这三种格式各有什么优点呢?

    大家好,关于I2S格式,两个疑问请教一下 我们知道I2S左对齐,右对齐跟标准的I2S三种格式,那么这三种格式各有什么优点呢? 而且对于标准的I2S格式,32FS传输16bit的数
    发表于 10-21 08:23

    基本放大电路三种

    基本放大电路是电子电路中至关重要的组成部分,它能够将输入信号放大到所需的电平,以便后续电路进行处理。在电子工程中,基本放大电路主要有三种形式,分别是共发射极放大电路(简称共射放大电路)、共基极放大
    的头像 发表于 10-15 11:07 2249次阅读

    Windows管理内存的三种主要方式

    Windows操作系统提供了多种方式来管理内存,以确保系统资源的有效利用和性能的优化。以下是关于Windows管理内存的三种主要方式的详细阐述,包括堆内存管理、虚拟内存管理以及共享内存管理,每种
    的头像 发表于 10-12 17:09 1630次阅读

    vim的三种工作模式哪些

    Vim是一个功能强大的文本编辑器,它具有三种工作模式:普通模式、插入模式和命令行模式。以下是对这三种模式的介绍: 普通模式(Normal Mode) 普通模式是Vim的默认模式,当启动Vim时,它会
    的头像 发表于 08-30 14:52 978次阅读

    在电路中电阻的连接形式三种

    在电路中,电阻的连接形式主要有三种:串联、并联和混联。这三种连接方式在电路设计和应用中具有重要的作用。本文将介绍这三种连接方式的特点、计算方
    的头像 发表于 08-20 10:43 3204次阅读

    简述三种esp32的开发方式是什么

    ESP32是一款由乐鑫(Espressif)推出的低功耗、高性能的Wi-Fi和蓝牙双模无线通信芯片,广泛应用于物联网、智能家居、智能硬件等领域。本文将详细介绍三种ESP32的开发方式:Arduino
    的头像 发表于 08-20 09:11 4865次阅读

    常用的pwm跟踪控制方式是哪三种

    PWM(脉宽调制)跟踪控制是一广泛应用于电机控制、电源管理、通信等领域的技术。它通过调整脉冲的宽度来控制输出信号的占空比,从而实现对系统的精确控制。常用的PWM跟踪控制方式主要有三种:增量式PWM
    的头像 发表于 08-14 10:34 1714次阅读

    计算机网络中的三种通信方式

    计算机网络中的三种通信方式,即单工通信、半双工通信和全双工通信,是理解和设计高效网络架构的基础。每种通信方式都有其独特的特性、应用场景及优缺点。以下是对这三种通信
    的头像 发表于 08-07 15:00 3535次阅读

    逆变电路的三种调压方式

    路的三种调压方式:脉宽调制(PWM)调压、相位控制调压和频率调制调压。 1. 脉宽调制(PWM)调压 脉宽调制是一通过改变脉冲宽度来调整输出电压的调压方式。在PWM调压中,逆变电路的
    的头像 发表于 08-02 16:59 2926次阅读

    电源模块的散热原理,电源模块的散热方式哪些

    电源模块的散热原理主要依赖于三种传热方式:导热、对流和辐射。以下是针对这三种散热方式的详细解释和归纳:
    的头像 发表于 06-10 17:00 1208次阅读

    在线视频会议软件哪些?三种实现方式

    分类来进行解说。 视频会议技术基本上可分为两大类:基于硬件的编解码和基于软件的编解码。以下是基于两编码的三种在线视频会议实现方式。 一、基于硬件的视频会议系统 硬件视频会议系统主要通过专用设备来实现音视频通
    的头像 发表于 05-21 17:43 765次阅读
    在线视频会议软件<b class='flag-5'>有</b>哪些?<b class='flag-5'>三种</b>实现<b class='flag-5'>方式</b>

    简述斩波电路的三种控制方式

    斩波电路是一常见的电力电子器件,广泛应用于直流电压调节、电压变换、电流变换等领域。它可以实现对电流和电压的控制,以满足不同的电气设备的需求。斩波电路的控制方式主要有三种:脉宽调制控制、频率调制控制
    的头像 发表于 03-11 15:22 4777次阅读