代码质量静态检查工具

2023-11-02

一 点睛

代码质量静态检查工具可以自动快速发现劣质代码,潜在Bug,给出代码优化建议。因此代码静态检查工具在实际项目研发中有举足轻重的作用,利用好各种优秀检查工具是做好品质管理的重要环节。

二 静态分析和动态分析

代码分析技术分为:

第一、静态分析:对程序代码的检查;

第二、动态分析:程序运行时检查;

静态分析技术是在不执行程序的情况下对其进行分析的技术,简称为静态分析。静态分析可以被视为自动化代码审查过程,是检查瑕疵的最古老和最安全的方法。

动态分析着重于内存、性能和资源的检查。

三 静态分析原理

静态分析技术原理:

和编译器的技术原理有很多相似之处,主要也是使用词法分析,语法分析,语意分析等分析技术对代码进行解析。但和编译器最主要区别是各种静态分析工具可以自定义各种各样的复杂规则。

静态分析特点

  • 不实际执行程序;

  • 执行速度快、效率高;

  • 全代码扫描;

常用静态分析技术:

  • 缺陷模式匹配分析

  • 类型推断分析

  • 模型检查

  • 数据流分析

四 静态分析代理的好处

  • 帮助程序员快速定位代码隐藏错误和缺陷。30% 至70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。

  • 提高软件的可靠性。

  • 节省软件开发和测试成本。

Bug发现时机与成本比例

五 静态检查的不足

不足之处

  • 会出现误报。

  • 不能够完全检查出项目质量管理中定义所有质量标准规范,需要结合实际,进行人工检查。

人工代码检查,是对自动化工具检查自身不足的一个补充。

实际研发过程中一般要开品质管理会议,统一产品质量。每个开发人员应该选取一个具有代表其水平的代码文件,交给架构师或品质管理员进行检查(review),以确认其质量水平。

在人工检查之前,一般都要求程序员先用工具进行自我检查,再对工具不能检测出的质量标准项等(检查清单)进行检查。

六 常用静态检查工具

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

代码质量静态检查工具 的相关文章

  • 软件工程基础知识--需求分析

    软件需求 在进行需求获取之前 首先要明确需要获取什么 也就是需求包含哪些内容 软件需求是指用户对目标软件系统在功能 行为 性能 设计约束等方面的期望 通常 这些需求包括功能需求 性能需求 用户或人的因素 环境需求 界面需求 文档需求 数据需
  • 软件工程毕业设计选题大全 毕设题目推荐

    文章目录 0 前言 1 题目推荐 2 开题指导 2 1 起因 2 2 如何避坑 重中之重 2 3 为什么这么说呢 2 4 难度把控 2 5 题目名称 3 最后 0 前言 这是学长亲手整理的 软件工程毕设选题系列第三篇 都是经过学长精心审核的
  • 软件工程—软件结构图笔记详谈

    一 定义 结构图 Structure Chart 简称SC图 是精确表达软件结构的图形表示方法 它以特定的符号表示模块 模块间的调用关系和模块间信息的传递 二 主要构成 模块 Module 用矩形框表示 框中写有模块的名字 说明模块的功能
  • 2021年系统集成项目管理工程师(软考中级)连夜整理考前重点

    一 信息与信息化 1 信息论奠基者香农认为 信息就是能够用来消除不确定性的东西 8种状态需要3位比特表示 5位比特则可表示64种状态 信息 物质材料 能源是三大戓略资源 2 信息论两个层次 本体论和认识论 3 信息传输模型 信源 编码 信道
  • [管理与领导-69]:IT基层管理者 - 辅助技能 - 4- 职业发展规划 - 评估自己、下属、老板的职业性格

    目录 前言 一 心理学上性格 1 1 心理学 1 2 知情意行 1 3 心理学性格 1 4 四大生理人格特征 1 4 1 外向型 1 4 2 内向型 1 5 大五人格特质理论 二 霍兰德社会职业兴趣类型 2 1 霍兰德六型的简要描述 2 2
  • 音乐软件案例分析

    项目 内容 这个作业属于哪个课程 2023年北航敏捷软件工程 这个作业的要求在哪里 软件案例分析 我在这个课程的目标是 学习软件工程理论 在实践中体会并运用软件工程理论 收获团队开发和软件工程实践经验 这个作业在哪个具体方面帮助我实现目标
  • 软工导论知识框架(五)面向对象方法学

    传统软件工程方法学适用于中小型软件产品开发 面向对象软件工程方法学适用于大型软件产品开发 一 四要素 对象 类 继承 传递消息实现通信 二 概念 1 对象 具有相同状态的一组操作的集合 对状态和操作的封装 2 类 对具有相同状态和相同操作的
  • 【论文阅读-ICSE-2021】CodeShovel: 构造方法级别上的源代码历史信息 Constructing Method-Level Source Code Histories

    CodeShovel Constructing Method Level Source Code Histories Conference ICSE 2021 Github https github com ataraxie codesho
  • 服务计算:简单的web程序

    CloudGo 框架选择 看了go的一些框架如beego和iris觉得挺好的 本来想用 但是虚拟机出了点问题装不成 windows上装成了没ab指令 所以使用官方的net http库做简单的实验 看完beego和iris的特性我还是比较想用
  • 【软件工程】详细设计说明书

    详细设计说明书 1引言 1 1编写目的 说明编写这份详细设计说明书的目的 指出预期的读者 该文档实在概要设计的基础上 进一步的细化系统结构 展示了软件啊结构的图标 物理设计 数据结构设计 及算法设计 详细的介绍了系统各个模块是如何实现的 包
  • [需求管理-4]:需求分析全过程:需求分析+资源评估+项目计划

    前言 需求收集后 需要经过漫长的需求分析和所需要评估过程 才能正式在某个软件版本中实现需求 在软件开发人员通过编程实现需求前 中间经过了多种角色的辛苦劳动 最终才会生成需要规格说明书 需求规格说明书是逐步由粗到细的分解过程 一个需求 要进入
  • 软考:中级软件设计师:程序语言基础:表达式,标准分类,法律法规,程序语言特点,函数传值传址

    软考 中级软件设计师 程序语言基础 表达式 提示 系列被面试官问的问题 我自己当时不会 所以下来自己复盘一下 认真学习和总结 以应对未来更多的可能性 关于互联网大厂的笔试面试 都是需要细心准备的 1 自己的科研经历 科研内容 学习的相关领域
  • Go 语言输出文本函数详解

    Go语言拥有三个用于输出文本的函数 Print Println Printf Print 函数以其默认格式打印其参数 示例 打印 i 和 j 的值 package main import fmt func main var i j stri
  • 【车载开发系列】FlashMemory基本概念

    车载开发系列 FlashMemory基本概念 车载开发系列 FlashMemory基本概念 车载开发系列 FlashMemory基本概念 一 FlashMemory的特征 二 常见的FlashMemory 1 NOR FlashMemory
  • MES系统工单进度查询:提升生产控制与监控

    在MES系统中 工单进度查询是一个至关重要的功能 它为企业提供了实时 准确地追踪和监控生产工单进度的能力 一 MES系统工单进度查询的重要性 1 实时监控生产进度 通过工单进度查询 企业能够随时了解每个工单的进展情况 包括已完成的工序 正在
  • thinkphp+vue教学互动课程资源网站

    软件工程课程建设通篇文章的撰写基础是实际的应用需要 然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程 以软件工程课程建设的实际应用需要出发 架构系统来改善现软件工程课程建设工作流程繁琐等问题 不仅如此以操作者的角度来
  • 嵌入式培训机构到底怎么选?培训了能找到工作吗

    嵌入式作为一种广泛应用于企业级开发的编程语言 对于想要从事软件开发行业的人来说 掌握嵌入式技能是非常重要的 而参加嵌入式培训机构是一个快速提升技能的途径 然而 很多人可能会担心 参加嵌入式培训了能找到工作吗 如何选择靠谱的嵌入式培训机构 要
  • 这套Go语言开发框架组合真的非常高效

    我尝试过很多框架 从Django Flask和Laravel到NextJS和SvelteKit 到目前为止 这是我唯一可以使用的不会让我感到疯狂或者放弃项目的堆栈 框架 我喜欢所有这些框架 但我只是不太适应它们的设计方式 实际上 我是一个弱
  • 【软件测试】学习笔记-高效提交Bug

    本篇文章介绍如何才能写出一份高效的软件缺陷报告 测试工程师需要利用对需求的理解 高效的执行力以及严密的逻辑推理能力 迅速找出软件中的潜在缺陷 并以缺陷报告的形式递交给开发团队 缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁 也是测试工程
  • 深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

    Python MongoDB 排序 对结果进行排序 使用 sort 方法对结果进行升序或降序排序 sort 方法接受一个参数用于 字段名 一个参数用于 方向 升序是默认方向 示例 按名称按字母顺序对结果进行排序 import pymongo

随机推荐

  • Unity3D 控制角色移动,转向和自动跟随

    Unity3D 角色转向和自动跟随 通过挂载脚本控制3D人物的移动和转向 先上一个官方的例子 这里只有转向而没有移动的方法 看了下原工程 移动是做在动画中的 只要执行了动画就会跟着移动 而且每迈出一步的距离是固定的 如果移动没有做在动画里只
  • python3中默认的字符编码_python3中各个字符编码的转换

    原博文 2017 05 09 20 13 a 我很好 python3 默认的编码为unicode unicode gt gb2312unicode gb2312 a encode gb2312 因为默认是unicode所以不需要decode
  • 阿拉德之怒显示服务器错误,阿拉德之怒无法进入游戏怎么办_阿拉德之怒无法进入游戏解决方法_快吧手游...

    阿拉德之怒无法进入游戏是什么问题呢 阿拉德之怒无法进入游戏的原因又会是什么呢 相信有很多小伙伴们都还不知道吧 那么接下来就由小编给大家带来的王者荣耀阿拉德之怒无法进入游戏解决方法介绍 喜欢的小伙伴们快来看看吧 希望对大家有所帮助 阿拉德之怒
  • ES5严格模式及object,array,function拓展

    ES5 js主要3个部分构成 1 ECMAscript 核心 2 BOM 浏览器对象 DOM 文档对象 3 扩展 gt 服务器端 node js es5新增 严格模式 use strict 严格模式 1 声明严格模式必须在程序的顶部 2 声
  • Viso的对象文件插入word,导致画布有大量空白,如何解决

    Viso的对象文件插入word 导致画布有大量空白 如何解决 1 viso对象插入到word VIso的图可以作为对象插入到word中 直接复制即可 复制后 可以在word中双击 关联到viso中 进行更改 很方便 正常情况下 在viso中
  • VSPD虚拟串口软件安装及使用

    文章目录 前言 一 软件安装 1 Configure Virtual Serial Port Driver VSPD 2 串口调试助手 二 使用步骤 1 模拟串口 2 配置串口 3 收发测试 COM8 发 gt COM9 收 COM9 发
  • python小游戏——像素鸟代码开源

    作者 小刘在这里 每天分享云计算网络运维课堂笔记 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的 绽放 愿所有的美好 再疫情结束后如约而至 目录 一 呈现效果 二 主代码 三 cfg 四 README 一 呈
  • 自动驾驶汽车下匝道路径优化控制策略研究

    摘要 随着社会不断进步 经济快速发展 科学技术也在突飞猛进 交通行业是典型的领域之一 现阶段的交通发展 实现智能交通系统为目标 正逐渐从信息化步入智能化 朝着智慧化迈进 近年来 一系列先进的理念和技术用来解决交通拥堵 道路安全 能源消耗和环
  • 【Python蓝桥杯】印章 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。

    最近在刷蓝桥杯题目 按题目做一下笔记整理 顺便分享交流一下 有更好的解决方案欢迎大家共同提出探讨 以下源代码为系统提交满分答案 印章 问题描述 资源限制 Python时间限制 5 0s 问题描述 共有n种图案的印章 每种图案的出现概率相同
  • VS2017遇到的问题及解决方案

    今天打开许久未打开的vs2017 遇到了一系列问题 在此记录一下 登录时提示 需要家长或监护人同意才能使用该账户 https www bilibili com read cv20136288 无法刷新此账户的凭据 https social
  • 用VC++来设计ActiveX控件

    用VC 来设计ActiveX控件 周勇生 2001年07月05日 14 03 ActiveX是Microsoft提出的一组使用COM ComponentObjectModel 部件对象模型 使得软件部件在网络环境中进行交互的技术集 它与具体
  • 基于深度学习的图像分割总结

    一 图像分割类别 随着深度学习的发展 在分割任务中出现了许多优秀的网络 根据实际分割应用任务的不同 可以大致将分割分为三个研究方向 语义分割 实例分割 全景分割 这三种分割在某种意义上是具有一定的联系的 语义分割 像素级别的语义分割 对图像
  • SpringBoot 缓存之 @Cacheable介绍

    原文链接 SpringBoot 缓存之 Cacheable介绍 编程屋 目录 1 概述 2 Cacheable注解使用详细介绍 2 1 Cacheable注解使用 2 2 Cacheable 注解的属性 1 概述 Spring高版本引入了c
  • 在emWin上显示汉字

    在emWin上显示汉字 最重要的一点 我经常忘记 加上GUI UC SetEncodeUTF8 转换编码 1 首先制造字库 先制作一个普通的txt文档 然乎保存为UTF 16LE 传统的就是以Unicode保存 然后打开字体库转换软件Fon
  • Manifest merger failed with multiple errors

    合并三方SDK的时候发现错误 如上 网上替换什么的都处理了 不太好 log具体信息又查看不到 在android studio这里找到terminal 并输入 gradlew processDebugManifest可以查看gradle bu
  • 点击唤起电话功能和企业微信聊天窗口事件(H5)

    1 点击唤起电话功能 const mobileShow 18888880000 唤起电话功能 const handlerCall phone string gt const url tel phone window location hre
  • Windows编程第一课:纯手工创建一个窗体

    第一节 创建应用程序主窗体 1 创建消息处理函数 LRESULT CALLBACK fWinProc HWND hWnd UINT uMsg WPARAM wParam LPARAM lParam switch uMsg case WM C
  • java stream 常用操作

    stream 常用操作 1 收集对象属性 2 对象属性分组 1 收集对象属性 List ids dataList stream map TradeSalesExwarehouseInfoForRailwayVo getRelatedDocI
  • 海思 ive

    海思 ive 简单例子 https download csdn net download qq 21193563 10047254 https github com hanson young nniefacelib nniefacelib是
  • 代码质量静态检查工具

    一 点睛 代码质量静态检查工具可以自动快速发现劣质代码 潜在Bug 给出代码优化建议 因此代码静态检查工具在实际项目研发中有举足轻重的作用 利用好各种优秀检查工具是做好品质管理的重要环节 二 静态分析和动态分析 代码分析技术分为 第一 静态