SonarSource简介
代码质量是软件发明时出现的问题。代码质量差会导致各种问题: 团队速度低、应用程序退役、生产崩溃、公司声誉不佳..。在 SonarSource, 我们提供了解决方案, 以提高维修性, 可靠性和安全性。性问题
这通常被称为技术债务。与可维护性相关的问题在我们的产品中被命名为 "代码气味"。从本质上说, 软件预计会随着时间的推移而改变, 这意味着今天编写的代码将在明天更新。在代码库中进行此类更改的能力、成本和时间直接与其可维护性级别相关。换言之, 低可维护性意味着开发团队的低速。可维护性包括模块化、理解、可变性、可测试性和可重用等许多概念。提高质量:SonarQube可以作为一个多维分析员进行操作,并且可以对代码质量的七部分进行通知。它不采取关键问题的形式, 而是数以千计的小问题与***jia做法的结果。
SonarSource简介
可靠性问题
这通常被称为潜在的 bug 或代码, 在运行时将不具有预期的行为。此类问题将所有与操作风险或运行时意外行为有关的内容分组。它通常采用可能导致业务中断的关键编程错误的形式。其中的一些问题将存在于简单的不符合***jia做法的情况, 但大多数将通过对代码的深入分析和代码的符号执行来检测, 以了解程序中任何给***的变量的状态。由于开发人员提供了一个粒度代码级别的信息,SonarQube使这些构建软件查找并深化到存在代码问题的位置。安全问题
这通常被称为程序中的漏洞或缺陷, 可能导致应用程序的使用方式与设计不同。这类问题将所有与程序有缺陷的事情进行分组, 这些漏洞可以被利用来使它的行为与它的设计不同。安全漏洞 (如 SQL 注入或跨站点脚本) 可能是由于编码和体系结构实践不佳造成的。SonarQube可以成为源代码质量的协调中心,因为它不需要限于开发人员或技术娴熟的,但可以提供有用的信息广泛项目经理,技术领导,IT,甚至在一个组织内的业务领导可自定义的仪表板。这些问题在 CWE 和证书所维护的列表中有很好的记录
SonarSource不断的检查, 新的软件质量范例, 解决和解决的关键挑战
在代码质量管理中:
太少, 太迟
推回
开发团队
缺乏过程
所有权
异构
要求
团队收到关于质量的持续反馈, 包括对一组
质量要求
一个清晰的, 更新的质量演变的图片随时可用, 包括
版本间的比较
团队可以从介绍中跟踪问题, 并提供反馈
一旦出现质量缺陷, 就会通知风险承担者
质量门每天执行
***的质量门迭代成为一个事件
开发商的持续教育导致良性循环的改善
质量行动计划直接在团队内部生成, 并集成在
开发过程
软件质量是开发过程的一部分
评论包括背景和历史信息, 包括不同
版本和对软件所做的各种更改
利益干系人可以访问有关其软件质量的有意义的信息
实时
开发团队一旦收到质量缺陷的信息
添加 (通过电子邮件, 在 IDE 中可见,...) 使问题立即得到解决
团队获得开发更好软件的能力
代码质量的归属属于开发团队
软件质量被嵌入到开发过程中, 成为
每个人的责任
整个组织都可以访问软件质量工具, 以
每个利益相关者
质量要求可以在团队中的共享、更新和评审
成员和整个组织
质量判断是以自动化的方式在客观的基础上做出的
事先发布到组织的标准。
报告清楚地显示了软件的可维护性, 并立即
不需要外部顾问就可以理解
开发人员的持续教育导致显著的软件质量
从长远来看改善
团队有能力测量新的和更改的软件质量
代码以及整个代码库
团队可以跟踪新问题的注入
SonarQube和JaCoCo的个人测试代码覆盖率
构建部分
这里不需要修改但是,您应该注意Maven Surefire的任何自定义配置,以确保它也适用于我们要创建的配置文件。在春季宠物诊suo的情况下,这是我们正在写的参考POM的相关部分:
<建立> <插件>
...
<插件>
<的groupId> org.apache.maven.plugins </的groupId>
<artifactId的>行家-万无一失-插件</ artifactId的>
<版本> 2.13 </版本>
<结构>
<argLine> -XX:-UseSplitVerifier </ argLine>
<包含>
<包括> ** / * Test.java </包括>
<包括> ** / * Tests.java </包括>
</包括>
<排除>
<排除> ** /它/ * IT.java </排除>
</排除>
</配置>
</插件>
</插件> </建造>
这种配置告诉Surefire:1)排除执行单元测试的集成测试(Surefire的双插件,Failsafe涵盖了集成测试);和2)禁用字节码验证器,防止类被调试时的运行时错误(即添加mocks或TopLink增强功能时)。
依赖部分
在本节中,不需要进行任何更改。我们只想注意到,如果您的项目已经在利用JaCoCo收集整合测试覆盖率指标,并且明确地指出了本部分中的JaCoCo伪像,那么可以将其留下 - 至今没有确定任何冲突。无论如何,它不应该在这里需要,所以从这个部分删除它可能更安全。如往常一样,使用子项目的关联属性组中的SYSLIB字段来解析包含文件引用。
档案部分
所有必需的更改都在本节中。而且它们都非常干净,因为它们都只需要向POM添加一个新的配置文件。此配置文件将为Surefire配置一个特殊侦听器,以确保适当收集每个单独测试用例的覆盖度量。为了保证成功的测试执行,我们将在此保持与POM的构建部分中显示的相同配置。必须与复杂多变的多式技术网络相抗衡的组织与遗留系统和资源结合在一起的数千个用户的地理分布式。***,配置文件将为包含侦听器代码的伪zao添加新的依赖关系。结果是这样的:
<轮廓>
<! - 使用SonarQube和JaCoCo计算每个测试的覆盖率指标
<ID>覆盖每次测试</ ID>
<建立>
<! - 与常规测试执行目标相同的配置 - >
由JaCoCo prepare-agent - >配置的<! - 加argLine参数
<argLine> $ {argLine} -XX:-UseSplitVerifier </ argLine>
<! - 每个测试覆盖所需的新配置 - >
<性能>
<属性>
<名称>听者</名称>
<值> org.sonar.java.jacoco.JUnitListener </值>
</属性>
</建造>
<依赖性>
<的groupId> org.codehaus.sonar-plugins.java </的groupId>
<artifactId的>声纳-jacoco-听众</ artifactId的>
<版本> 2.3 </版本>
<范围>测试</范围>
</依赖性>
</依赖>
</简档>
版权所有©2025 天助网