代码质量静态检查工具

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 前言 这是学长亲手整理的 软件工程毕设选题系列第三篇 都是经过学长精心审核的
  • 软件工程学习日记(4)----面向数据流的设计方法

    用面向数据流的方法设计下列系统的软件结构 问题回顾 为方便储户 某银行拟开发计算机储蓄系统 储户填写的存款单或取款单由业务员输入系统 如果是存款 系统记录存款人姓名 住址 存款类型 存款日期 利率等信息 并印出存款单给储户 如果是取款 系统
  • 目前支持CUDA的nVIDIA的显卡型号 驱动及其 修改过后的 inf文件

    下载169 21 forceware winxp 32bit english whql exe NVIDIA Driver for Microsoft Windows XP with CUDA Support 169 21 我们在运行它的时
  • 个人安装与配置VMware 虚拟机过程中发现的注意事项

    1 官网下载VMware安装包 本人版本应该是16 0 0 官网地址 下载 VMware Workstation Pro CN 2 安装过程参考网上搜索到的教程VMware16的安装及VMware配置Linux虚拟机 详解版 何故的博客 C
  • 服务计算:简单的web程序

    CloudGo 框架选择 看了go的一些框架如beego和iris觉得挺好的 本来想用 但是虚拟机出了点问题装不成 windows上装成了没ab指令 所以使用官方的net http库做简单的实验 看完beego和iris的特性我还是比较想用
  • 一个不错的关于CPU和GPU(CUDA)的性能比较讨论话题

    http topic csdn net u 20081027 23 67ff3857 3c71 4d5c acf6 095f3497c7a9 html这里是今天的一个论坛的一个帖子 大家可以讨论一下 1 那些程序适合用cpu来做 那些适合用
  • 小米盒子打开adb调试模式

    1 先打开开发者模式 进入小米电视设置 gt 进入关于 gt 找到产品型号 gt 在产品型号上面连续多次按ok 确认 键 gt 然后就会提示 您已处于开发者模式 2 开启adb 经过第一步开启开发者模式之后 现在可以返回到设置页面 进入 账
  • 软件项目管理

    目录 前言 项目管理概述 项目与软件项目 项目管理与软件项目管理 项目管理知识体系 过程管理与软件项目管理的关系 软件项目管理过程 项目初始 项目确立 项目立项 项目招投标 项目授权 敏捷开发总结 scrum模型 迭代式增量软件开发过程 术
  • 软件工程期末试题及答案(史上最全)

    软件工程期末试题及答案 文章目录 软件工程期末试题及答案 一 填空题 二 选择题 三 判断题 四 简答题 五 分析题 六 画图题 一 填空题 在信息处理和计算机领域内 一般认为软件是 文库 程序 文档 和 数据 数据流图的基本组成部分有 数
  • 推荐111个软件工程本科的计算机毕业设计,有手就会

    对于即将挑战计算机专业毕业设计的学子们 是否已经为选题和项目感到焦虑 今天 我们为即将毕业的学生提供了大量的毕业设计项目 期望对于正在为毕业设计挠头的同学们有所助益 一 成品列表 以下所有springboot框架项目的源码博主已经打包好上传
  • [需求管理-4]:需求分析全过程:需求分析+资源评估+项目计划

    前言 需求收集后 需要经过漫长的需求分析和所需要评估过程 才能正式在某个软件版本中实现需求 在软件开发人员通过编程实现需求前 中间经过了多种角色的辛苦劳动 最终才会生成需要规格说明书 需求规格说明书是逐步由粗到细的分解过程 一个需求 要进入
  • 个人技术总结——uview-plus下的Http请求基本使用及相关使用

    这个作业属于哪个课程 软件工程 23年春季学期 这个作业要求在哪里 软件工程实践总结 个人技术总结 这个作业的目标 个人技术总结 其他参考文献 构建之法 CSDN社区 uni app官方文档 uview plus官方文档 目录 一 写在前面
  • SQL 算术运算符:加法、减法、乘法、除法和取模的用法

    SQL Server中的存储过程 什么是存储过程 存储过程是一段预先编写好的 SQL 代码 可以保存在数据库中以供反复使用 它允许将一系列 SQL 语句组合成一个逻辑单元 并为其分配一个名称 以便在需要时调用执行 存储过程可以接受参数 使其
  • 软件开发流程分析

    软件开发流程分析 相关概念 1 原型设计 2 产品设计 3 交互设计 4 代码实现 详细步骤 相关概念 前端 自研API 调用第三放API 后端 自研API 第三方API 数据库 Mysql 数据采集 数据迁移 服务器 JAVA Nginx
  • DEVOPS 持续部署的例子:IMVU

    持续部署的例子 IMVU IMVU是一家社交娱乐公司 它的产品允许用户以一种3D阿凡达式的体验互相连接起来 本节内容改编自一位IMVU工程师所写的博客 IMVU采用了持续集成 开发人员尽早提交并经常提交 每次提交都触发测试套件的执行 IMV
  • thinkphp+vue教学互动课程资源网站

    软件工程课程建设通篇文章的撰写基础是实际的应用需要 然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程 以软件工程课程建设的实际应用需要出发 架构系统来改善现软件工程课程建设工作流程繁琐等问题 不仅如此以操作者的角度来
  • 【EI会议征稿】第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024)

    第四届计算机网络安全与软件工程国际学术会议 CNSSE 2024 2024 4th International Conference on Computer Network Security and Software Engineering
  • C++ 中 const 和 constexpr 关键字解析:常量、函数和指针

    很多 C 的初学者看到 const 这个关键字的第一反应都是一头雾水 主要是因为 const 可 以出现在很多的位置 以及后面加入的 constexpr 更是常常感到困惑 今天就为大家一一解释出现它们的含义和以及作用 const 关键字 c
  • Go 语言运算符详解:加法、算术、赋值、比较、逻辑和位运算符全面解析

    运算符用于对变量和值执行操作 加号运算符 将两个值相加 如下面的示例所示 示例代码 package main import fmt func main var a 15 25 fmt Println a 尽管加号运算符通常用于将两个值相加
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one

随机推荐

  • 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 给出代码优化建议 因此代码静态检查工具在实际项目研发中有举足轻重的作用 利用好各种优秀检查工具是做好品质管理的重要环节 二 静态分析和动态分析 代码分析技术分为 第一 静态