CN107122299A - 一种自动化软件代码检测方法 - Google Patents

一种自动化软件代码检测方法 Download PDF

Info

Publication number
CN107122299A
CN107122299A CN201710279116.7A CN201710279116A CN107122299A CN 107122299 A CN107122299 A CN 107122299A CN 201710279116 A CN201710279116 A CN 201710279116A CN 107122299 A CN107122299 A CN 107122299A
Authority
CN
China
Prior art keywords
code
commit
data
release
detection
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
CN201710279116.7A
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.)
Chengdu Danlu Network Technology Co Ltd
Original Assignee
Chengdu Danlu Network Technology 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 Chengdu Danlu Network Technology Co Ltd filed Critical Chengdu Danlu Network Technology Co Ltd
Priority to CN201710279116.7A priority Critical patent/CN107122299A/zh
Publication of CN107122299A publication Critical patent/CN107122299A/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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Landscapes

  • Engineering & Computer Science (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

本发明公开了一种自动化软件代码检测方法,其特征在于:包括以下步骤:(1)代码数据的编写与存储,根据相应的project及其release编写代码并通过Gitlab服务器接收该代码的数据,并记录与代码对应的project、release以及commit id;(2)通过jenkins平台对代码数据进行预处理,并根据预处理的结果选择结束本次检测或者进入步骤(3);(3)对代码进行检测;(4)对代码的检测结果进行反馈。本发明提供一种自动化软件代码检测方法,能够合理的利用的服务器资源,每天能够自行定时完成检测的过程,无需工作人员再去手动的检测,大大提高了人力资源的利用率。

Description

一种自动化软件代码检测方法
技术领域
本发明涉及一种代码的检测方法,具体是指一种自动化软件代码检测方法。
背景技术
现有技术中的代码检测方案都是由人工来操作代码审查工具的,并通过人为的操作来检索代码库并人为的去查看代码中的错误的内容和不规范的内容。该代码检测方案强调了人为的主动性,但却忽视了自动化构建触发。
现有的代码检测方案忽视了代码检测的持续性,同时也没有提供相应的审查结果的汇总报告展示。若一个项目有很多工程以及很多代码版本分支,现有的方案大多需要人为的多次操作审查工具,并手动汇集显示审查的结果,如此便会消耗大量的开发人力以及时间资源,大大加重了企业的负担,不利于提高企业的发展。
发明内容
本发明的目的在于克服上述问题,提供一种自动化软件代码检测方法,能够合理的利用的服务器资源,每天能够自行定时完成检测的过程,无需工作人员再去手动的检测,大大提高了人力资源的利用率。
本发明的目的通过下述技术方案实现:
一种自动化软件代码检测方法,包括以下步骤:
(1)代码数据的编写与存储,根据相应的project及其release编写代码并通过Gitlab服务器接收该代码的数据,并记录与代码对应的project、release以及commit id;
(2)通过jenkins平台对代码数据进行预处理,并根据预处理的结果选择结束本次检测或者进入步骤(3);
(3)对代码进行检测;
(4)对代码的检测结果进行反馈。
步骤(2)中预处理的具体步骤为:
(21)常启的jenkins平台通过Gitlab服务器的接口遍历Gitlab服务器中所有project及其所有release的代码,并获取每个代码最后一次提交的commit id;
(22)jenkins平台将每个最后一次提交的代码的commit id与该jenkins平台在本地存放的data文本库中对应代码的commit id进行对比;
(23)若所有最后提交的代码的commit id均与该jenkins平台在本地存放的data文本库中对应代码的commit id一致,则结束本次检测;若有最后提交的代码的commit id与该jenkins平台在本地存放的data文本库中对应代码的commit id不一致,则将所有不一致的代码的commit id覆盖到本地存放的data文本库中,并将所有不一致的代码的project及其release保存在trigger-list.txt文档中,并进入步骤(3)。
步骤(3)中检测的具体步骤为:
(31)jenkins平台启动sonar工具并读取trigger-list.txt文档,从而获取该trigger-list.txt文档中记录的相应project及其release的代码,依次执行带sonar工具插件的单元测试,完成代码静态检测任务构建;
(32)将相应project及其release的代码的检测数据上传至sonar服务器中。
步骤(4)中,jenkins平台通过sonar工具的接口读取步骤(32)中相应project及其release的代码的检测数据,并将所有的代码的检测数据进行汇总与展示,进而完成了代码的检测结果的反馈。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明拥有高扩展性,能够直接接入单元测试的测试用例并在一次构建中执行,无二次开发成本。
(2)本发明能够每天晚上或凌晨在服务器的空余时间自行的完成相应的检测过程,合理的利用的服务器资源,降低了服务器资源的浪费,也很好的避免检测过程与工作人员的工作发生冲突。
(3)本发明拥有高度的自动化,每天能够自行定时完成检测的过程,无需工作人员再去手动的检测,大大提高了人力资源的利用率,降低了工作人员的工作量,大大提高了工作人员的工作效率以及对时间的利用率。
具体实施方式
下面结合实施例对本发明作进一步的详细说明,但本发明的实施方式不限于此。
实施例1
一种自动化软件代码检测方法,包括以下步骤:
(1)代码数据的编写与存储,根据相应的project及其release编写代码并通过Gitlab服务器接收该代码的数据,并记录与代码对应的project、release以及commit id。
该代码的编写工作主要由相关的工作人员在工作日的白天完成,而完成编写后的代码则由完成的工作人员上传到专门用于存放代码的Gitlab服务器中进行保存。
(2)通过jenkins平台对代码数据进行预处理,并根据预处理的结果选择结束本次检测或者进入步骤(3);
其具体的步骤为:
(21)常启的jenkins平台通过Gitlab服务器的接口遍历Gitlab服务器中所有project及其所有release的代码,并获取每个代码最后一次提交的commit id;
(22)jenkins平台将每个最后一次提交的代码的commit id与该jenkins平台在本地存放的data文本库中对应代码的commit id进行对比;
(23)若所有最后提交的代码的commit id均与该jenkins平台在本地存放的data文本库中对应代码的commit id一致,则结束本次检测;若有最后提交的代码的commit id与该jenkins平台在本地存放的data文本库中对应代码的commit id不一致,则将所有不一致的代码的commit id覆盖到本地存放的data文本库中,并将所有不一致的代码的project及其release保存在trigger-list.txt文档中,并进入步骤(3);
(3)对代码进行检测:
(31)jenkins平台启动sonar工具并读取trigger-list.txt文档,从而获取该trigger-list.txt文档中记录的相应project及其release的代码,依次执行带sonar工具插件的单元测试,完成代码静态检测任务构建;
(32)将相应project及其release的代码的检测数据上传至sonar服务器中。
(4)对代码的检测结果进行反馈:
jenkins平台通过sonar工具的接口读取步骤(32)中相应project及其release的代码的检测数据,并将所有的代码的检测数据进行汇总与展示,进而完成了代码的检测结果的反馈。
为了提高使用效果,jenkins平台还可以根据实际的展示情况将相应的结果反馈到相应的工作人员的计算机中,很好的避免了工作人员自行查阅展示结果的过程,进一步提高了工作人员的工作效率。
步骤(2)、(3)和(4)主要由jenkins平台在夜晚或凌晨完成,很好的与代码的编写交错开来,以更加充分的利用时间。如此便能很好的避免在工作人员正常工作时jenkins平台占用服务器资源,提高了服务器的利用率,同时还更好的降低了企业的成本。
如上所述,便可很好的实现本发明。

Claims (4)

1.一种自动化软件代码检测方法,其特征在于:包括以下步骤:
(1)代码数据的编写与存储,根据相应的project及其release编写代码并通过Gitlab服务器接收该代码的数据,并记录与代码对应的project、release以及commit id;
(2)通过jenkins平台对代码数据进行预处理,并根据预处理的结果选择结束本次检测或者进入步骤(3);
(3)对代码进行检测;
(4)对代码的检测结果进行反馈。
2.根据权利要求1所述的一种自动化软件代码检测方法,其特征在于:步骤(2)中预处理的具体步骤为:
(21)常启的jenkins平台通过Gitlab服务器的接口遍历Gitlab服务器中所有project及其所有release的代码,并获取每个代码最后一次提交的commit id;
(22)jenkins平台将每个最后一次提交的代码的commit id与该jenkins平台在本地存放的data文本库中对应代码的commit id进行对比;
(23)若所有最后提交的代码的commit id均与该jenkins平台在本地存放的data文本库中对应代码的commit id一致,则结束本次检测;若有最后提交的代码的commit id与该jenkins平台在本地存放的data文本库中对应代码的commit id不一致,则将所有不一致的代码的commit id覆盖到本地存放的data文本库中,并将所有不一致的代码的project及其release保存在trigger-list.txt文档中,并进入步骤(3)。
3.根据权利要求2所述的一种自动化软件代码检测方法,其特征在于:步骤(3)中检测的具体步骤为:
(31)jenkins平台启动sonar工具并读取trigger-list.txt文档,从而获取该trigger-list.txt文档中记录的相应project及其release的代码,依次执行带sonar工具插件的单元测试,完成代码静态检测任务构建;
(32)将相应project及其release的代码的检测数据上传至sonar服务器中。
4.根据权利要求3所述的一种自动化软件代码检测方法,其特征在于:步骤(4)中,jenkins平台通过sonar工具的接口读取步骤(32)中相应project及其release的代码的检测数据,并将所有的代码的检测数据进行汇总与展示,进而完成了代码的检测结果的反馈。
CN201710279116.7A 2017-04-25 2017-04-25 一种自动化软件代码检测方法 Pending CN107122299A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710279116.7A CN107122299A (zh) 2017-04-25 2017-04-25 一种自动化软件代码检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710279116.7A CN107122299A (zh) 2017-04-25 2017-04-25 一种自动化软件代码检测方法

Publications (1)

Publication Number Publication Date
CN107122299A true CN107122299A (zh) 2017-09-01

Family

ID=59725852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710279116.7A Pending CN107122299A (zh) 2017-04-25 2017-04-25 一种自动化软件代码检测方法

Country Status (1)

Country Link
CN (1) CN107122299A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729247A (zh) * 2017-10-13 2018-02-23 郑州云海信息技术有限公司 基于jenkins检查源程序代码错误的方法和装置
CN110427216A (zh) * 2019-08-05 2019-11-08 网联清算有限公司 构建物应用的管理方法、装置、计算设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012020329A1 (en) * 2010-04-15 2012-02-16 Caplan Software Development S.R.L. Automated upgrading method for capacity of it system resources
CN105302554A (zh) * 2015-10-23 2016-02-03 深圳市创维电器科技有限公司 一种Android系统自动化程序构建方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012020329A1 (en) * 2010-04-15 2012-02-16 Caplan Software Development S.R.L. Automated upgrading method for capacity of it system resources
CN105302554A (zh) * 2015-10-23 2016-02-03 深圳市创维电器科技有限公司 一种Android系统自动化程序构建方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
曲世明等: ""使用Jenkins与Sonar集成对代码进行持续检测"", 《HTTPS://WWW.IBM.COM/DEVELOPERWORKS/CN/DEVOPS/1612_QUSM_JENKINS/INDEX.HTML》 *
本书编委会: "《极地大气、空间环境及天文观测 02-03》", 31 December 2016 *
陈哲夫: ""基于Jenkins的Web项目持续集成设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729247A (zh) * 2017-10-13 2018-02-23 郑州云海信息技术有限公司 基于jenkins检查源程序代码错误的方法和装置
CN110427216A (zh) * 2019-08-05 2019-11-08 网联清算有限公司 构建物应用的管理方法、装置、计算设备及介质

Similar Documents

Publication Publication Date Title
CN112256782B (zh) 基于Hadoop的电力大数据处理系统
CN112347071B (zh) 一种配电网云平台数据融合方法及配电网云平台
CN104850635B (zh) 一种多数据源环境下数据缺失自动检查及集中监控方法
Barberis et al. The ATLAS EventIndex: architecture, design choices, deployment and first operation experience
US6708185B2 (en) SQL execution analysis
CN101354758A (zh) 整合实时数据和关系数据的系统和方法
CN104914818A (zh) 数据收集装置、以及该数据收集装置的控制方法
CN101610303A (zh) 多媒体数据自动备份方法及系统
CN107122299A (zh) 一种自动化软件代码检测方法
CN111913933B (zh) 基于统一支撑平台的电网历史数据管理方法及系统
CN111352982A (zh) 一种基于大数据的人力抽取分析系统
CN104063468A (zh) 一种数据报表自动生成及提取方法及装置
Barberis et al. The ATLAS EventIndex: a BigData catalogue for all ATLAS experiment events
CN104298671A (zh) 数据统计分析方法及装置
CN112598142A (zh) 一种风电机组检修工作质量审查辅助方法与系统
CN106933783A (zh) 一种从文本中智能提取日期的方法及装置
CN115640158A (zh) 一种基于数据库的检测分析方法及装置
CN112231376A (zh) 一种用于离线数据采集的方法和装置
CN115774745A (zh) 一种针对大容量Excel文件数据的抽取方法及系统
CN113239115B (zh) 一种疫苗不良反应批量数据快速、准确的同步方法
Zimmerman Publishing ATLAS CTP per-bunch-crossing ID and BPTX Monitoring Data
CN114398389A (zh) 一种处理设备伪遥测历史数据的方法和装置
CN111427763A (zh) 大数据采集分析
Gentile et al. A relativistic solar proton database for the ground-level enhancements of 1956-1984
Riley Monitoring ATLAS Muon-to-Central-Trigger Interface and P-BEAST data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170901

RJ01 Rejection of invention patent application after publication