如何从开发阶段提升代码质量,加速迭代发布?

 引言:一个 bug 被隐藏的时间越长,修复这个bug 的代价就越大。在《快速软件开发》一书中已引用了大量的研究数据指出:最后才修改一个 bug 的代价是在 bug 产生时修改它的代价的10倍。

       很多开发工程师很不喜欢测试的工作,他们更希望能够开发新功能,但在日常研发过程中,测试的重要性想必也不言而喻。单测集成系统,可以从开发阶段提高质量,加快代码发布。

       云效平台的单测集成功能,是通过对项目仓库地址(git、svn),进行代码变更监控,然后得到静态扫描,单测用例执行结果,代码覆盖率等集成结果。包括单元测试、静态扫描、单测报告和邮件报告,开发能快速知道本次代码提交的白盒级别的质量情况,并且质量信息分等级,开发可优先关注高等级的质量风险。对于业务发展快、研发进度慢的公司,可以尝试单元测试系统,从开发阶段提高质量,加快代码发布。

        1.单测集成是自动同步云效平台的配置管理系统,对代码主干以及各个项目的分支进行单元测试持续集成,主干结果通知到负责人,分支结果通过邮件的方式通知到代码提交人员,如果在一小时内有多人多次提交,将合并成一次构建并一起发送到每个代码提交人员。

       代码主干的持续集成频率为每天凌晨2点检测一次svn是否有变更,如有则触发一次集成构建;项目分支的持续集成频率为1小时检测一次svn是否有变更,如有则触发一次集成构建;

        2.全自动对项目开发仓库地址(git、svn)进行代码变更监控,自动扫描代码中已有的缺陷,自动监控,实时反馈代码质量;

        3.提供多维度测试集成结果:单元测试用例集成结果(用例总数、成功、失败及通过率);单元测试代码覆盖率结果(包括代码全量和SVN变更增量覆盖率),覆盖率分全量覆盖率和增量覆盖率:全量覆盖率=(被单元测试覆盖的代码行数/总代码行数);增量覆盖率(一次构建)=(新增代码被单元测试覆盖的代码行数/新增代码行数)。在集成参数配置中可以配置过滤不统计的方法正则表达式;静态扫描Findbugs(按扫描规则区分必修、建议);Sonar代码分析(代码静态扫描,包括PMD扫描、代码统计、注释率统计、代码重复度统计、代码复杂度统计)。

        4. 提供多维度看板,可以自定义团队代码模板看板,通过邮件订阅的方式定时接收团队的主干应用集成情况,监控代码主干的持续集成结果,还可以操作对比主干的集成结果变化情况,有效降低开发在项目中单元测试的持续集成成本。

       云效建议企业在单元测试不多的情况下,可以选择优先修复静态扫描的必修部分,来减少因代码不规范、粗心而带来的质量问题;如果进行单元测试,则需要减少外部依赖,使用Mock进行单元化测试,在这打个广告云效也即将发布上线Mock平台。

        如果企业有需要接入单测集成功能,可以点击http://ali-aegis.aliyun.com/help/help.html 查看使用帮助。
        云效平台 官网地址:http://yunxiao.aliyun.com

时间: 2024-08-04 03:05:47

如何从开发阶段提升代码质量,加速迭代发布?的相关文章

三年0故障总结,提升代码质量的秘诀

该文章来自于阿里巴巴技术协会(ATA)精选文章. 个人经历 对我代码质量影响最大的是在一家外资企业,在这家公司我觉得有以下几个方面做的很不错. 团队编码风格统一 统一到什么程度? 不看代码作者,你很难区分代码是谁写的(在目前公司一些团队也能达到这个标准). 个人观点: 这样做有什么好处?团队中每个人阅读代码都很容易,减少很多沟通,维护成本( 代码阅读的次数远远大于变更的次数),并且心情非常愉悦.有人肯定觉得愉悦有点夸张,举个栗子: 有一些代码,如果不是由于与工作内容有关联,你是否有种这辈子都不情

JavaScript最佳实践:帮你提升代码质量

每天学一些新东西可以让一个理性之人走上不凡之路.而作为开发人员,不断的学习新东西则是我们工作的一部分, 不论这些新东西是不是来源于积极的学习经验. 在本篇教程中,我将指出一些重要的 JavaScript 最佳实践,让你不必去用另外一种艰难的方式来了解它们.准备好去升级你的代码吧! 1. 避免对全局作用域的污染 声明变量是一件很有趣的事情.有时候即使你不想这样做,但也有可能会定义出全局变量.在如今的浏览器中,全局变量都被存储在 window 对象中.而因为有许多的东西都在那个里面,所以你有可能把一

JavaScript 最佳实践:帮你提升代码质量_javascript技巧

每天学一些新东西可以让一个理性之人走上不凡之路.而作为开发人员,不断的学习新东西则是我们工作的一部分, 不论这些新东西是不是来源于积极的学习经验. 在本篇教程中,我将指出一些重要的 JavaScript 最佳实践,让你不必去用另外一种艰难的方式来了解它们.准备好去升级你的代码吧! 1. 避免对全局作用域的污染 声明变量是一件很有趣的事情.有时候即使你不想这样做,但也有可能会定义出全局变量.在如今的浏览器中,全局变量都被存储在 window 对象中.而因为有许多的东西都在那个里面,所以你有可能把一

通过可视化数据分析提升测试质量

某位高人曾说过:日复一日地重复着既有的测试,然后被类似的Bug折磨得无可奈何,不如稍作停顿,分析总结找到Bug的源头,以除之.本篇文章我们就来聊聊如何通过可视化的数据进行分析,进而提升测试质量. 为了让产品的质量可度量.可视化,我们可以建立一些指标数据,以帮助我们发现产品质量的各种问题,比如:被测功能模块发现Bug太晚,某位开发同学的代码质量一直很低,某个功能总是在兼容性方面存在大量问题等.有了问题之后,我们就可以有针对性地进行改进,有的放矢,从而使得被测产品的质量逐步改善.以搜狗的项目为例,我

RTC基本的缺陷和代码质量分析功能扩展

本文将深入介绍使用 RTC 提供的 Work Item API 实现灵活.全面.便捷的自定义缺陷分析功能,降低项目管理的复杂度,节约项目管理的人力成本,提供更丰富的项目管理参考数据,从而提高项目管理的精确度. RTC(Rational Team Concert)提供了软件生命周期各个阶段所需要的管理功能,而且为软件工程师提供了可以进行功能扩展开发的软件开发包.本文将介绍如何使用 RTC Plain Java API,基于 RTC 中的项目缺陷信息,统计出相关代码质量数据. 所有正在使用 RTC

提高代码质量:代码审查

在项目开发中,代码质量是非常重要的一环.高质量的代码对项目完成质量.能否按时完工有重大影响.而一个团队中开发成员的配置往往是金字塔形的.基于开发成本考虑,项目主管或小组长一般由经验丰富的资深高级程序员担任,开发成员则由普通程序员.新员工.实习生组成.各个开发成员水平参差不齐,以及该行业内开发人员的高流动性.这样的条件和环境必然带来代码质量问题.项目主管难于把握项目进度,很容易造成项目延期,即使加班不少. 既然问题存在了,就必须解决它.解决的思路就是代码审查. 代码审查的前提: 1.统一项目组内部

提升代码内外部质量的22条经验

本文主要关注代码的内部和外部质量,编程的价值观,代码质量的评估标准,整洁代码的匠艺以及如何维护已有的代码. 外部质量:用户所能感受到的部分,正确性,易用性,效率,可靠性. 内部质量(代码质量):可维护性,灵活性,可移植性,重用,可读性,可测试性,可理解性. 总结的22条经验如下: 代码分为外部质量和内部质量,好的产品不等于好的代码(Good Software != Quality Code). 产品的冰山效应:产品经理以及用户关注的部分只是冰山露在水面以上的部分,隐藏在下面的是看不见的更加庞大的

6 个重构方法可帮你提升 80% 的代码质量(转)

英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality 在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名: 臃肿的类: 类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即"单一职责原则"(SRP)的理解.这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面. 长方法: 方法之所以会变得很长主要是有以下几个原因: 许多没有关联性的.功能复杂的模

如何衡量代码质量?

在日常项目研发中,总是在讨论如何控制和衡量代码质量,项目做了一个又一个,今天静下心来做思考并做下总结,希望以后也能在项目质量管控中进一步去规范和提升自己. 个人观点: 软件质量=外部质量+内部质量 主要总结为两个方面: 1.外部质量:从用户.使用者角度去衡量: 2.内部质量:从员工.开发者角度去衡量: 一.衡量外部质量 1.正确性 2.易用性 3.高效率 4.适应性 5.精确性 6.完整性 二.衡量内部质量 1.可维护性 2.灵活性 3.可移植性 4.可读性 5.可测试性 我在实际工作中总结的几