如何在软件开发工作流中构建质量
远见卓识视图, 显示每个测试在运行时的执行时间
假设你是一个希望成长为一家中型科技公司的初创企业--介于30到100工程师之间。招聘是快速发生的, 而且你的代码数量也在快速增长。在较早的阶段, 贵公司专注于证明产品。一切都是规模较小, 你可以循环快速。现在, 随着你的成长, 你有更多的在编写代码和更多的变量的组合。
这是当你注意到产品质量开始恶化, 你不能像你希望的那样快速发布代码。在扩展业务时, 有越来越多的变量需要进行调整, 您可能会忽略更多测试的需要, 并在测试上花费更多的时间。
如果你决定聘请一个 QA 经理, 而后者又带来了一批自动化工程师, 你就可以走出困境。硒测试的覆盖率很高。但随着时间的推移, 事情又开始放慢了。所有的自动化和善意, 你建立了硒覆盖开始打破和失败, 它反复暂停软件工厂。
我们开始的地方
当我加入 Shutterstock 时, 我对公司的自动化测试覆盖率印象深刻。几乎每一个功能的网站上都有测试覆盖率的形式, 硒端对点测试。Shutterstock 有一个开发工作流程的地方通过詹金斯, 将阻止部署到生产, 如果硒测试失败。我喜欢这样;这意味着除非所有的测试都通过了, 否则任何人都不能将任何东西放到生产中。
但不久之后, 我意识到, 我们的公司, 这是每天发布多次, 已经变成了一个公司, 现在被禁止发布多天一次, 主要是因为失败的硒测试。常见的情况是, 测试失败不是因为产品损坏, 而是因为它们很脆弱。
一些事情导致了这一点:
终端端 selenium-based 验收测试成为了每个人都依赖于测试的唯yi形式的自动化测试。许多团队甚至停止编写单元测试。
测试框架是片状的, 是由 QA 团队建立和拥有的。当某件事情失败, 整个软件工厂停止运转时, QA 团队中一小部分三到五人的错误就落在了我们身上, 他们经常被指责为放慢了组织的速度。
工程组织花了很多时间来研究如何构建一个可以扩展的产品, 但是没有足够的注意力去构建一个支持这种产品开发的开发工作流程。
质量完全由 QA 团队拥有。
在我们的, 我们有一个 QA 组织, 它没有与组织的其他部分进行扩展。虽然他们拥有自动化所有内容的技能, 但是他们缺乏构建可伸缩的测试框架所需的技能。由于这种差距, 他们无法影响组织的其他人认为质量是所有人拥有的东西, 而不仅仅是 QA 团队。为了弥合这一差距, 我们不得不重新考虑我们对 QA 整体的态度。
迈向新的开始
我想完成两个目标: 首先, 重建 Shutterstock 的测试基础架构/框架, 使其更加稳定, 其次, 改变 Shutterstock 的工程文化, 使之成为一个质量不是由测试工程团队拥有的, 而是由每个人来拥有。
我们改变了招聘测试工程师时所期待的能力。我们希望我们的测试工程师成为强大的开发人员, 他们知道如何构建 object-oriented 的解决方案, 从而帮助他们创建一个稳定且可扩展的测试框架。我们也希望他们成为有影响力的人, 他们可以推动他们的团队做正确的事情, 而不采取跳过单元测试这样的捷径。一旦我们建立了一个 world-class 测试工程团队, 我们就开始了解如何快速发布, 同时保持一个的产品。
我们知道我们da的问题是脆弱的测试, 所以我们建立了一个叫做 "睿智" 的工具来记录每个测试的通过/失败数据。我们所有的测试都把数据推入睿智, 每次他们作为我们的詹金斯工作流程的一部分运行。然后, 我们在这个数据库之上建立了一个网站, 使数据的挖掘变得容易。我们现在能够监控工作的合格率、个别测试的及格率、常见的失败消息、的运行测试, 等等。有了这些数据, 我们就可以保持自己和其他人的责任感。我们的一个团队受影响的失败的测试认识到, 他们通常的传球率只有20%。(试想一下, 由于这一路障, 软件工厂经常停下来。通过使用远见卓识, 他们能够快速隔离测试的di合格率, 并在这些测试中看到常见的失败消息。团队对测试脚本进行了简单的修复, 以提高其可靠性。





SonarSource 的产品和服务被世界各地的客户所使用。所有规模的组织都在使用来自 SonarSource 的产品和服务提高生产率, 降低风险, 终开发更好的软件。ThalesRaytheonSystems 使用 SonarQube 作为 "集成解决方案, 在开发项目的每个级别都易于使用"。ThalesRaytheonSystems 是一个跨大西洋的合资企业, 专门从事监视雷达, 空中操作指挥和控制系统,中国sonarqube 规则, 和地面武qi定位雷达。公司是雷神与 ThalesGroup 之间的50:50 家合资企业, 通过将传感器、操作中心和电信网络集成到空中作战和战场系统,华南sonarqube 规则, 为复杂的任务提供关键的 decision-making 解决方案。其活动;它包括系统集成、复杂的程序管理、实时软件和人机界面, ThalesRaytheonSystems 必须依赖于强大、高质量和可维护的软件应用程序的组合。软件质量是跨技术和工作包的必须
在部署 SonarQube 之前, ThalesRaytheonSystems 评估了几个软件质量工具, 但没有一个符合条例草案。有些还没有集成到开发环境中, 有些颁发了许可问题, 还有一些则缺乏涵盖的技术和可用的功能。结果, 只分析了一些组件和项目, 结果没有被利用。由于该过程的 "重重量" 性质, 对 ThalesRaytheonSystems 的应用组合的长期可持续性和可维护性构成了真正的挑战, 因此很少出现质量改进。ThalesRaytheonSystems 正在走向持续集成, 包括软件质量分析的过程。考虑到环境的复杂性, ThalesRaytheonSystems 需要一个能够很好地集成其现有基础结构的解决方案, 并且能够灵活地在整个软件组合中使用, 包括多种技术和广泛的应用程序。SONARQUBE 与工具集合
ThalesRaytheonSystems 选择了 SonarQube, 并要求从 SonarSource 行政培训会议, 以加快通过和上岗过程。乔塞纳丹尼斯记得她的第yi印象: "SonarQube 解决方案是非常容易使用, 它是集成在詹金斯管理的工作。它符合 ThalesRaytheonSystems 的需要, 因为我们有许多组件, 许多工作包, 在不同的语言, 和 "意见" 的概念是的。在的培训和演示之后, ThalesRaytheonSystems 比较了以前使用工具集 (免费软件和商业与每用户许可证) 的方法, 与它使用的自由和商业 SonarSource 产品的组合: c/c++、投资组合管理 (视图) 和技术债务计算 (SQALE)。丹尼斯说: "这显示了在实施解决方案和成本方面所需时间的显著增长, 因为许可证模型更适合我们的需要。由于其功能、技术覆盖面和许可模式, SonarSource 解决方案为 ThalesRaytheonSystems 提供了更佳的投资。丹尼斯还赞扬了 SonarSource 团队在集成 ThalesRaytheonSystems 的 c/c++ 语言的规则方面的支持和响应能力, 这是适用于更广泛的 c++ 社区的 c++ 插件。ThalesRaytheonSystems 的另一个引人注目的特性是将 SQALE 方法集成到 SonarQube 中, 从而使组织能够精que地跟踪其技术债务的补救成本。成功实施端到端软件质量过程
现在,中国sonarqube 规则, SonarQube 已完全融入 ThalesRaytheonSystems 的环境和文化,代理商sonarqube 规则, 开发团队定期审查软件质量结果, 并采取具体行动, 根据里程碑和成本提高代码质量, 而项目组合管理功能允许软件配置管理人员在项目和整个软件组合中获得结果。展望未来, ThalesRaytheonSystems 有进一步的计划, 以改善其软件质量的过程。它将在分析中添加单元测试和集成测试的控制。它还计划部署 SonarQube Eclipse 插件, 以使开发人员能够在开发环境中直接在本地检测和更正问题。丹尼斯说, 她会推荐 SonarQube 和 SonarSource, 因为 "SonarQube 是一个集成的解决方案, 易于在开发项目的每个级别使用。SonarSource 有一个很好的支持和 ThalesRaytheonSystems 受益于良好的合作与 SonarSource。
SonarSource
提高应用价值, 降低软件开发风险
成功的组织在过程中向前移动质量分析并使其迭代
作为整个软件开发生命周期的一部分。开发和测试世界和业务
方法以及正在向敏捷模型演进-持续的价值生成/连续
改进/连续检验是提高质量的重要战略。这些都是
IDC 为 end-user 客户和服务提供商所观察到的关键策略:
?传统的代码质量方法通常在测试成为检查表项时失败
在开发过程结束时, QA 团队运行一个工具并返回
开发团队在软件进入之前需要采取的行动列表
生产.这可能导致延迟和预算超支。所以会发生什么
经常是管理标志移动项目, 没有质量门
发展.
?在项目开始时从项目代码分析中收集适当的度量标准
是至关重要的。如果没有正确的度量标准 (或任何度量标准), 代码库可能会在没有人注意的情况下恶化, 或者在技术债wu达到一定的时候才会注意到
在时间和预算限制的情况下, 成本太高而无法解决的级别。收集
代码度量连续可以提供可见性, 并使团队的优势
控制代码库的技术债wu。
?理解要修复的代码也是的。通常, 团队开始重构
因为他们认为代码库在性能、脆性、不稳定性方面是不好的,
难于维护和扩展。但如果没有正确的语境分析, 它是
无法检测到代码库的哪个部分负责所遇到的问题。
因此, 更改可能会应用到错误的代码, 或者正确的代码被重构
错误的方式, 或只有部分问题得到解决。这是一个度量和工具的领域
可以通过标识导致问题的代码部分来帮助。
确保持续的软件质量是成功的关键
end-user 公司和服务组织都必须运行软件开发作为
业务.这样做的一部分是管理软件的远程可维护性, 即
发展今天你需要保持明天。积极主动的架构, 也
所创建内容的质量是管理软件长期支出的关键
维护;保存错误的、结构较差的软件是更昂贵的。
在这方面, 应用程序维护团队还需要对软件进行可视化, 以便能够更好地
维护代码以降低成本, 实现更好的质量, 并提高客户响应能力
和 ROI。在将任何代码发送到客户之前, 为代码建立一致的进程
分析可以帮助确保必须运行软件的公司的长期改进
有效地发展。
SONARSOURCE 和 SONARQUBE 平台
SonarSource: 介绍
SonarSource 是一家瑞士公司, 成立于2008年。该公司诞生的愿望
处理和解决与软件质量相关的不断增长的问题, 并为市场带来解决方案
可以跟踪的软件开发过程中的代码质量。在竞争激烈的市场中
来自少数提供商的服务, SonarSource 的投资组合是由它的根在开放的区别
来源, 其可访问性, 和一系列的参与选项从包装和定价
角度.
SonarQube 平台被创造了并且采取了到市场 (作为 "声纳"), 与 SonarSource
在2009年10月发布该平台的第yi个商业插件。到 2010年3月,
SonarSource 开始看到社区和企业都接受了 SonarQube 平台,
到那时, 一个月被超过2000次。在 2010年5月, SonarSource
发布的 COBOL 和 Visual Basic plug-ins, 随后几个月后由一个 SQALE 插件,
c# 插件 (2011年6月) 和 PL/SQL 插件 (2011年9月)。
该公司的主要意图是带来负担得起的和直观的质量解决方案和分析
开发人员还提供了广泛、分布式使用的功能。今天, SonarSource 有
约有350客户, 包括德意志银行、美国银行、米其林、
西班牙、法国巴黎银行、泰雷兹和 EADs。SonarQube 平台使用约300
客户, 与3万和4万安装。该公司已看到的
在过去几年的增长, 它现在雇用了超过30员工, 从20人
就在12月前
华南sonarqube 规则-苏州华克斯公司由苏州华克斯信息科技有限公司提供。行路致远,砥砺前行。苏州华克斯信息科技有限公司致力成为与您共赢、共生、共同前行的战略伙伴,更矢志成为行业软件具有竞争力的企业,与您一起飞跃,共同成功!