SonarSource 的产品和服务被世界各地的客户所使用。所有规模的组织都在使用来自 SonarSource 的产品和服务提高生产率, 降低风险, ***终开发更好的软件。Silverpeas 已经能够实现新的功能和提高产品性能, 这已导致赢得越来越多的客户。Silverpeas 是协作知识和内容管理的平台。当弗雷迪宣布SonarQube为服务时,群集的隐藏议程变得清晰明了。写在爪哇, Silverpeas 出生于 1999年, 在黑暗时代的 J2EE。这是一个时代之前的框架, 当英雄编码没有测试或文件。结果是一个工作产品的支持下的混乱的定制框架, 是基于良好的想法, 但执行不***。随着时间的推移, 由于在产品的早期就做出了短视的设计决策, 而且由于对其***体系结构没有明确的愿景, 因此发展和维护代码变得越来越困难。技术债务 = 责任
这种情况使我们很难跟上创新的步伐, 保持市场的竞争力。使问题复杂化的是, 执行基本维护和实施新功能的高昂成本使得很难获得新客户。技术债务代表了一个太大的负债。够了在 2009年, Silverpeas 团队作出了一个激烈的决定: 现在是时候, 以现代化的架构和提高 Silverpeas 的代码质量。但他们需要确切地知道如何, 什么, 以及在哪里重构之前, 他们可以继续。例如,由于缺少单元测试,代码可能有较低的评级,或者由于大量的重复代码或安全违规。"我们需要一个工具来支持我们的改变," Silverpeas 软件建筑师米格尔 Moquillon 说。"SonarQube (当时的声纳) 被选中来帮助我们获得正确的***, 这些问题。通过它的质量分析工具和它的统一和可定制的界面, 我们有信息, 以确定我们必须执行的任务, 以减少技术债务和提高代码的质量。这是我们的 GPS 在改善 Silverpeas 的道路上。SONARQUBE 保持技术债务控制
Silverpeas 团队在 Silverpeas 的现代化过程中选择了 SonarQube 这一关键角色, 部分原因是它是开源的, 就像 Silverpeas 一样, 易于扩展, 但 SonarQube 也提供了一些功能 Moquillon 说, 团队发现引人注目的:统一和集中的仪表板"一个统一和集中的仪表板, 其中呈现代码的主要质量指标: 一目了然是什么出错了, 什么是改进了, 很容易看到。SonarQubeSonarQube度量您的代码库的可维护性、可靠性和安全性,并跟踪随着时间的推移而改进。简单的导航--"一种简单的方法来导航到相关代码的不同指标: 很容易找到需要操作的代码部分."强大的报告-"在时间的指标演变的迹象: 我们可以估计我们的代码改进的努力。更好的软件质量已导致越来越多的客户赢得
SonarSource 的解决方案有助于 Silverpeas 的成功, 通过对关键问题提供持续和快速的反馈以及如何解决它们的建议。工作从坚实基地它的代码质量改进给它, Silverpeas 团队已经能够实现新的功能, 并提高产品的鲁棒性和性能, 这已导致赢得越来越多的客户。今天, Silverpeas 团队致力于将其软件质量保持在 SonarQube 的轨道上。Moqillon 说, Silverpeas 团队对 SonarQube 有信心, 因为 "这是一个开源项目, 如 Silverpeas, 因此, 我们是确保其演变和质量。将所有这些信息一起放在所有项目中将是一个新的治理仪表板(一个商业插件)。他赞扬 SonarQube 的定期发布时间表、易用性、易于安装以及与现有开发基础结构 (如连续集成服务器詹金斯) 和构建系统 Maven 等集成的易用性。现在, SonarQube 分析运行每晚 Silverpeas 的35.1万行代码, 由詹金斯触发的后期生成行动。开发人员和经理定期检查结果, 并采取行动解决问题的集体努力, 以维护和进一步提高 Silverpeas 的软件质量。
SonarSource连续检查的10原则:
开发过程中的所有利益干系人 (不仅仅是开发人员或经理) 必须具有现成的访问权限到有关软件质量的有意义的数据。
管理软件质量必须是每个人的关注从开始的发展, 但是开发团队的终ji责任。
软件质量必须是开发过程的一部分, 这意味着满足质量标准是一个的硬要求能够声明开发完成。
软件质量要求必须是客观的, 不需要主观的通过/失败的决定。软件质量要求必须尽可能多地与所有软件产品共同, 无论他们的细节。
软件质量数据必须是***xin的, 即对代码的***近版本进行测量。
软件产品必须不断检查, 以便在容易发现错误时迅速正确.开发人员必须能够发现新的质量缺陷, 一旦他们被引入, 即在IDE 编写代码时, 类似于拼写检查程序突出拼写错误的方式。
无论是通过推还是拉, 在注入新的质量缺陷时, 都必须提醒利益干系人, 无论这是通过发送电子邮件, 打破了构建或其他方法。
必须跟踪新问题的注入,使团队能够快速、明智地决定质量。
软件质量数据必须同时提供绝dui (在所有代码) 和差异 (新的代码)值, 以便开发团队可以完全控制问题的传入流程。
所有新问题和现有关键问题都必须为解决方案指ding明确的路径和时间线。
持续的检验范式是非常有效的, 并已被证明在现实世界中工作从离岸软件工厂到财富100强企业不等。这些公司成功地使用了连续检测模型来管理项目的内部软件质量所有大小。
一个财富100强的公司与超过2万的开发商使用它管理超过6亿行代码, 在每天分析超过5000应用程序的环境中。
在所有情况下, 连续检查帮助这些公司大大提高了软件质量和稳定, 通常节省数百万美元, 否则将花费在根本原因分析和危机管理。
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伪像,那么可以将其留下 - 至今没有确定任何冲突。然而,尽管质量低劣的软件对客户访问、收入和商业信誉在这些有影响力的移动和其他第三平台环境中,许多组织已经陷入了可怜的软件卫生习惯。无论如何,它不应该在这里需要,所以从这个部分删除它可能更安全。
档案部分
所有必需的更改都在本节中。而且它们都非常干净,因为它们都只需要向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 </版本>
<范围>测试</范围>
</依赖性>
</依赖>
</简档>
将SonarQube指标集成到TFS构建中 - 简介
所需步骤概述
这里有很多步骤,有很多消化,所以我将分解这几个博客文章主要是:
使TFS输出所需的测试和覆盖结果文件。
设置您的项目使用声纳。
将“Sonar Runner”整合到您的构建中。
所展示的解决方案足以满足我正在尝试实现的目的,但您可能希望重新排列几个步骤来适应您的场景。 将围绕这些步骤进行一些讨论,以帮助您了解我所做的任何决定,并提供一些背景,但如果您感兴趣的是如何做到这一点,然后忽略此文本,只需按照步骤。
祝你好运与你的整合。
***部分 - 使TFS输出所需的测试和覆盖结果文件。
第2部分 - 设置您的项目使用声纳。
第3部分 - 将“Sonar Runner”整合到您的构建中。
版权所有©2024 天助网