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










关闭SonarQube中的旧版代码违规
一旦您设置了所有组件,您现在可以使用jsawk为所有现有的违规创建排除模式:
curl -XGET'http:// localhost:9000 / api / violation?depth = -1'| ./jsawk -a'return in(“﹨ n”)''return source.key.split(“:”)[1] +“; *; [”+ ne +“]”' |排序| uniq的
这将显示一个可以粘贴在“关闭违规”插件的文本区域中或将其作为文件签入存储库的列表。随着下一个分析过程,您将希望看到零违规。当有人通过插入一行更改文件时,会再次显示违规行为,并且应该被修改。不幸的是,一些违规行为不是基于行的,并会产生一个行号'undefined'。目前我刚刚删除了这些手动,所以你仍然可能会看到一些违规。
结论
我提出了一种方法来将您的旧版代码重置为零违例。使用SonarQube 4.0,“切换违规关闭”插件的功能将在内核中使用,因此将更容易使用。我仍然在寻找保持排除模式xin的jia方式。一旦有人必须修复现有文件的违规行为,则应删除该模式。
更新09.01.2014
从SonarQube 4开始,这种方法不再工作了。 SwitchOffViolati插件的一些功能已被移动到,但是排除违反行为是不可能的,也不会实现。开发商建议仅查看项目的趋势,而不是总体违规数量。这可以很好地使用差分。






SonarQube和JaCoCo的个人测试代码覆盖率
本文介绍了如何使SonarQube收集单个测试的测试代码覆盖率指标。代码覆盖工具通常产生一个报告,显示在给定测试会话期间执行的所有测试的组合效果的代码覆盖率(按行,分支等)。例如,当您在持续集成中运行单元测试时就是这种情况。在SonarQube和JaCoCo的帮助下,可以在单个测试用例级别(JUnit或TestNG中的测试方法)中收集覆盖度量。为了实现这一点,我们在这篇文章中显示了一些特殊的配置。
环境
以下过程已经使用SonarQube 4.1.2和4.3.2版本进行了验证,中国sonarqube中国总代理,但它也适用于SonarQube 3.7.x(xin的LTS版本)。我们用于验证设置的应用程序代码是熟悉的Spring Pet Clinic应用程序,增强功能可支持Tomcat 7和Spring 3(请参阅此篇文章,以了解有关宠物诊suo需要更新的信息:https://deors./ 2012/09/06 / petclinic-tomcat-7 /)该代码可以从存储库中的GitHub:https:///deors/tclinic
说明
一旦你知道如何连接所有的点,这些说明很简单。所有这些都是为Maven Surefire插件添加一些特定的配置(Surefire是插件,它是单元测试执行的任务,它支持JUnit和TestNG)。由于此具体配置不应影响常规单元测试执行,因此建议将所需配置包含在单独的配置文件中,仅在执行SonarQube分析时执行。我们一起来描述pom.xml文件中所需的更改。







苏州华克斯信息科技有限公司 电话:0512-62382981 传真:0512-62382981 联系人:华克斯 13862561363
地址:苏州工业园区新平街388号 主营产品:Loadrunner,Fortify,源代码审计,源代码扫描
Copyright © 2025 版权所有: 天助网 增值电信业务经营许可证:粤B2-20191121
免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责。天助网对此不承担任何保证责任。
您好,欢迎莅临华克斯,欢迎咨询...