白盒测试工具 - sonar报告常见示例分析,sonar代码质量问题分析演示

简介: 白盒测试工具 - sonar报告常见示例分析,sonar代码质量问题分析演示

         

sonar 问题分析

第一章:bug分析

① 操作符两边使用相同的值

译文: 在二进制操作符的两边使用相同的值几乎总是错误的。在逻辑操作符的情况下,它要么是一个复制/粘贴错误,因此是一个bug,要么只是浪费代码,应该进行简化。在逐位运算符和大多数二进制数学运算符的情况下,在运算符的两边都有相同的值会产生可预测的结果,应该加以简化。

Using the same value on either side of a binary  operator is almost always a mistake. In the case of logical operators,  it is either a copy/paste error and therefore a bug, or it is simply  wasted code, and should be simplified. In the case of bitwise operators  and most binary mathematical operators, having the same value on both  sides of an operator yields predictable results, and should be  simplified.

image.png

② 变量、类或函数没有被定义就使用

译文: 变量、类和函数应该在使用之前定义,否则代码会失败。

Variables, Classes and functions should be defined before they are used, otherwise the code will fail.

image.png

③ html一些不推荐使用的元素,并提供用哪些来代替

不推荐用 font 来设置字体,建议使用 css

译文: 随着HTML5的出现,许多旧的元素被抛弃了。为了确保最佳的用户体验,不应该使用不赞成的元素。此规则检查下列不赞成使用的元素

With the advent of HTML5, many old elements were  deprecated. To ensure the best user experience, deprecated elements  should not be used. This rule checks for the following deprecated  elements

image.png

④ html 元素没有包含 lang 属性

译文: <html>元素应该提供lang和/或xml:lang属性,以便识别文档的默认语言。

The element should provide the lang and/or xml:lang attribute in order to identify the default language of a document.

image.png

第二章:代码味道

① 不要有注释的代码,会使代码臃肿降低可读性。

译文: 程序员不应该注释掉代码,因为代码会使程序臃肿,降低可读性。

Programmers should not comment out code as it bloats programs and reduces readability.image.png

② 合并可折叠的语句会增加代码的可读性。

两个 if 条件语句嵌套,完全可以用一个 if ,加上 and 连接词即可。

译文: 合并可折叠的语句会增加代码的可读性。

Merging collapsible if statements increases the code’s readability.

image.png

③ 结构中有两个分支且实现相同容易出现问题,最好合并起来。

可以看到我的两个分支实现是一样的。

译文: 如果结构中有两个分支,且实现相同,则最好的情况是重复代码,最坏的情况是编码错误。如果两个实例确实需要相同的逻辑,那么应该将它们组合起来。

Having two branches in the same if structure with the  same implementation is at best duplicate code, and at worst a coding  error. If the same logic is truly needed for both instances, then they  should be combined.image.png

④ 函数命名不规范。

译文: 共享编码约定允许团队高效协作。该规则检查所有函数名是否与提供的正则表达式匹配。

Shared coding conventions allow teams to collaborate  efficiently. This rule checks that all function names match a provided  regular expression.

⑤ 声明了局部变量但是没有用,应该删除来提高可维护性。

译文: 如果声明了局部变量但没有使用,那么它就是死代码,应该被删除。这样做将提高可维护性,因为开发人员不需要考虑变量的用途。

If a local variable is declared but not used, it is  dead code and should be removed. Doing so will improve maintainability  because developers will not wonder what the variable is used for.

image.png

⑥ 函数过于复杂不利于维护

译文: 认知复杂性是衡量一个函数的控制流有多难以理解的一个指标。具有高度认知复杂性的功能将难以维持。

Cognitive Complexity is a measure of how hard the  control flow of a function is to understand. Functions with high  Cognitive Complexity will be difficult to maintain.

image.png

⑦ 重复的字符串文本使重构代码的过程容易出错

我圈住的字符串在代码里出现 3 次,重构代码时一定要小心出问题。

译文: 重复的字符串文本使重构过程容易出错,因为必须确保更新所有出现的字符串。

Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.image.png

喜欢的点个赞❤吧!


目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
462 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
4月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
246 6
|
5月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
1209 10
|
5月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
816 0
|
6月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
7月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1190 23
|
7月前
|
数据可视化 测试技术 Go
Go 语言测试与调试:`go test` 工具用法
`go test` 是 Go 语言内置的测试工具,支持单元测试、基准测试、示例测试等功能。本文详解其常用参数、调试技巧及性能测试命令,并提供实际项目中的应用示例与最佳实践。
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
6月前
|
人工智能 数据可视化 测试技术
UAT测试排程工具深度解析:让验收测试不再失控,项目稳稳上线
在系统交付节奏加快的背景下,“测试节奏混乱”已成为项目延期的主因之一。UAT测试排程工具应运而生,帮助团队结构化拆解任务、清晰分配责任、实时掌控进度,打通需求、测试、开发三方协作闭环,提升测试效率与质量。本文还盘点了2025年热门UAT工具,助力团队选型落地,告别靠表格和群聊推进测试的低效方式,实现有节奏、有章法的测试管理。
|
7月前
|
弹性计算 JavaScript Ubuntu
WebSocket协议相关的测试命令工具使用简介
本文介绍了针对WebSocket的测试工具wscat和websocat的基本使用方法,以及通过curl命令测试HTTP/HTTPS协议的方式。对于WebSocket,直接使用curl测试较为复杂,推荐使用wscat或websocat。文中详细说明了这两种工具的安装步骤、常用参数及连接示例,例如在ECS上开启8080端口监听并进行消息收发测试。此外,还提供了curl命令的手动设置头部信息以模拟WebSocket握手的示例,但指出curl仅能作为客户端测试工具,无法模拟服务器。
2159 4

热门文章

最新文章