SonarSource简介
我们为整个开发组织增添了价值。无论您在开发组织中的角色是什么, SonarSource 解决方案都增加了价值, 因为我们有 cutting-edge 的功能, 您需要在您的软件组合中***da限度地提高质量和管理风险。为开发
软件开发人员***终负责代码质量。代码质量是所谓的非功能性需求的一部分, 因此是开发人员的直接责任。因为代码质量不是应该推迟到以后进行的, 所以我们的解决方案在开发过程的每一步都提供了反馈, 从 IDE 到发布, 包括任何中间升级。这使开发人员能够对代码质量做出早期和经过教育的决策, 使他们能够更好地完成工作并提供更好的软件。培育创新:随着越来越多的公司迁移到SonarQube平台,它们的规模和多样性也在增加。开发devops为devops
DevOps 团队需要确保软件建立在正确的道路上。DevOps 队有很多责任。其中包括支持开发过程、自动化测试、确保质量、提高生产率以及***终启用连续部署。良好的代码质量是实现所有这些目标的必要条件, 虽然不是充分的条件。我们的解决方案提供了一个代码质量的收费门, 可以添加在任何建设/测试/部署步骤。这使 devOps 团队能够自动执行一组质量标准, 从而确保组织提供更好的软件。***,因为每个方法都有一个***xiao的圈复杂度得分,它是不可能知道任何具有高聚合圈复杂度的给定类是否一个大的、易于维护的域类,或一个具有复杂控制流的小类。为高管
SonarSource 解决方案降低了风险并提高了团队生产率。管理人员需要能够安全地操作软件, 并以成本为投资回报辩解。我们的解决方案向执行官们一目了然地展示了他们面临的操作风险以及缓解的成本。它还有现成的功能, 可以系统地改进可维护性, 从而提高开发团队的长期生产率。这使管理人员能够确保其组织提供更好的软件, 并以***jia成本使用风险控制方法。启用连续代码质量管理:使用SonarQube,代码分析变得更加容易,开发人员可以获得宝贵的洞察力,以确保这一点得到广泛采用。
SonarSource 的产品和服务被世界各地的客户所使用。所有规模的组织都在使用来自 SonarSource 的产品和服务提高生产率, 降低风险, ***终开发更好的软件。SONARSOURCE 的产品和服务被世界各地的客户所使用。
思科系统 (NASDAQ: cisco) 是***领xian的网络技术。思科拥有73460名员工和 Q2 FY13 121亿美元的收入, 在各种技术领域, 包括安全、网络会议、路由: 边缘/***/接入、语音等方面都是市场的***。许多组织已经变得太接受劣质软件开发,并且容易-或勉强-同意交付的软件产品,是晚,超过预算,并盛行缺陷。思科 IT 代表公司的工程部门, 负责提高开发人员的生产率, 并在持续交付、构建管理、代码审查和部署方面实施***jia做法。思科的目标是设计、实施和宣传***的软件质量和维护工具。软件质量面临的关键挑战
今天, 思科将成为世界上 1 it 组织的轨道, 但有一段时间, 它无法管理软件质量可能是一个绊脚石。根据思科 it 工程师 Dhairya Sanghvi 的数据, 使它进入和通过 QA 的代码的质量是一个问题。过去有许多与代码相关的问题, 随着时间的推移而不断升级, 花费了我们很多钱。部分问题是缺乏标准。在IDC中,我们一直在跟踪重大业务变更项目的成功率组织在过去的几年里,和我们的2014QA调查横跨超过200大企业发现有问题的项目成功率。"我们曾经有开发团队以一种杂乱无章的方式进行代码审查和非功能分析," Sanghvi 说。"没有信息存储或对缺陷数量有清晰的了解", 也无法看到质量随时间变化的方式。此外, "代码评审所采用的系统和流程没有标准化, 因为没有用于执行 (审查) 的通用工具或规则集"。开发团队正在使用各种工具进行静态分析和单元测试, 但他说, "思科需要将其***转移到一个具有更成熟报告能力的工具上, 开发人员和管理层都可以对其进行解释。SONARQUBE 是一致的选择
Sanghvi 说, 在寻找能够满足思科需求的工具的同时, 研究团队也在尝试将敏捷实践融入到思科 it 开发环境中。他说, 这支球队是以 SonarQube 的特点出售的, 但整合是关键的。"SonarQube 是一个代码分析工具, 与詹金斯集成好, 我们去了, ' a-哈, SonarQube 它是这样的!SonarQube 是一致的选择。Sanghvi 说, SonarQube 有 "很多伟大的特点", 但这些突出:可自定义的规则集-"SonarQube 中的可定制的质量配置文件是一个非常有用的灵活性, 考虑到我们的平台上有各种不同的粉笔和奶酪的团队," Sanghvi 说。"此外, 将 xml 规则 (从一个 SonarQube 实例转移到另一个) 和这些配置文件的继承能力都很容易使其成为***的产品。项目组合管理-思科公司正在使用投资组合管理插件, 在整个企业中提供管理友好、个性化的质量指标。这意味着水平软件产品的可维护性今天将决定其成本责任的水平明天。这给整个组织提供了很大的激励, 可以定期检查他们的进度, 跟踪改进并采取行动来修复质量缺陷。时间机器– "趋势分析报告是 SonarQube 中***da量的使用能力之一, 帮助我们说服许多项目团队采用该工具" Sanghvi 说。"能够看到我们的项目在很长一段时间内的质量改善是***关键的项目之一, 在您的阿森纳。当与项目组合管理插件结合使用时, 此功能为组织的性能提供了一个完整的窗口。在代码审查和功能集成中节省了大量的资源时间
根据 Sanghvi 的数据, 思科公司采用 SonarQube 的方法, 对这家企业来说是一个巨大的胜利。"SonarQube 已经触发了三倍的业务影响, 我们已经看到了在每一个项目团队, 我们已经登上-交付*** (时间到能力减少), 工程*** (质量改进) 和业务价值 (成本节约)。通过将代码分析转移到开发阶段并每天运行它, Cisco it 大大提高了代码质量, 并因此减少了紧急 bug 修复, 这 "为组织节省了大量成本", Sanghvi 说。"在 PLC 的早期阶段遇到的缺陷比以后被发现的要便宜得多。使用SonarQube的好处SonarQube客户描述的功能在解决其***问题包括以下几个方面:?代码和质量的能见度,可以看到热点是在应用程序中主动包括应用程序质量"前端"作为开发的初始和迭代部分过程仪表板,用户可以选择处境和自定义报告。下一次大胜利是在代码审查领域。现在, 每个团队都在同一个地方进行代码评审, 使用相同的工具和度量, SonarQube 提供了对关键缺陷度量的清晰和基于时间的可见性。由于 SonarQube 的日常代码分析, 在代码审查和功能集成中节省了大量的资源时间。此外, "SonarQube, 与其相关的质量概况和他们的客户
SonarSource 的产品和服务被世界各地的客户所使用。所有规模的组织都在使用来自 SonarSource 的产品和服务提高生产率, 降低风险, ***终开发更好的软件。SonarQube 在欧洲的三不同地点的开发团队每天都在使用。质量结果显示在墙上显示器!Kapsch TrafficCom (理事会) 是智能交通系统的提供商。它的系统采用信息和通信技术来支持和优化公路运输, 包括基础设施、车辆、用户和工业。软件质量数据必须同时提供绝dui(在所有代码)和差异(新的代码)值,以便开发团队可以完全控制问题的传入流程。它在各种交通应用领域的解决方案有助于减少道路交通造成的拥堵和环境污染, 提高交通安全和安全。理事会集团在33国家设有子公司和代表处, 并有3000多名员工。软件质量很重要, 因为 Kapsch 需要向其客户提供***jia的软件解决方案, 同时遵循行业标准, 如汽车行业的 MISRA 准则。即将失去对软件质量的关注
Kapsch TrafficCom 因快速扩张而失去了对软件质量的关注。这种扩展导致了一些新的编程语言的使用, 并雇用了许多新的开发人员。理事会预见到需要更好地控制, 遵循编码准则, 并确保它开发的应用程序在发布之前达到了定义的质量目标。虽然可能需要进行此类更改,但由准时审核产生的行动计划在过程中定义得太晚,无法做任何事情,但会打乱开发周期。此外, 技术债务的趋势需要更加明显, 以帮助决策者达成关于重构与引入新特性的知情决策。由于理事会在静态代码分析中使用了几种不同的解决方案, 因此很难同时将整个代码库的这一概述放在一起。SONARQUBE 的自下而上采用
然后, 瑞典理事会办公室的***遇到了 SonarQube。这一收养***是由管理层和其他理事会的开发网站所采纳的自下而上的方法。在年内, 它将被采用在更多的地点, 并作为理事会的主要解决方案, 跟踪代码质量。在这一收养中, 关键是 SonarQube 使用相同的度量标准来衡量每种语言。理事会使用几种不同的语言, 现在它们都可以以统一的方式呈现。可以很容易地看到当前的度量状态, 以及它们是否在正确的方向上移动。这些公司成功地使用了连续检测模型来管理项目的内部软件质量所有大小。此外, 项目组合管理 (视图) 插件允许理事会从多语言应用程序中聚合质量度量, 将每个应用程序的质量统一起来, 并将应用程序进一步聚合到产品、项目和部门质量的统一演示中。更美好的是, "由于我们每夜都在分析我们的大部分产品, 所以现在每个人都可以按需获取***xin的结果 (在每个聚合级别)", 瑞典理事会的测试组长约翰 Esbj?rner 说。Kapsch TrafficCom 使用的主要功能包括:时间机器-跟踪关键代码质量度量的进度。视图-将多种语言聚合到产品/项目/部门中。差异视图-检查遗留项目中是否引入了新问题。Java API-创建自己的集成插件, 因为它已经做了宝丽来 ALM。SONARQUBE 结果显示在墙上显示器上
SonarQube 目前正被用于检查超过30应用程序和700k 代码行的代码质量, 并且这些数字预计会随着全年的采用而不断增加。它每天都被开发团队使用, 它们遍布欧洲三不同的开发站点。Esbj?rner 表示, "我们可以利用我们现有的詹金斯基础结构来触发静态分析, 从而缓解了向 SonarQube 的过渡, 因此无需额外的服务器。让所有利益相关者通过 web 浏览器轻松地访问结果, 并显示在人们走过的墙壁监视器上, 从而提高了对代码质量的认识。这些指标已成为一种帮助, 以可视化需要做什么。企业采用复杂、使用内部和外部资源(如系统)进行地理分布的开发集成商(SIs)随着各种开发工具的使用而显著增加(包括开源)、多种语言和敏捷流程。早些时候, 开发人员知道代码需要重构, 但是很难得到标准的数据来向决策者展示。现在, 他们可以通过打开 web 浏览器并显示度量和代码来做到这一点。今天, 质量门是为所有语言定义的, 因此新功能并不总能战胜重构。在发布前始终满足***di质量级别要求。
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配置一个特殊侦听器,以确保适当收集每个单独测试用例的覆盖度量。这是幸运的SonarSource的一个高优先级,虽然它不会被宣布时,它将船舶。为了保证成功的测试执行,我们将在此保持与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 </版本>
<范围>测试</范围>
</依赖性>
</依赖>
</简档>
版权所有©2024 天助网