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

    文章

    4976

    浏览量

    74386
  • 华为云
    +关注

    关注

    3

    文章

    2836

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HINET工业智能网关三种联网方式操作指南

    智能网关支持三种联网方式:有线连接、移动网络、无线连接。三种联网方式可分别适用于不同的网络环境。现场具备有线网络条件时,建议优先选用有线连接方式
    的头像 发表于 04-23 17:12 354次阅读
    HINET工业智能网关<b class='flag-5'>三种</b>联网<b class='flag-5'>方式</b>操作指南

    ATE系统中这三种测量卡的架构和功能

    测试仪行业面临的一个挑战是,如何在不显著增加测试仪时间、尺寸或成本的情况下,满足对大量测试通道的需求。尽管半导体测试仪(也称为自动测试器件(ATE))种类繁多,但在大多数测试仪都包含三种主要卡:电压
    的头像 发表于 04-09 15:12 151次阅读
    ATE系统中这<b class='flag-5'>三种</b>测量卡的架构和功能

    AI技术时代三种全新工作模式如何实现

    AI技术正在重塑我们的工作。前沿企业以“人类主导、智能体运营”为核心,形成三种AI技术的融合模式:人类+AI技术助手、人机混合、人类主导智能体运营,这些模式不仅提升效率,更在重构协作方式,帮助组织以更低的阻力迈向成功。
    的头像 发表于 01-29 15:08 749次阅读

    【MCP】同时支持stdio,streamableHttpless和sse三种协议的MCP服务框架

    项目说明 这是一个同时支持stdio,streamableHttpless和sse三种协议的MCP-Server的框架(ts语言)。 为什么我想做这个框架呢?因为随着AI发展,现在越来越多业务需要
    的头像 发表于 01-21 18:26 403次阅读
    【MCP】同时支持stdio,streamableHttpless和sse<b class='flag-5'>三种</b>协议的MCP服务框架

    C语言中实现函数宏的三种方式

    在宏的第一个分号后便结束。即 a = b 和 b = tmp 均不受控制语句所作用。 因此,在工程中,一般使用三种方式来对函数宏进行封装,分别为 {}、do{...}while(0
    发表于 12-29 07:34

    请问CW32芯片的三种工作模式是什么?

    CW32芯片的三种工作模式是什么?
    发表于 12-26 06:48

    伺服电机的三种制动方式什么区别?

    伺服电机作为自动化控制系统中执行元件的核心部件,其制动性能直接影响设备的定位精度和安全可靠性。目前主流的伺服电机制动方式包括动态制动、再生制动和电磁机械制动三种,它们在制动原理、应用场景及技术特点上
    的头像 发表于 09-19 18:26 2241次阅读
    伺服电机的<b class='flag-5'>三种</b>制动<b class='flag-5'>方式</b><b class='flag-5'>有</b>什么区别?

    TC377配置SMU FSP时,如何配置频率参数;三种模式何区别,配置上有何区别?

    TC377配置SMU FSP时,如何配置频率参数;三种模式何区别,配置上有何区别?
    发表于 08-08 07:48

    三种SPWM波形生成算法的分析与实现

    摘要:变频技术作为现代电力电子的核心技术,集现代电子、信息和智能技术于一体。而SPW(正弦波脉宽调制)波的产生和控制则是变频技术的核心之一。本文对SPI波形生成的三种算法-对称规则采样法、不对称规则
    发表于 07-31 13:34

    CAN总线电容过大?三种解决方案来了

    在新能源汽车路试中,CAN总线传输异常是一个常见问题。本期我们将探讨由于总线电容过大导致的下降沿过缓问题,并介绍三种有效的解决方案。CAN总线下降沿过缓问题新能源路试工程师在分析CAN总线波形
    的头像 发表于 07-22 11:36 870次阅读
    CAN总线电容过大?<b class='flag-5'>三种</b>解决方案来了

    MEMS中的三种测温方式

    在集成MEMS芯片的环境温度测量领域,热阻、热电堆和PN结原理是三种主流技术。热阻是利用热敏电阻,如金属铂或注入硅的温度电阻系数恒定,即电阻随温度线性变化的特性测温,电阻变化直接对应绝对温度,需恒流源供电。
    的头像 发表于 07-16 13:58 1900次阅读
    MEMS中的<b class='flag-5'>三种</b>测温<b class='flag-5'>方式</b>

    1553B总线常见三种组网方式

    1553B总线作为航空电子系统中的关键通信协议,其组网方式直接影响系统的可靠性和实时性。本文将深入解析1553B总线的三种典型组网结构:单总线结构、双冗余总线和多总线分层架构,并结合实际应用场景分析
    的头像 发表于 06-21 17:39 2433次阅读
    1553B总线常见<b class='flag-5'>三种</b>组网<b class='flag-5'>方式</b>

    开关电源三种控制模式:PWM/PFM/PSM

    PWM/PFM/PSM 三种控制模式的定义通常来说,开关电源(DC-DC)三种最常见的调制方式分别为: 脉冲宽度调制(PWM) 脉冲频率调制(PFM) 脉冲跨周期调制(PSM)
    发表于 06-09 16:11

    HarmonyOS基础组件:Button三种类型的使用

    中的Button相较于Android原生来说,功能比较丰富,扩展性高,减少了开发者的代码数量,简化了使用方式。不仅可以自定义圆角还支持三种样式。 常用属性 名称 参数类型 描述 type
    的头像 发表于 06-09 15:48 2712次阅读
    HarmonyOS基础组件:Button<b class='flag-5'>三种</b>类型的使用

    介绍三种常见的MySQL高可用方案

    在生产环境中,为了确保数据库系统的连续可用性、降低故障恢复时间以及实现业务的无缝切换,高可用(High Availability, HA)方案至关重要。本文将详细介绍三种常见的 MySQL 高可用
    的头像 发表于 05-28 17:16 1439次阅读