TscanCode和Sonar对比报告

TscanCode和Sonar对比报告

检查代码的指标

Sonar(cppcheck)

其中:c++的检查由cppcheck完成,由sonar展示

1.不遵循代码标准: SonarQube可以通过PMD,CheckStyle,Find bug s等等代码规则检测工具规范代码编写。

2.潜在的缺陷:SonarQube可以通过PMD,CheckStyle,Fin db ugs等等代码规则检测工具检 测出潜在的缺陷。

3.糟糕的复杂度分布: 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有 自动化 的 单元测试 ,对于程序中的任何组件的改变都将可能导致需要全面的回归 测试 。

4.重复: 显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展示 源码 中重复严重的地方。

5.注释不足或者过多:没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

6.缺乏单元测试: SonarQube可以很方便地 统计 并展示单元测试 覆盖率 。

7.糟糕的设计:通过SonarQube可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过SonarQube可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。

将问题级别分为bug,漏洞,警告(坏味道)

功能展示项较多,界面丰富。给出的报告中代码质量指标包括:可靠性,安全性,可维护性,覆盖率,重复率,代码行数,复杂度,对查出来问题能够一一标记,并对问题修改的进度进行管理;能够对每个问题修改花的时长进行一个预估。

TscanCode(用的版本2.1)

1.空指针检查: 包含可疑的空指针,判空后解引用比如Crash等共3类subid检查

2.数据越界: Sprintf_S越界共1类subid检查

3.内存泄漏: 分配和释放不匹配同1类subid检查

4.逻辑错误: 重复的代码分支,bool类型和INT进行比较,表达式永远True或者false等共18类检查

5.可疑代码检查: if判断中含有可疑的=号,*变量返回局部变量等共计15类检查

6.运算错误:判断无符号数小于0,对bool类型进行++自增等,共计11类检查

并将问题级别分为:致命、严重、警告、提示、风格

功能展示项不多,界面少。
给出的报告包括:具体代码在哪行出现了哪个程度的错误,仅此而已。