SonarSource
成功的组织在过程中将质量分析向前移动, 并将其作为整个软件开发生命周期的一部分进行迭代。白皮书开发和测试世界和业务方法以及正在向敏捷模型演进-持续的价值生成/持续改进/连续检查是提高质量的基本战略。IDC 观察到, 传统的代码质量方法通常在开发过程结束时成为检查表项目时失败。此 IDC 技术聚焦讨论了改进软件分析、缺陷管理、安全性和度量的方法的必要性, 以通过主动可见性来获得业务和 IT 好处。IDC 建议评估和采用自动化的软件分析方法, 如 SonarQube 和 SonarSource 提供的, 以改进软件质量策略。





SonarSource 的产品和服务被世界各地的客户所使用。所有规模的组织都在使用来自 SonarSource 的产品和服务提高生产率, 降低风险, 终开发更好的软件。
SonarQube 使软件质量成为 Agirc 和 Arrco 软件开发过程中的一个集成组件。Agirc & Arrco 是一家法国公司, 负责管理超过2200万员工的补充养老金, 并在广泛的行业、农业和商业领域担任高管。计算和计算这许多客户的养老金应该是昂贵的, 如果不是灾难性的, 如果做错了。Agirc 和 Arrco 真的需要的软件, 以确保其业务运作顺利运行, 其养老金得到正确和及时的评估。此外, 具有优异的软件质量意味着更少的时间用于 bug 修复和提高开发新项目的效率。手动代码检查! = 软件质量
早在 2008年, Agirc 和 Arrco 就意识到需要改进它的应用, 才能取得进展, 但它的编码团队根本不知道如何去做。质量过程于针对已知 bug 对小块应用程序进行手动代码检查。作为一个短期的结果, 这些 bug 是固定的, 但进程留下的, 根本问题未触及。在软件质量过程的这个阶段, Agirc 和 Arrco 面临着许多组织共有的三关键挑战:无法识别起始点, 并确定工作的优先级。团队不知道在哪里开始改进, 或者快速获胜的地方--如果他们还存在的话。无法看到需要多少改进, 并估计将质量提高到可接受水平的努力。无法阻止新创建的应用程序重新引入在现有应用程序中纠正的相同质量问题;再犯同样的错误。SONARQUBE 使代码的改进变得清晰和简单
在2008年秋季, Agirc 和 Arrco 用 maven 2 取代了它的 maven 1 构建过程, 并且作为这个过程的一部分, 评估了几个解决方案来支持不断改进的软件质量。经过大量研究, SonarQube 被选为在整个组织中管理软件质量的集中解决方案。"首先 SonarQube 是一个简单的,中国sonarqube 插件, 当你开始使用它: 不需要庞大的配置" bastien Touzet, 应用建筑师在 Agirc Arrco。Touzet 还赞赏 SonarQube 融入开发环境的事实。"我们的特征之一是通过 SonarQube 插件进行 Eclipse 集成: 现在, 我们的开发人员可以看到并改进他们的代码, 而不必在多个工具之间切换"。在实施了 SQALE 插件的技术债务评估, Touzet 说, 团队受益于对软件质量的关键措施的客观衡量标准, 以及如何解决问题的迹象。SonarQube 的简单和 user-friendliness 鼓励组织中的每个人都参与进来, 密切关注 Agirc 和 Arrco 的软件质量, 并采取具体的行动来改进它。例如, 在近的绩效改善项目中, 一家专门的审计公司参与审查公司的 COBOL 批处理程序。然后, 团队利用 SonarQube 的易扩展性, 根据审计结果开发新的 SonarQube 规则。现在, 整个开发团队能够遵循这些编码标准, 避免在其应用程序中引入新的性能问题。新的开发人员立即知道如何确保批处理程序的效率, 避免引入新的问题。从改进代码中获得的优势
长期以来, Agirc 和 Arrco 都低估了代码质量改进的必要性。有一种模糊的理解认为需要改进, 但由于缺乏对问题的了解, 任何人都无法理解其范围或重要性。在 2008年, SonarQube 首先提供了这种可见性,代理商sonarqube 插件, 现在它使软件质量成为软件开发过程中的一个不可分割的组成部分。今天, SonarQube 每天运行, 从50项目中分析超过240万行代码。整个组织参与并参与了嵌入式质量过程, 逐步提高了现有软件的质量, 避免了新开发应用中的质量缺陷。公司及其200强的开发团队专注于长期的、value-added 的活动, 而不是在救火模式下的短期手动 bug 修复。对 Agirc 和 Arrco 的业务影响是难以夸大的: 更好的软件大大降低了错养老金的风险, 并使公司能够灵活地将其软件迅速适应外部环境的变化。








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伪像,那么可以将其留下 - 至今没有确定任何冲突。无论如何,代理商sonarqube 插件,它不应该在这里需要,所以从这个部分删除它可能更安全。
档案部分
所有必需的更改都在本节中。而且它们都非常干净,因为它们都只需要向POM添加一个新的配置文件。此配置文件将为Surefire配置一个特殊侦听器,重庆sonarqube 插件,以确保适当收集每个单独测试用例的覆盖度量。为了保证成功的测试执行,我们将在此保持与POM的构建部分中显示的相同配置。,配置文件将为包含侦听器代码的伪zao添加新的依赖关系。结果是这样的:
<轮廓>
<! - 使用SonarQube和JaCoCo计算每个测试的覆盖率指标
<ID>覆盖每次测试</ ID>
<建立>
<插件>
<插件>
<的groupId> org.apache.maven.plugins </的groupId>
<artifactId的>行家-万无一失-插件</ artifactId的>
<版本> 2.13 </版本>
<结构>
<! - 与常规测试执行目标相同的配置 - >
由JaCoCo prepare-agent - >配置的<! - 加argLine参数
<argLine> $ {argLine} -XX:-UseSplitVerifier </ argLine>
<包含>
<包括> ** / * Test.java </包括>
<包括> ** / * Tests.java </包括>
</包括>
<排除>
<排除> ** /它/ * IT.java </排除>
</排除>
<! - 每个测试覆盖所需的新配置 - >
<性能>
<属性>
<名称>听者</名称>
<值> org.sonar.java.jacoco.JUnitListener </值>
</属性>
</属性>
</配置>
</插件>
</插件>
</建造>
<依赖性>
<依赖性>
<的groupId> org.codehaus.sonar-plugins.java </的groupId>
<artifactId的>声纳-jacoco-听众</ artifactId的>
<版本> 2.3 </版本>
<范围>测试</范围>
</依赖性>
</依赖>
</简档>
中国sonarqube 插件-华克斯(推荐商家)由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司坚持“以人为本”的企业理念,拥有一支高素质的员工队伍,力求提供更好的产品和服务回馈社会,并欢迎广大新老客户光临惠顾,真诚合作、共创美好未来。华克斯——您可信赖的朋友,公司地址:苏州工业园区新平街388号,联系人:华克斯。