SonarSource简介:
SonarSource 为连续代码质量提供了 world-class 的解决方案。启用连续代码质量管理:使用SonarQube,代码分析变得更加容易,开发人员可以获得宝贵的洞察力,以确保这一点得到广泛采用。它的开源和商用产品帮助所有规模的客户管理其应用程序的代码质量, 降低其风险并***终提供更好的软件。SonarSource 解决方案支持20多种编程语言 (如 Java、c#、Javascript、c/c++、COBOL 等) 的开发。与***700多名客户包括 eBay, 泰雷兹, 宝马和使用超过8万组织 SonarSource 的产品是事实上的标准解决方案在市场上。
连续检查由奥利维尔 Gaudin,SonarSource SA ***执行官兼共同创始人软件的范式转换质量管理介绍软件质量是每个商业企业日益关注的问题, 因为不断升级的角色软件在运行关键业务系统中发挥作用。软件质量包括外部和内部质量。外部或功能性, 质量描述软件与其定义的功能需求–它是否按预期执行?内部质量描述关键的内部代码的特性, 如健壮性、标准一致性和可维护性。行业统计显示, 平均而言, 软件产品的生命周期成本的80% 用于维护,根据内部质量, 维护成本有很高的变异性。这意味着水平软件产品的可维护性今天将决定其成本责任的水平明天。这是因为具有相等圈复杂度的方法不一定存在同样的困难,维护,导致一种感觉,测量"啼狼"由over-valuing一些结构,而under-valuing其他构造。传统的代码质量控制方法涉及 so-called 的准时审核或质量门, 这是对源代码的定期审核。这些审计通常由外部审计员在开发过程的 "***后一英里"-在功能测试期间或之后。根据他们的本性准时的审核会导致开发周期的中断, 因为它们会导致更改"已完成" 软件。在***hao的情况下, 这种质量控制方法会导致延迟和返工。在***坏的情况是, 它导致了劣质软件的发布。在这两种情况下, 传统方法使人们认识到, 构建高质量的软件过于复杂和昂贵。迫切需要一个新的模式, 强调质量贯穿整个开发周期, 并有更短的反馈回路, 以确保快速解决内部质量问题;简而言之,从一开始就建立质量的模型, 而不是事后考虑。连续检查是一个整体的、完全实现的过程, 旨在使内部代码质量成为软件开发生命周期的组成部分。通过提高所有利益相关者的***度生命周期, 连续检测使企业能够接受代码质量 whole-heartedly。在 SonarSource 的支持下, 连续检验范式是非常有效的, 并已被证明从小公司到财富100强企业, 在现实世界中工作,各行业。本文详细介绍了代码质量管理中的关键问题。它然后介绍了连续检查范式, 并说明了它如何解决这些挑战,支持数以千计的企业提高软件质量。
购买 SonarQube 作为测试自动化的质量门由琳达陈在 2017年4月13日 |4分钟阅读1SonarQube (原名声纳) 被广泛用于各种项目的代码质量管理工具, 提供跟踪和提高源代码质量的功能。我们的结论是,重要的是要强调,虽然这些类型的产品可以帮助衡量软件项目的质量他们不应该被当作"责备工具"。此类功能还可用于测试自动化, 以量化测试脚本的质量, 因为自动检测脚本的本质是代码。
测试自动化的 SonarQube 特性
为不同的利益相关者提供定制的度量标准每个项目都有不同的利益干系人, 如客户、项目经理、架构师、开发人员和测试人员, 他们拥有完成项目的各种技术或知识。在评估有竞争力的产品时,他们寻找的是:品质特征分析提供(如死代码分析、影响分析、跨平台分析)。因此, 他们对项目质量的关注是多种多样的。不同群体的利益干系人的质量度量标准是不同的, 这为查看 SonarQube 的价值提供了一个良好的环境, 因为该工具为不同的用户提供了定制的度量标准。 下表显示了针对不同项目角色的 SonarQube 质量度量的一个很好的示例。
支持项目的多种编程语言尽管用 java 编写, SonarQube 可以在大约20多个不同的编程语言 (包括 java、Python、c/c++) 中分析代码。这似乎是一个不错的方法,有两个原因:它减少了在遗留的基本代码上开始的摩擦力,因为你可以假装你是从一个干净的石板开始。可以自动检测到不同的编程语言, 并调用相应的语言分析器。因此, 即使目标测试脚本由多种不同的编程语言组成, 声纳仍然能够跟踪、分析和创建有关代码质量的报告。
使用行业标准 (代码分析器) 提供测试规则在更大的图片中, SonarQube 提供了行业规则模板, 用户可以根据需要自定义质量规则。对于自动测试, 可以应用一堆规则。下面提供了示例规则:
除了检查现有项目的源代码, 为了进行自动测试, 声纳可能需要根据某些要求停用或更新一些规则。
示例规则可以删除, 如下所示:
示例规则可以更新如下:
除了上面给出的特性, SonarQube 还具有诸如 DevOps 集成、聚合仪表板、时间机器等功能, 所有这些都可以帮助测试自动化项目变得更具可追溯性和可见性。
如何通过与数据库 mysql 的集成来设置 SonarQube
设置 SonarQube 是很简单的。生成的问题将在"SonarLint报告"视图中报告,您可以在其中双击要带到编辑器中相关代码行的问题。但是, 不建议将嵌入在 SonarQube 中的默认数据库 H2 用于生产用途, 因为它无法进行缩放。 为了更好的维护和可伸缩性, 我们建议用 mysql 这样的另一个数据库替换 H2。下面是在 windows 平台中为 SonarQube 设置 mysql 的一个示例。
前提
在您的计算机上安装 Java (Oracle JRE 8 开始或 OpenJDK 8 起)。步骤:
1.Install. 用 mysql 建立数据库
a. 从 并安装, 然后启动 mysql
b. 为声纳创建数据库, 包括创建用于访问数据库的管理员帐户。例如, 通过在 sql 下运行, 使用用户帐户声纳和密码声纳创建名为声纳的数据库:
SonarSource
如果您想知道项目使用的内部或外部库,则可能需要查看项目的内容,包括pom.xml文件。如果您使用SonarQube,则不再是这种情况,因为库是一种组件,它会招募您的应用程序所依赖的组件,并且比手动搜索***。
(以上是示例应用程序的截图)
也可以在任何仪表板上添加任何Widget(Widget是组成仪表板的组件),如下所示。
问题向下钻
只是被告知某事是错误的,这里的分数是多少错误或不正确的东西,没有帮助。一个更有建设性的反馈是,这里有什么问题,这是你可以做些什么来解决它。
问题钻取是一个这样的仪表板,我们可以找到这样的信息或足以知道什么是错误,以及如何去修复它(有时)。它还存档较旧的和封闭的问题,并通过给出各种严重程度来表明问题是多么糟糕,即阻止信息。
(以上是nemo.sonarsource.org上的示例应用程序的截图)
任何Dashboard页面右上角的“管理信息中心”选项(如下)用于创建可以放置小部件的新的信息中心页面。
同样,每个“仪表板”页面上的“配置”窗口小部件链接允许在“仪表板”页面的任何位置添加,删除或更改窗口小部件的位置。
(以上是Apache Comm*** Collection的截图)
标签或词云是一种非常受欢迎的概念,被大量用作可视化形式来传达指标 - 如上所示,这是Apache Comm*** Collection库的一个例证。
商业组件 - SQALE
SQALE是一个专有组件,社区版本不可用,尽管SonarQube的Nemo项目[07]提供了演示版本。 SQALE是一项技术债wu评估工具,更多细节可以在[08]找到。
版权所有©2024 天助网