如何在软件开发工作流中构建质量
远见卓识视图, 显示每个测试在运行时的执行时间
假设你是一个希望成长为一家中型科技公司的初创企业--介于30到100工程师之间。招聘是快速发生的, 而且你的代码数量也在快速增长。在较早的阶段, 贵公司专注于证明产品。一切都是规模较小, 你可以循环快速。现在, 随着你的成长, 你有更多的在编写代码和更多的变量的组合。
这是当你注意到产品质量开始恶化, 你不能像你希望的那样快速发布代码。在扩展业务时, 有越来越多的变量需要进行调整, 您可能会忽略更多测试的需要, 并在测试上花费更多的时间。
如果你决定聘请一个 QA 经理, 而后者又带来了一批自动化工程师, 你就可以走出困境。硒测试的覆盖率很高。但随着时间的推移, 事情又开始放慢了。所有的自动化和善意, 你建立了硒覆盖开始打破和失败, 它反复暂停软件工厂。
我们开始的地方
当我加入 Shutterstock 时, 我对公司的自动化测试覆盖率印象深刻。几乎每一个功能的网站上都有测试覆盖率的形式, 硒端对点测试。Shutterstock 有一个开发工作流程的地方通过詹金斯, 将阻止部署到生产, 如果硒测试失败。我喜欢这样;这意味着除非所有的测试都通过了, 否则任何人都不能将任何东西放到生产中。
但不久之后, 我意识到, 我们的公司, 这是每天发布多次, 已经变成了一个公司,代理商sonarqube中国总代理, 现在被禁止发布多天一次, 主要是因为失败的硒测试。常见的情况是, 测试失败不是因为产品损坏, 而是因为它们很脆弱。
一些事情导致了这一点:
终端端 selenium-based 验收测试成为了每个人都依赖于测试的唯yi形式的自动化测试。许多团队甚至停止编写单元测试。
测试框架是片状的, 是由 QA 团队建立和拥有的。当某件事情失败, 整个软件工厂停止运转时, QA 团队中一小部分三到五人的错误就落在了我们身上, 他们经常被指责为放慢了组织的速度。
工程组织花了很多时间来研究如何构建一个可以扩展的产品, 但是没有足够的注意力去构建一个支持这种产品开发的开发工作流程。
质量完全由 QA 团队拥有。
在我们的, 我们有一个 QA 组织, 它没有与组织的其他部分进行扩展。虽然他们拥有自动化所有内容的技能, 但是他们缺乏构建可伸缩的测试框架所需的技能。由于这种差距, 他们无法影响组织的其他人认为质量是所有人拥有的东西, 而不仅仅是 QA 团队。为了弥合这一差距, 我们不得不重新考虑我们对 QA 整体的态度。
迈向新的开始
我想完成两个目标: 首先, 重建 Shutterstock 的测试基础架构/框架, 使其更加稳定, 其次, 改变 Shutterstock 的工程文化, 使之成为一个质量不是由测试工程团队拥有的, 而是由每个人来拥有。
我们改变了招聘测试工程师时所期待的能力。我们希望我们的测试工程师成为强大的开发人员,中国sonarqube中国总代理, 他们知道如何构建 object-oriented 的解决方案, 从而帮助他们创建一个稳定且可扩展的测试框架。我们也希望他们成为有影响力的人, 他们可以推动他们的团队做正确的事情, 而不采取跳过单元测试这样的捷径。一旦我们建立了一个 world-class 测试工程团队, 我们就开始了解如何快速发布, 同时保持一个的产品。
我们知道我们da的问题是脆弱的测试, 所以我们建立了一个叫做 '睿智' 的工具来记录每个测试的通过/失败数据。我们所有的测试都把数据推入睿智, 每次他们作为我们的詹金斯工作流程的一部分运行。然后, 我们在这个数据库之上建立了一个网站, 使数据的挖掘变得容易。我们现在能够监控工作的合格率、个别测试的及格率、常见的失败消息、的运行测试, 等等。有了这些数据, 我们就可以保持自己和其他人的责任感。我们的一个团队受影响的失败的测试认识到, 他们通常的传球率只有20%。(试想一下, 由于这一路障, 软件工厂经常停下来。通过使用远见卓识, 他们能够快速隔离测试的di合格率, 并在这些测试中看到常见的失败消息。团队对测试脚本进行了简单的修复, 以提高其可靠性。
SonarQube和JaCoCo的个人测试代码覆盖率
围绕JaCoCo听众人工制品的一个警告。虽然在文档中不清楚,但是当JaCoCo侦听器版本与SonarQube中安装的Java插件的版本匹配时,似乎获得了jia效果。在这种情况下,由于我们在SonarQube中安装的Java插件是2.3版,我们使用了listener artefact 2.3版本。我们还用监ting器1.2测试了同样好的结果,但为了防止任何未来的冲突,我们建议保持版本一致。
运行分析
一旦完成了项目配置的更改,您只需要重新执行SonarQube分析即可查看新的报告。
根据您安装的SonarQube Java版本,配置有所不同。
在旧版本中运行分析
当使用的Java插件版本是2.1或更早的版本时,应该在分析执行时才能启用该配置文件,并且只有当分析执行时。这意味着现在需要发射声纳:声纳目标作为单独的Maven构建(建议这样做,但在许多情况下,您可以在一次运行中执行所有目标)。在我们的宠物诊suo版本的情况下:
> mvn清洁验证-P货 - tomcat,硒测试,jmeter测试
> mvn sonar:声纳-P覆盖率测试
如果您的构建是由Jenkins工作触发的,那么新的配置文件应该添加到后期制作操作中,华北sonarqube中国总代理,如此屏幕截图中所示:
SanarSource
管理和增强大规模软件环境
软件开发中的挑战
当管理人员寻求发展关键业务应用程序时,代理商sonarqube中国总代理, 质量的协调性很强
管理在早的软件生命周期阶段通过到操作可以帮助导致
成功的、连续的部署以及公司和 IT 生产率。组织必须使
通过观察当前的挑战并利用基于这些问题的策略来实现这一转变
创造变革的动力。
IDC 将以下内容确定为软件开发人员和组织面临的da挑战
这取决于快速, 创新的软件创造竞争成功:
?业务有不断增长的需求, 无论是升级和修复, 以及新的
面向客户的应用程序。IT 和开发团队必须将方法转换为代码, 并
质量分析, 以产生更高层次的信心在软件交付 (
更少的缺陷)。
以适当的资源, 以合适的成本、质量和风险实现更快的上市时间
分配-并转移视图, 即软件开发、代码分析和测试是
仅仅是一个 '成本中心', 成为的 '业务价值推动者'。
?限制业务风险和技术债务-帮助确保交付高质量的 '安全'
通过主动、迭代代码检查以及
软件从业者和管理人员的共同可见性。
?从缺陷检测 (往往太晚) 转移到主动预防性缺陷和前期缺陷
认同与共同分析和一个 '真相的来源' 横跨小组和管理人员。
?灵活、化的仪表板可以使团队能够查看与他们相关的数据
并能增强个人责任和集体协作。
?透明度是理解质量、代码完整性和测试活动的关键
正在进行-与迭代构建管理进行协调并设置适当的
值.
?不断增长的治理和法规遵从性需求是影响
市场并对公司施加压力, 使代码自动评估能力;这可以
帮助推动工作流程改进、可追溯性、报告和度量。
?如果有有限的或没有单元测试, 并没有什么想法是否
当前的设计允许快速添加新功能或能够使
改进, 对重构的关注可以衣组织并充当
刺激改变。
?当 bug 在开发生命周期的后期被发现导致 '红色警报' 情况
当发布成为 '龙', QA 和客户支持必须战斗之前
软件可以部署到客户, 这种负mian影响也可以激发行为
转移.
?利用代码分析信息提供改进行为的机会
通过透明度和迭代变化 (不使用此信息作为 '墙
'惩罚团队或个人' 是可耻的。
? IT、质量、运营和业务团队应该团结起来, 将这些挑战作为
跳过点, 并作为一个动力, 以改有的软件开发的不良习惯和
行为.建立有效的软件分析和检查, 创建编码规则和
要求特定质量级别的生成和发布的边界, 并利用度量
改进质量战略以及依赖 highperforming 的业务成果,
创新的软件。
华北sonarqube中国总代理-华克斯(推荐商家)由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司为客户提供“Loadrunner,Fortify,源代码审计,源代码扫描”等业务,公司拥有“Loadrunner,Fortify,Webinspect”等品牌,专注于行业软件等行业。,在苏州工业园区新平街388号的名声不错。欢迎来电垂询,联系人:华克斯。