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

简介: 云效平台的单测集成功能,是通过对项目仓库地址(git、svn),进行代码变更监控,然后得到静态扫描,单测用例执行结果,代码覆盖率等集成结果。包括单元测试、静态扫描、单测报告和邮件报告,开发能快速知道本次代码提交的白盒级别的质量情况,并且质量信息分等级,开发可优先关注高等级的质量风险。
 引言:一个 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

相关文章
|
3月前
|
缓存 Devops jenkins
专家视角:构建可维护的测试架构与持续集成
【10月更文挑战第14天】在现代软件开发过程中,构建一个可维护且易于扩展的测试架构对于确保产品质量至关重要。本文将探讨如何设计这样的测试架构,并将单元测试无缝地融入持续集成(CI)流程之中。我们将讨论最佳实践、自动化测试部署、性能优化技巧以及如何管理和扩展日益增长的测试套件规模。
62 3
|
2月前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
|
2月前
|
前端开发 测试技术
前端工程化的分支策略要如何与项目的具体情况相结合?
前端工程化的分支策略要紧密结合项目的实际情况,以实现高效的开发、稳定的版本控制和顺利的发布流程。
37 1
|
3月前
|
人工智能 数据可视化 安全
瀑布模型是什么?在软件开发中有哪些主要阶段和步骤?
瀑布模型是一种经典的软件开发方法,将开发过程划分为需求分析、设计、编码、测试和维护等顺序阶段,强调阶段性和文档化。适用于需求明确、稳定且对安全性和可靠性要求高的项目。尽管存在局限性,但在特定场景下仍具重要价值。未来,瀑布模型可能与其他开发模型结合,更加灵活高效。
瀑布模型是什么?在软件开发中有哪些主要阶段和步骤?
|
5月前
|
敏捷开发
敏捷开发的全过程问题之迭代排期时提前梳理下一迭代的需求列表的问题如何解决
敏捷开发的全过程问题之迭代排期时提前梳理下一迭代的需求列表的问题如何解决
|
5月前
|
敏捷开发 安全 jenkins
自动化测试在敏捷开发中的应用:加速迭代,保障质量
【8月更文挑战第2天】自动化测试在敏捷开发中扮演着至关重要的角色。通过提升测试效率、提高测试覆盖率、及时反馈与修复等优势,自动化测试为敏捷开发团队提供了强大的支持。然而,在实施自动化测试的过程中也面临着一些挑战。通过选择合适的测试框架和工具、制定测试计划和策略、持续优化和维护等策略以及遵循最佳实践并克服挑战,我们可以充分发挥自动化测试在敏捷开发中的潜力,为软件质量的提升和快速迭代保驾护航。
|
6月前
|
测试技术 数据库 开发者
开发与运维测试问题之高代码覆盖率意味着高代码质量如何解决
开发与运维测试问题之高代码覆盖率意味着高代码质量如何解决
问题排查流程——持续⚡️迭代中
通过这个模板能给像我一样小白的人提供一个抓手
|
8月前
|
测试技术
快速迭代下,研发和测试如何高效配合?
快速迭代下,研发和测试如何高效配合?
153 1
|
设计模式 缓存 运维
为什么要持续重构
什么是重构? 重构是在不改变软件可观察行为的前提下改善其内部结构。---Martin Fowler 通俗说法:看起来没做啥调整,让系统继续更好的满足客户需求。同时,希望重构完成后,这个系统能够多蹦跶几年。