浅谈使用Sonar进行代码质量分析

2015-05-30 10:48刘壮飞
中国新通信 2015年20期
关键词:质量分析质量管理

刘壮飞

【摘要】 随着 IT行业中软件产品的推陈出新,客户对于软件产品的要求也越来越高,因此如何高质量的交付软件代码,及时、持续地对代码质量进行分析并给出合理的解决方案就成为了当下必须要解决的一个问题。本文主要从如何利用Sonar进行代码的质量监控、问题的闭环管理以及同企业现有的内部问题管理平台、消息统一推送平台等工作流程的结合方面进行表述,简单阐述了基于Sonar的质量分析平台给软件项目带来的质量保障和质量提升。最后對自己在实际使用过程中遇到的问题进行了总结,并给出了相应的解决方案。

【关键词】 质量分析 质量管理 Sonar 软件质量

一、现存问题

IT系统在上线初,项目由于其唯一性、临时性、成员的创造性和是团队开发的产物等特点,流程规范性不够、研发编程能力参差不齐,团队成员磨合期不够等诸多因素,导致软件质量处于较低水平。如何提高代码质量,做好产品质量控制就成为一个急需解决的课题。在进行质量控制的时候,必然会存在这样或者那样的问题,主要碰到的情况如下:

团队成员代码风格各异

潜在的低级错误引发的bug

重复代码段维护困难

糟糕的复杂度分布

整个项目代码质量无统一检测标准

走查成本高,效率低,走形式,质量低

核查的问题无闭环

缺乏有效的手段对项目的质量进行持续监控

假如不对以上质量问题进行有效管控,那么必然在外部带来客户满意度的下降,信任度降低,客户方投资额的减少。内部带来员工工作量的增加,加班强度的增强,间接管理成本增加,从而导致离职率增加,团队不稳定,上级不满意等各类情况。

那么,在软件的质量管理过程中,究竟是什么因素会对软件的质量产生重大的影响呢?毫无疑问,代码质量是核心关键。那么,代码质量是否有工具能够进行检测呢?接下来让我们一起来了解下怎么使用工具高效闭环核查代码。

二、Sonar介绍

Sonar 是 Codehaus 上面的一个开源项目,用于管理源代码的质量。它从七个纬度来分析项目的质量:重复、编码规则、注释、复杂度、单元测试、问题和架构&设计。优势如下:

1)Sonar 并不是简单地将各种质量检测工具的结果直接展现给客户,而是通过不同的插件算法来对这些结果进行再加工,最终以量化的方式来衡量代码质量,从而方便地行相应的代码质量管理。

2)通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。

3)Sonar 不仅提供了对 IDE 的支持,如:Eclipse 和IntelliJ IDEA里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用Sonar。

4)此外,Sonar 的插件还可以对 Java 以外的其他25+编程语言提供支持,对国际化以及报告文档化也有良好的支持。

三、应用案例

在项目中,利用Sonar的质量分析功能,当项目代码被成功分析完成后,SonarServer 会将分析的结果存储在相应的数据库中,并以报告的形式将分析结果以图表的形式展现在页面上,实现对项目的持续监控,过程描述如下:

1、项目经理或QA首先从代码版本库上获取稳定的软件产品版本,使用Sonar,按照项目组设定的规则,进行代码的分析;

3、将扫描出来的问题形成问题分析报告,向项目经理和项目组QA,供了解和决策。同时,针对分析出来的代码问题创建问题视图,自动调用企业任务管理平台创建问题单;

5、各组长将收到的问题单进行分析,研发针对问题进行设计和解决,并完成程序编码调整,最后通过版本管控平台提交代码。同时,由系统自动通过消息推送平台将该任务单信息告知具体的研发。

6、研发在代码提交的时候根据代码所属的归属模块,调用该问题视图数据进行判断,若在问题视图中存在该模块,则限制代码的提交,并要求修改后提交代码,从而达到提前预防问题代码上库的情况;

8、研发回复任务单,完成问题的修复和解决,企业内部问题管理平台判断问题处于关闭状态,调用质量分析平台的Api,删除该问题模块对应的问题,实现问题的闭环管理。

通过上述过程,给项目提供一个全流程的、规范化的问题处理流程,有效解决软件产品质量的分散问题,提升软件产品的质量管理效率,给软件产品的代码质量带来了以下好处:1)利用工具和创新方法实现对代码质量的闭环管理,有分析、有解决和有后评估,从而提升项目管理、研发的工作效率;2)大大提升了研发环节的代码走查、问题的预发现等环节的工作质量和效率,确保了软件产品的质量,避免软件的质量问题到测试和生产环节才发现问题,提升客户满意度。

四、总结

代码质量管理对提高项目质量意义重大。本文介绍了Sonar 的特点和实际运用过程,并从项目实战的角度讲解了使用Sonar进行项目代码质量管理的流程和注意事项,以期达到抛砖引玉的目的。

猜你喜欢
质量分析质量管理
抽样检验质量分析对提升产品质量的作用研究
药品质量分析在其评价抽验中的作用探讨
产融结合型企业利润结构质量分析体系的构建
浅谈电子元器件的质量分析与控制
厂内机动车辆检验检测质量研究
基于项目管理的企业年度重点工作管理
浅谈智能建筑电气施工管理及质量控制
入厂抽样检验规程的编制
浅谈在公路桥梁施工环节的质量管理及控制