注册 / 登录

构建闭环的静态代码质量保证体系

分会场:  测试实践/测试工具链建设/大前端&移动端

 

案例来源 :

案例讲师

张俊

汽车之家 测试开发架构师

现就职于汽车之家负责自动化测试以及工具化开发相关工作,致力于自动化测试落地、提升研发测试效能、持续集成、质量度量工具化等方向。

扫描二维码分享案例

 

案例简述

 

随着汽车之家的业务发展,团队规模和代码体量都急剧膨胀,技术债务积累越来越多,我们期望改善代码质量以及进行常态化的监控。

1)建立代码质量检查工具体系,基于SoanrQube进行二次开发,各代码分支每次commit都触发代码质量检查,并上报代码质量大数据中心;

2)进行数据的钻取和分析,建立了度量机制和基线,能够准确反馈出team、project、developer当前的代码质量情况,以及纵向的趋势和横向的排名;

3)制定了流程规范并将其工具化,建立代码准入约束。及时发现技术债并触发定向消息机制提醒developer,帮助developer准确定位问题,自动跟进和复核,完成闭环的跟踪。

 

案例目标

 

现代的互联网产品是通过多个分布式的子系统和微服务持续构建出的一个庞大又复杂的的系统工程,为此一些公司都在研发过程的各个节点进行质量内建,静态代码质量属于质量保证体系的重要部分,代码质量保证对于整个工程团队的效能提升,以及降低牵一发而动全身引起的故障的风险都有着巨大的价值


随着我们代码体量飞速增长,技术债大量累积,对于任何代码的修改成本很高,代码质量逐渐变差,代码的可维护性非常低。我们亟需建立构建一套闭环的静态代码质量保证体系,这套体系能够最大程度自动化运转,把控质量规范标准,驱动整体代码质量逐步提升。同时提供可视化的数据展示平台能够反馈出team、project、developer的代码质量情况。


 

成功(或教训)要点

 

1)建立了大规模随时随需自动化检查代码质量的服务集群,采集和监测各project各分支的代码每次commit的代码质量,并且建立了代码质量大数据仓库


2)通过对代码质量大数据统计分析建立了适合汽车之家研发过程的千行坏味道数、千行复杂方法数、千行代码重复度、千行漏洞数等质量度量指标和基线值


3)根据管理需要开发了多维度仪表盘系统,可以实时反馈team、developer、project当前的代码质量情况,既可以查看在纵向时间范围内趋势变化,又可以横向在各team、各project、developer间对比


4)通过将流程工具化,建立了代码质量异常告警系统,任何分支提交时发现任意代码质量问题,就会将问题发送给这行代码的developer;建立了代码质量基线控制系统,代码质量指标未达基线则不允许提交到代码仓库

 

案例ROI分析

 

1)低成本运转:建立了流水线式的代码质量监测系统,所有代码质量检查工作自动执行,质量数据自动采集,全过程无人值守


2)给团队管理者提供客观的管理手段:Team leader可以通过仪表盘实时查看本组代码质量健康情况


3)总体趋势向好发展:近一年来团队总体技术债务降低50%,千行坏味道数,千行复杂方法数,千行代码重复度,千行漏洞数,千行bugs均减少50%以上。所有commit均达优于基线值60%以上

 

案例启示

 

1)先采集数据量化问题,进行数据分析和可视化展示,依据历史数据建立基线值。进行流程工具化,提供便捷的工具


2)解决相关人员的实际需求和痛点,我们为team leader提供了可视化图表,增加质量管理工具。为developer提供了便捷的静态检查工具,能够为他们精确定位问题。


3)在团队中的意义

实现了静态代码质量数据可视化和代码质量问题实时通知

规范和统一了团队内的代码规范标准

解决了历史积累技术债问题


 

案例在团队中的意义

 

此案例经过我们公司已进行规模化应用的实践检验,各团队反馈对其有很高的实用性,且相关数据指标显示质量明显改善。

 

领取大会PPT

我要参会

大会全套演讲PPT

立即领取

大会即将开幕,点击抢票!

我要参会