引言:一个 bug 被隐藏的时间越长,修复这个bug 的代价就越大。在《快速软件开发》一书中已引用了大量的研究数据指出:最后才修改一个 bug 的代价是在 bug 产生时修改它的代价的10倍。
很多开发工程师很不喜欢测试的工作,他们更希望能够开发新功能,但在日常研发过程中,测试的重要性想必也不言而喻。单测集成系统,可以从开发阶段提高质量,加快代码发布。
云效平台的单测集成功能,是通过对项目仓库地址(git、svn),进行代码变更监控,然后得到静态扫描,单测用例执行结果,代码覆盖率等集成结果。包括单元测试、静态扫描、单测报告和邮件报告,开发能快速知道本次代码提交的白盒级别的质量情况,并且质量信息分等级,开发可优先关注高等级的质量风险。对于业务发展快、研发进度慢的公司,可以尝试单元测试系统,从开发阶段提高质量,加快代码发布。
1.<b>单测集成是自动同步云效平台的配置管理系统,对代码主干以及各个项目的分支进行单元测试持续集成,</b>主干结果通知到负责人,分支结果通过邮件的方式通知到代码提交人员,如果在一小时内有多人多次提交,将合并成一次构建并一起发送到每个代码提交人员。
代码主干的持续集成频率为每天凌晨2点检测一次svn是否有变更,如有则触发一次集成构建;项目分支的持续集成频率为1小时检测一次svn是否有变更,如有则触发一次集成构建;
2.<b>全自动对项目开发仓库地址(git、svn)进行代码变更监控,自动扫描代码中已有的缺陷,自动监控,实时反馈代码质量;</b>
3.<b>提供多维度测试集成结果:</b>单元测试用例集成结果(用例总数、成功、失败及通过率);单元测试代码覆盖率结果(包括代码全量和svn变更增量覆盖率),覆盖率分全量覆盖率和增量覆盖率:全量覆盖率=(被单元测试覆盖的代码行数/总代码行数);增量覆盖率(一次构建)=(新增代码被单元测试覆盖的代码行数/新增代码行数)。在集成参数配置中可以配置过滤不统计的方法正则表达式;静态扫描findbugs(按扫描规则区分必修、建议);sonar代码分析(代码静态扫描,包括pmd扫描、代码统计、注释率统计、代码重复度统计、代码复杂度统计)。
<b> 4. 提供多维度看板,可以自定义团队代码模板看板,</b>通过邮件订阅的方式定时接收团队的主干应用集成情况,监控代码主干的持续集成结果,还可以操作对比主干的集成结果变化情况,有效降低开发在项目中单元测试的持续集成成本。
云效建议企业在单元测试不多的情况下,可以选择优先修复静态扫描的必修部分,来减少因代码不规范、粗心而带来的质量问题;如果进行单元测试,则需要减少外部依赖,使用mock进行单元化测试,在这打个广告云效也即将发布上线mock平台。