CN106528427A - 代码质量检查方法和系统 - Google Patents

代码质量检查方法和系统 Download PDF

Info

Publication number
CN106528427A
CN106528427A CN201611042264.9A CN201611042264A CN106528427A CN 106528427 A CN106528427 A CN 106528427A CN 201611042264 A CN201611042264 A CN 201611042264A CN 106528427 A CN106528427 A CN 106528427A
Authority
CN
China
Prior art keywords
code
checked
quality
library
inspection result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201611042264.9A
Other languages
English (en)
Inventor
石广学
孙明星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Ctrip Business Co Ltd
Original Assignee
Shanghai Ctrip Business Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Ctrip Business Co Ltd filed Critical Shanghai Ctrip Business Co Ltd
Priority to CN201611042264.9A priority Critical patent/CN106528427A/zh
Publication of CN106528427A publication Critical patent/CN106528427A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种代码质量检查方法和系统,其中方法包括以下步骤:S1、定时查询代码库中是否存在需要进行质量检查的待检查代码,若是,则执行步骤S2;S2、使用SonarQube对所述待检查代码进行质量检查并判断是否有问题,若是,则输出检查结果;其中,所述代码库用于存放代码。本发明通过定时查询存放代码的代码库,能够及时发现代码库中存放的代码是否有需要检查的代码,如果有则自动调用SonarQube对代码进行质量检查,如果代码有问题,及时输出检查结果。通过本发明能够在第一时间自动地发现代码库中变更后的代码隐藏或潜在的问题,并能及时反馈,协助开发人员更快的发现定位问题,为测试前扫除系统问题,提高测试效率。

Description

代码质量检查方法和系统
技术领域
本发明涉计算机软件应用技术领域,特别涉及一种代码质量检查方法和系统。
背景技术
软件代码就是程序员用开发工具所支持的语言写出来的源文件。它是一组有序的数字或字母的排列,是代表客观实体及其属性的符号。软件代码质量就是代码编写的一种统一规范,让代码具有可读行,思路清晰。高质量的代码需具备可读性、可维护性和可变更性三个特征。
对于大型企业也而言,会存在多个软件开发项目,每个项目会由不同的开发组负责。此外,随着代码复杂性的增加,往往一个项目需要由若干开发人员共同开发完成。不同的开发人员负责不同的部分,更新维护的时间也不同。现有的代码质量检查方法仅支持手动触发的方式,无法在软件应用发布及代码提交的第一时间触发质量检查,这无疑不能适应目前的自动化的需求。
发明内容
本发明要解决的技术问题是为了克服现有技术中代码部分更新或全量更新后质量检查不及时,无法第一时间自动触发代码质量检查的缺陷,提供一种能够自动触发代码质量检查提高后续测试效率的代码质量检查方法和系统。
本发明是通过下述技术方案来解决上述技术问题:
一种代码质量检查方法,其特点在于,包括以下步骤:S1、定时查询代码库中是否存在需要进行质量检查的待检查代码,若是,则执行步骤S2;S2、使用SonarQube(一种代码质量检测平台)对所述待检查代码进行质量检查并判断是否有问题,若是,则输出检查结果;其中,所述代码库用于存放代码。
本方案中,通过定时查询存放代码的代码库,能够及时发现代码库中存放的代码是否有需要检查的代码,如果有则自动调用SonarQube对代码进行质量检查,如果代码有问题,及时输出检查结果以备后续处理。解决了目前的代码质量检查仅由手动触发,无法在全量代码发布及变更代码提交时及时触发质量检查的问题。本方案中,定时可以是30分钟查询一次,也可以是24小时查询一次,该时间取决于具体的应用需求。其中需要检查的代码一般为有部分变更的代码或者全量代码修改后整体发布的代码。通过本方案,能够在第一时间自动地发现代码库中变更后的代码隐藏或潜在的问题。
较佳地,所述步骤S1中,所述需要进行质量检查的情况为所述代码库中有新的变更代码和/或新发布的全量代码。
本方案中,代码库供代码开发人员上传待检查的代码,可以在新的全量代码开发完成后上传新发布的全量代码,也可以针对已存在代码库中的全量代码进行部分修改之后将新的变更代码上传。本方法发现代码库中的代码有新变更后,将针对新变更的代码进行质量检查。
较佳地,所述步骤S1和S2之间还包括以下步骤:从所述代码库中拉取所述待检查代码。
本方案中,先将待检查代码从代码库中下载到本地,然后再使用SonarQube进行代码质量检查。
较佳地,所述步骤S2中,若否,则执行S3:S3、对所述待检查代码进行单元测试并判断是否有问题,若是,则输出检查结果。
本方案中,对于待检查代码进行单元测试,从动态的角度测试代码运行过程中是否存在问题,能够获取单元测试的覆盖率。
较佳地,所述输出检查结果包括将所述检查结果以邮件形式发送至代码管理员。
本方案中,通过邮件将检查结果第一时间发送至代码管理员,以便能够及时反馈代码隐藏或潜在的问题。其中代码管理员可以是对应的代码提交人,也可以是研发经理等。
较佳地,所述方法还包括设置代码组信息和设置所述待检查代码的路径信息,所述代码组信息包括所述代码管理员。
本方案中,可以根据项目分组,不同项目划分为不同的代码组,每个代码组信息提前设置好,其中代码组信息包括本组的代码管理员,另外还需要提前配置本组代码在代码库中的存放路径,以备本方法能够及时查询到待检查的代码,同时实现了质量检查对象的统一管理。通过本方法能够实现代码组人员信息统一、有效的管理,质量检查结果能够及时准确的通知到相关人。
本发明还提供一种代码质量检查系统,其特点在于,包括:定时判断模块,用于定时查询代码库中是否存在需要进行质量检查的待检查代码,若是,则调用代码扫描模块;代码扫描模块,用于从所述代码库中拉取所述待检查代码,使用SonarQube对所述待检查代码进行质量检查并判断是否有问题,若是,则输出检查结果;其中,所述代码库用于存放代码。
较佳地,所述需要进行质量检查的情况为所述代码库中有新的变更代码和/或新发布的全量代码。
较佳地,所述代码质量检查系统还包括单元测试模块,所述单元测试模块用于当所述代码扫描模块中判断没有问题时对所述待检查代码进行单元测试并判断是否有问题,若是,则输出检查结果。
较佳地,所述输出检查结果包括将所述检查结果以邮件形式发送至代码管理员。
本发明的积极进步效果在于:本发明提供的代码质量检查方法和系统通过定时查询存放代码的代码库,能够及时发现代码库中存放的代码是否有需要检查的代码,如果有则自动调用SonarQube对代码进行质量检查,如果代码有问题,及时输出检查结果以备后续处理。解决了目前的代码质量检查仅由手动触发,无法在全量代码发布及变更代码提交时及时触发质量检查的问题。通过本发明能够在第一时间自动地发现代码库中变更后的代码隐藏或潜在的问题,并能及时反馈,协助开发人员更快的发现定位问题,为测试前扫除系统问题,提高测试效率。进一步的,本发明还能够将检查结果以邮件的形式通知到代码提交人或对应的代码管理员,以便后续针对异常及时处理。
附图说明
图1为本发明实施例1的代码质量检查方法的流程图。
图2为本发明实施例2的代码质量检查系统的示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,一种代码质量检查方法,包括以下步骤:
101、设置代码组信息和设置待检查代码的路径信息,其中代码组信息包括代码管理员。
102、定时查询代码库中是否存在需要进行质量检查的待检查代码,若是,则执行步骤103,若否,则结束;其中代码库用于存放代码,本实施例中30分钟查询一次代码库。
103、从代码库中拉取待检查代码。
104、使用SonarQube对待检查代码进行质量检查并判断是否有问题,若是,则执行步骤106,若否则执行步骤105。
105、对待检查代码进行单元测试并判断是否有问题,若是,则执行步骤106,若否则结束。
106、将检查结果以邮件形式发送至代码管理员。
本实施例中需要进行质量检查的情况可以是代码库中有新的变更代码和/或新发布的全量代码。
本实施例实现了定时拉取代码库中的变更代码,及时检查变更代码的质量,并能够将检查结果以邮件的形式通知到相关人,可以是代码提交人也可以是对应的研发经理,能够协助开发人员更快的发现并定位问题,提高测试效率。本实施例也可以进一步的通过爬虫工具,不间断的获取全量代码对应应用的发布信息,并触发代码库全量检查,实现应用发布即刻触发检查的功能,从而及时检查最新上线代码的集成质量。
实施例2
如图2所示,一种代码质量检查系统,包括定时判断模块1、代码扫描模块2和单元测试模块3。其中,定时判断模块1用于定时查询代码库中是否存在需要进行质量检查的待检查代码,若是,则调用代码扫描模块2,其中代码库用于存放代码,需要进行质量检查的情况为代码库中有新的变更代码和/或新发布的全量代码。代码扫描模块2用于从代码库中拉取待检查代码,使用SonarQube对待检查代码进行质量检查并判断是否有问题,若是,则输出检查结果。单元测试模块3用于当代码扫描模块2中判断没有问题时对待检查代码进行单元测试并判断是否有问题,若是,则输出检查结果。本实施例中输出检查结果的方式为将检查结果以邮件形式发送至代码管理员。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (10)

1.一种代码质量检查方法,其特征在于,包括以下步骤:
S1、定时查询代码库中是否存在需要进行质量检查的待检查代码,若是,则执行步骤S2;
S2、使用SonarQube对所述待检查代码进行质量检查并判断是否有问题,若是,则输出检查结果;
其中,所述代码库用于存放代码。
2.如权利要求1所述的代码质量检查方法,其特征在于,所述步骤S1中,所述需要进行质量检查的情况为所述代码库中有新的变更代码和/或新发布的全量代码。
3.如权利要求1所述的代码质量检查方法,其特征在于,所述步骤S1和S2之间还包括以下步骤:从所述代码库中拉取所述待检查代码。
4.如权利要求1所述的代码质量检查方法,其特征在于,所述步骤S2中,若否,则执行S3:
S3、对所述待检查代码进行单元测试并判断是否有问题,若是,则输出检查结果。
5.如权利要求1至4任一项所述的代码质量检查方法,其特征在于,所述输出检查结果包括将所述检查结果以邮件形式发送至代码管理员。
6.如权利要求5所述的代码质量检查方法,其特征在于,所述方法还包括设置代码组信息和设置所述待检查代码的路径信息,所述代码组信息包括所述代码管理员。
7.一种代码质量检查系统,其特征在于,包括:
定时判断模块,用于定时查询代码库中是否存在需要进行质量检查的待检查代码,若是,则调用代码扫描模块;
代码扫描模块,用于从所述代码库中拉取所述待检查代码,使用SonarQube对所述待检查代码进行质量检查并判断是否有问题,若是,则输出检查结果;
其中,所述代码库用于存放代码。
8.如权利要求7所述的代码质量检查系统,其特征在于,所述需要进行质量检查的情况为所述代码库中有新的变更代码和/或新发布的全量代码。
9.如权利要求7所述的代码质量检查系统,其特征在于,所述代码质量检查系统还包括单元测试模块,所述单元测试模块用于当所述代码扫描模块中判断没有问题时对所述待检查代码进行单元测试并判断是否有问题,若是,则输出检查结果。
10.如权利要求7至9任一项所述的代码质量检查系统,其特征在于,所述输出检查结果包括将所述检查结果以邮件形式发送至代码管理员。
CN201611042264.9A 2016-11-24 2016-11-24 代码质量检查方法和系统 Pending CN106528427A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611042264.9A CN106528427A (zh) 2016-11-24 2016-11-24 代码质量检查方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611042264.9A CN106528427A (zh) 2016-11-24 2016-11-24 代码质量检查方法和系统

Publications (1)

Publication Number Publication Date
CN106528427A true CN106528427A (zh) 2017-03-22

Family

ID=58356435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611042264.9A Pending CN106528427A (zh) 2016-11-24 2016-11-24 代码质量检查方法和系统

Country Status (1)

Country Link
CN (1) CN106528427A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193677A (zh) * 2017-04-18 2017-09-22 广州视源电子科技股份有限公司 代码缺陷的通知方法及系统
CN107357733A (zh) * 2017-07-17 2017-11-17 万帮充电设备有限公司 提高代码质量的方法及装置
CN107643894A (zh) * 2017-09-30 2018-01-30 深圳市沃特沃德股份有限公司 代码开发管理方法和系统
CN110704309A (zh) * 2019-09-12 2020-01-17 上海麦克风文化传媒有限公司 一种自动化代码质量检查方法及系统
CN112860548A (zh) * 2021-01-29 2021-05-28 北京罗克维尔斯科技有限公司 代码自动检测方法、装置、电子设备及存储介质
CN113032286A (zh) * 2021-05-24 2021-06-25 连连(杭州)信息技术有限公司 一种代码质量的扫描方法、装置及存储介质
CN113672517A (zh) * 2021-09-06 2021-11-19 网易(杭州)网络有限公司 一种代码检查方法、装置、电子设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110197176A1 (en) * 2010-02-08 2011-08-11 Microsoft Corporation Test Code Qualitative Evaluation
CN103309804A (zh) * 2013-04-08 2013-09-18 中国电子科技集团公司第十研究所 自动化代码规则检查平台
CN105159831A (zh) * 2015-08-31 2015-12-16 浪潮集团有限公司 一种软件代码质量自动监控方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110197176A1 (en) * 2010-02-08 2011-08-11 Microsoft Corporation Test Code Qualitative Evaluation
CN103309804A (zh) * 2013-04-08 2013-09-18 中国电子科技集团公司第十研究所 自动化代码规则检查平台
CN105159831A (zh) * 2015-08-31 2015-12-16 浪潮集团有限公司 一种软件代码质量自动监控方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193677A (zh) * 2017-04-18 2017-09-22 广州视源电子科技股份有限公司 代码缺陷的通知方法及系统
CN107357733A (zh) * 2017-07-17 2017-11-17 万帮充电设备有限公司 提高代码质量的方法及装置
CN107643894A (zh) * 2017-09-30 2018-01-30 深圳市沃特沃德股份有限公司 代码开发管理方法和系统
WO2019061750A1 (zh) * 2017-09-30 2019-04-04 深圳市沃特沃德股份有限公司 代码开发管理方法和系统
CN110704309A (zh) * 2019-09-12 2020-01-17 上海麦克风文化传媒有限公司 一种自动化代码质量检查方法及系统
CN112860548A (zh) * 2021-01-29 2021-05-28 北京罗克维尔斯科技有限公司 代码自动检测方法、装置、电子设备及存储介质
CN113032286A (zh) * 2021-05-24 2021-06-25 连连(杭州)信息技术有限公司 一种代码质量的扫描方法、装置及存储介质
CN113672517A (zh) * 2021-09-06 2021-11-19 网易(杭州)网络有限公司 一种代码检查方法、装置、电子设备和介质

Similar Documents

Publication Publication Date Title
CN106528427A (zh) 代码质量检查方法和系统
US20210311813A1 (en) Fault prediction method, apparatus and storage medium
CN109684053B (zh) 大数据的任务调度方法和系统
US20160004517A1 (en) SOFTWARE DEVELOPMENT IMPROVEMENT TOOL - iREVIEW
US8448139B2 (en) Automatic correction of application based on runtime behavior
US10523695B2 (en) Threat modeling tool using machine learning
CN107660289A (zh) 自动网络控制
CN104461743A (zh) 资源和配置的自动生成装置和方法
US11301221B2 (en) Rapid code compiling system
US20180157485A1 (en) Software management integration in a product management system
CN105656699A (zh) 内容分发网络的告警管理方法及系统
CN109995612B (zh) 一种服务巡检方法、装置及电子设备
CN111651365B (zh) 接口自动化测试方法及装置
CN109240905A (zh) 软件测试方法和系统
CN110175272A (zh) 一种基于特征建模实现工单收敛的控制方法及控制装置
EP3336726B1 (en) Systems and methods for facilitating data transformation
CN116010066A (zh) 一种rpa机器人及实现方法
CN110795331A (zh) 软件测试的方法和装置
US20240194330A1 (en) Protocol compliance system
CN105718468A (zh) 一种数据仓库ods层的建立方法和装置
CN111756778A (zh) 一种服务器磁盘清理脚本推送的方法、装置和存储介质
De Ley et al. Rules-based analysis with JBoss Drools: adding intelligence to automation
US8949423B2 (en) Autonomically co-locating first and second components on a select server
CN107943698A (zh) 一种dmi信息与fru信息同步自动化测试方法及系统
US10452592B1 (en) Message bus-based streaming rules engine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination