什么是代码检查

代码检查CodeArts Check

代码检查是基于云端实现代码质量管理的服务,软件开发者可在编码完成后执行多语言的代码静态检查和安全检查,获取全面的质量报告,并提供缺陷的分组查看与改进建议,有效管控代码质量,确保产品原生高质量和产品安全,帮助产品成功。代码检查服务为免费使用。

代码检查能力特性

自研代码检查引擎

自研代码检查引擎,全面评估代码质量七特征

CodeArts Check代码检查服务的核心就是代码检查引擎,高效精准的代码检查引擎能够很好地帮助用户在开发早期快速、准确地发现代码问题,兼顾开发效率与产品质量。

1、代码检查引擎团队凝聚了国内40+博士、海外研究所50+专家、国内外10+老师合作成果,经过华为内部(15W+开发人员,日均500亿行扫描)大规模持续使用和打磨而成。

2、代码检查覆盖了业界主流开发语言,针对代码的可读、可维护、安全、可靠、可测试、高效、可移植等方面进行全面的分析。

3、代码检查融合了华为30多年对代码质量及可信度提升方面持续思考与探索、实践,积累了丰富的检查规则。

支持五大业界主流标准和华为编程规范

代码检查支持五大业界主流标准和华为编程规范,提升产品代码规范度

软件产品的质量问题往往导致产品产生不可接受的运营风险或过度成本,因此在源代码级别建立质量检测措施的标准是非常重要的,业界如ISO/IEC 5055标准、CERT编程规范等。

1、使用CodeArts Check服务,可以对您的代码进行全面的质量检查。

2、代码检查支持快速筛选已识别的编程规范问题,支持规范、标准的知识联动,便于用户快速了解问题类别、严重性、详情,从而根据自身项目需要,快速分析和制定修复计划。

3、代码检查当前支持的支持业界主流编程标准和优秀实践有:ISO 5055、CERT、CWE、OWASP TOP 10、CWE/SANS TOP 25等。

支持主流开发语言

代码检查支持主流开发语言,内置7000+检查规则,便于用户开箱即用

CodeArts Check服务支持C/C++、Java、Python、GO、JavaScript、CSS、HTML、PHP、C#、Android等10+常见开发语言,满足嵌入式、WEB应用、移动应用等多种开发场景所需。

1、代码检查内置多款的开源工具与自研引擎一起提供丰富的检查规则(7000+)。

2、梳理各类场景需要,内置全面检查规则集、关键检查规则集、移动领域规则集、华为编程规范规则集等10+规则集,便于用户开箱即用。更多规则集详情请参见配置代码检查规则集。

3、用户也可基于规则库定制满足场景专项需求的检查规则集 。

日均百亿级扫描能力

日均百亿级扫描能力,支持大型企业超大规模代码检查

CodeArts Check具备强大的高并发处理能力,在华为内部,日常15万+软件开发人员高频代码提交增量检查,每日凌晨所有代码仓定时检查,服务日均扫描百亿行级代码。

1、服务通过AZ容灾、跨region级容灾多活、支持过载保护、服务依赖和隔离等一系列高可用特性,实现服务故障自探测、自隔离、自恢复,为大型应用和团队提供可靠支持。

2、针对检查业务峰谷明显的业务特征,通过强大的弹性调度能力,快速高效的调配资源满足业务所需,确保业务高峰0等待。

一站式问题闭环修复

一站式问题闭环修复,问题修复效率倍增

开发团队实施代码检查活动时通常遇到问题分析和修复成本高(工具问题不易理解、问题分到具体开发人员费时费力、多版本情况下重复处理同一告警令开发人员厌倦工具)导致落地困难,这些原因很大程度影响了开发人员对检查工具的使用积极性。

CodeArts Check服务提供问题分析处理三大能力,帮助开发团队高效、顺畅使用代码检查工具:

1、问题精准定位到行、提供修复指导(内置编程规范说明、正确示例、错误示例、修复建议),提高问题分析效率。无需对开发人员重复进行规范和修复技能培训。

2、自动根据代码提交信息匹配问题责任人,提供问题分发效率,谁引入、谁修改,业务逻辑了然于胸,同时加强了开发人员的规范和质量意识。

3、自动同步已处理的忽略问题、同一仓库同一误报只需处理一次,提高问题处理效率。

通过上述能力在华为实践过程中问题分析和修复效率倍增。

“代码编写、代码合并、版本发布”三层缺陷防护

“代码编写、代码合并、版本发布”三层缺陷防护,兼顾效率与质量

优秀的代码质量保障实践,往往将代码检查融入到开发作业流中,在用户代码编写、代码提交时进行自动化的审计检查,并对团队每日产出的代码进行持续编程规范和质量检查。

1、这一活动实践要求已是安全开发过程SDL、DevSecOps等众多优秀开发模式推荐进行的实践要求。

2、代码检查CodeArts Check服务提供丰富的API接口、涵括任务新建、任务设置、任务扫描触发、任务报告解析等检查业务全流程,支持用户使用接口方式无缝集成到自建CI/CD或者CodeArts,作业数据灵活对接到客户看板,代码质量可视、可管理。

3、同时通过灵活的任务管理,支持排除目录设置避免无效扫描,并支持混合语言检查、简化部署、一次获取整个版本代码质量。

如何进行软件代码检查

操作步骤

1、新建代码检查任务

在软件开发生产线首页选择“服务 > 代码检查”,单击“代码检查”首页的“新建任务”创建代码检查任务。创建任务时通过关联项目下代码仓库拉取代码。

2、执行代码检查任务

代码检查任务新建成功后,单击任务的开始检查按钮进行执行。

3、查看代码检查报告

检查完成后,单击检查任务名称,进入代码检查详情页面,可以查看“概览”、“代码问题”、“代码度量”等。

代码检查常见问题

代码检查常见问题

  • 代码检查支持哪些区域?

    代码检查服务目前支持以下区域:

    华北-北京一

    华北-北京四

    东北-大连

    华东-上海一

    华东-上海二

    华南-广州

    华南-深圳


  • 代码检查能够检查哪些语言?

    目前支持Java、C++、JS、TypeScript、C#、Python、PHP、Go、HTML、CSS,其他语言类型,敬请期待!


  • 代码检查能够检查哪些维度?

    代码检查主要从“编码风格”、“编码问题”、“编码安全”和“架构设计”方面对源代码进行检查分析,上报代码缺陷,并分析源代码的“圈复杂度”和“代码重复率”,根据检查结果评定代码风险指数、并提出修改建议。


  • 代码检查能否检查本地代码?

    不能。

    代码检查不能单独使用,需要配合代码托管,将代码上传后使用代码检查服务。

    即代码检查服务仅适用于云端代码仓库,需要将本地代码提交到云端代码仓库后,才能进行云端代码检查分析。


  • 代码检查就是检查代码执行的Bug吗?

    不是。

    代码检查服务是对代码仓库中的指定源代码进行静态分析,即在不运行代码的情况下,通过词法分析、语法分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标。同时,对分析出的代码缺陷提供示例与修改建议。


  • 代码检查一个任务是否能选择多个代码检查规则集?

    可以。

    目前一个仓库只能建一个任务,一个任务的规则集取决于仓库中代码的种类,多种语言就可以选择多种规则集,但是一种语言只能选择一种规则集。


  • 如何导出代码问题?

    1、进入代码检查详情页,选择“代码问题”页签。

    2、在页面左侧过滤器中筛选需要导出的代码问题,如“问题级别”或“问题状态”。

    3、勾选目标问题,单击页面下方“导出”,可以导出已选中的目标代码问题。

    说明:也可以单击“全量导出”,导出全部的代码问题。


  • 代码检查任务总的代码行数是怎样统计的?

    1、进入代码检查任务概览页。

    2、查看总的代码行数:

    总的代码行=有效代码行。

    总的代码行统计的是所有被检查语言的代码行。


  • 同一代码仓提交多个PR触发代码检查,是否会排队执行?

    不会排队。

    提交PR之后触发版本级检查,套餐范围内不会排队,并行执行检查并保存结果,只展示最后一次的检查结果。