CN115525565A - 代码质量检测方法、装置、计算机设备及可读存储介质 - Google Patents

代码质量检测方法、装置、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN115525565A
CN115525565A CN202211294462.XA CN202211294462A CN115525565A CN 115525565 A CN115525565 A CN 115525565A CN 202211294462 A CN202211294462 A CN 202211294462A CN 115525565 A CN115525565 A CN 115525565A
Authority
CN
China
Prior art keywords
file
list
detection
code
source code
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
CN202211294462.XA
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.)
Gf Securities Co ltd
Original Assignee
Gf Securities 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 Gf Securities Co ltd filed Critical Gf Securities Co ltd
Priority to CN202211294462.XA priority Critical patent/CN115525565A/zh
Publication of CN115525565A publication Critical patent/CN115525565A/zh
Pending legal-status Critical Current

Links

Images

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/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种代码质量检测方法、装置、计算机设备及可读存储介质。方法包括:读取源代码文件并进行文件扫描,得到对应的源代码文件列表;将源代码文件列表中的文件进行分类,生成对应的分类文件列表;利用相应的代码检测工具分别对对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表;获取预先生成的白名单,并根据白名单进一步过滤,确定代码检测文件列表中的可处理文件的质量检测报告,并缓存检测通过的源代码文件。通过白名单、缓存等规则,以较低的成本,快速引入质量检测工具的最新版本,并行执行多种质量检测任务。

Description

代码质量检测方法、装置、计算机设备及可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码质量检测方法、装置、计算机设备及可读存储介质。
背景技术
代码质量一定程度上可以反映出产品质量,高质量编码是大型项目长期可持续高效迭代的基本要求。通过工具的静态检查方法审查项目代码质量,是一种简单有效的保证编码质量的手段。当前代码质量检测的工具和手段非常多,基本逻辑是选择或开发对应的检测工具,设定质量检测的规则,然后扫描指定项目的代码并应用检测规则,并输出质量检测报告。通常为了不同的目的,会应用多种代码质量检测工具,并在代码提交时和持续集成平台质量检测任务触发时执行。
以当前流行的web前端开发模式为例,通常会选取ESLint等工具检测JavaScript和TypeScript类型的代码编写规范,选取Prettier等工具检测编码风格规范,选取StyleLint等检测CSS/SCSS/LESS等UI样式代码编写规范,选取commitlint等工具检测代码提交规范,选取Jest、Cypress等工具执行单元测试,另外也可能会独立开发工具程序处理个性化的代码规范检测需求。再以Java后台开发模式为例,通常会选取SonarQube、DeepSource、SpotBugs、PMD、EclEmma、JUnit、CheckStyle等静态代码分析工具扫描代码编写规范、执行单元测试、统计测试覆盖率等。
基于不同的角度和目的,在项目中采用多种质量检测工具和手段,一定程度上可以较好的检测和管理项目代码质量。但在实施过程中容易存在如下问题:在历史项目中引入新的质量检测工具,会报告大量的异常,通常需大范围的编码重构或降低规范约束要求,人力成本和时间成本较高;随着质量检测工具的版本更新以及规则集的增改,历史代码会报告大量新的异常,导致工具和规则库更新成本较高,难以应用最新的质量检测方案;使用的检测工具种类较多、工具检测规则较为复杂时,执行时间效率低;随着项目规模的增加,持续集成时间越来越长。
发明内容
有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种代码质量检测方法、装置、计算机设备及可读存储介质,旨在解决当前代码质量检测人力成本和时间成本较高,导致工具和规则库更新成本较高,执行和集成时间效率较低的问题。
本发明提供如下技术方案:
第一方面,本公开实施例中提供了一种代码质量检测方法,所述方法包括:
读取源代码文件并进行文件扫描,得到对应的源代码文件列表;
将所述源代码文件列表中的文件进行分类,生成对应的分类文件列表;
利用相应的代码检测工具分别对所述对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表;
获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,并缓存检测通过的源代码文件。
进一步地,所述源代码文件列表包括变更文件列表和全量文件列表,所述读取源代码文件并进行文件扫描,得到对应的源代码文件列表,包括:
读取所述源代码文件,并判定是否仅检测变更的源代码文件;
若是,则通过读取上次代码质量检测的缓存结果,得到所述变更文件列表;
若否,则对所述源代码文件进行全量扫描,得到所述全量文件列表。
进一步地,所述将所述源代码文件列表中的文件进行分类,生成对应的分类文件列表,包括:
将所述源代码文件列表中的文件按文件类型进行分类;
判定是否需要生成所述白名单,若否,按文件类型读取对应的白名单和最近一次检测通过的源文件缓存列表,根据所述白名单与所述源文件缓存列表过滤掉所述源代码文件列表中无需检测的源代码文件,生成对应需检测的分类文件列表。
进一步地,所述获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,包括:
获取异常文件列表,判定是否添加至所述白名单;
若是并且所述异常文件列表中存在执行异常的源代码文件,则将所述执行异常的源代码文件按文件类型写入对应类型的白名单中,结束检测并输出质量检测通过报告。
进一步地,所述获取异常的代码检测文件列表,判定是否添加至所述白名单之后,还包括:
若否,则遍历所述异常的代码检测文件列表,并通过所述白名单对所述异常的代码检测文件列表进行过滤;
判定过滤后的异常的代码检测文件列表中是否存在所述执行异常的源代码文件,若是,结束检测并输出质量检测异常报告;若否,结束检测并输出质量检测通过报告。
进一步地,所述获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,还包括:
获取正常文件列表,遍历所述正常文件列表,并检测是否在所述白名单中;
若是,则将所述正常文件列表中的正常文件从所述白名单中移除,待所有的质量检测任务完成后,结束检测并输出质量检测通过报告。
进一步地,所述将所述正常文件列表中的正常文件从所述白名单中移除之后,还包括:
将正常文件列表按类型写入对应的白名单缓存文件中,更新所述白名单缓存文件。
第二方面,本公开实施例中提供了一种代码质量检测装置,所述装置包括:
第一生成模块,用于读取源代码文件并进行文件扫描,得到对应的源代码文件列表;
第二生成模块,用于将所述源代码文件列表中的文件进行分类,生成对应的分类文件列表;
第三生成模块,用于利用相应的代码检测工具分别对所述对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表;
结果生成模块,用于获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,并缓存检测通过的源代码文件。
第三方面,本公开实施例中提供了一种计算机设备,用以解决当前的问题,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中所述的代码质量检测方法的步骤。
第四方面,本公开实施例中提供了一种计算机可读存储介质,用以解决当前的问题,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的代码质量检测方法的步骤。
本申请的实施例具有如下优点:
本申请实施例提供的代码质量检测方法,该方法包括:读取源代码文件并进行文件扫描,得到对应的源代码文件列表;将源代码文件列表中的文件进行分类,生成对应的分类文件列表;利用相应的代码检测工具分别对对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表;获取预先生成的白名单,并根据白名单进一步过滤,确定代码检测文件列表中的可处理文件的质量检测报告。通过预设的白名单模式、缓存策略等处理规则与逻辑,使得在任意时刻都可以以较低的人力和时间成本,快速的引入质量检测工具的最新版本或新增质量检测规则,并统一管理和高效并行执行多种质量检测任务。
为使本发明的上述目的、特征和优点能更明显和易懂,下文特举较佳实施例,并配合所附附图,做详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例提供的一种代码质量检测方法的流程图;
图2示出了本申请实施例提供的文件列表的流程图;
图3示出了本申请实施例提供的分类文件列表的流程图;
图4示出了本申请实施例提供的一种代码质量检测装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。相反,当元件被称作“直接在”另一元件“上”时,不存在中间元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在模板的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例1
如图1所示,为本申请实施例中的一种代码质量检测方法的流程图,本申请实施例提供的代码质量检测方法包括以下步骤:
步骤S110,读取源代码文件并进行文件扫描,得到对应的源代码文件列表。
在本实施例中,任务开始,启动代码质量检测程序。预先确定所需的代码质量检测工具、文件扫描的范围、白名单文件存放路径等基础信息,读取所需的针对具体项目的源代码文件,生成对应的文件列表。
在一种实施方式中,如图2所示,步骤S110包括:
步骤S111,读取所述源代码文件,并判定是否仅检测变更的源代码文件;
步骤S112,若是,则通过读取上次代码质量检测的缓存结果,得到所述变更文件列表;
步骤S113,若否,则对所述源代码文件进行全量扫描,得到所述全量文件列表。
具体地,读取所需的针对具体项目的源代码文件后,判定是否仅检测变更的源代码文件。若是,则读取上次代码质量检测的缓存结果,扫描发生变更的源代码文件,得到所述变更文件列表;若否,则对所述源代码文件进行全量扫描,得到所述全量文件列表,由所述变更文件列表和所述全量文件列表组成所述源代码文件列表。
基于缓存结果的比对,仅检测变更的源代码文件,从而大幅度节省了任务执行时间,并屏蔽了不同工具类型的差异。
步骤S120,将所述源代码文件列表中的文件进行分类,生成对应的分类文件列表。
进一步地,将源代码文件列表中的文件进行分类,以匹配给对应的代码检测工具处理。例如:“.ts/.tsx/.js/.jsx”类型的JavaScript文件调用ESLint、tsc等工具的接口处理;“.css/.less/.scss”类型的样式文件调用StyleLint等工具的接口处理;“.spec.js/.test.js”类型的单元测试文件调用Jest等单元测试工具的接口处理。可以理解的是,具体调用的代码检测工具可根据实际情况设定,本申请实施例对此不作限定。
在一种实施方式中,如图3所示,步骤S120包括:
步骤S121,将所述源代码文件列表中的文件按文件类型进行分类;
步骤S122,判定是否需要生成所述白名单,若否,按文件类型读取对应的白名单和最近一次检测通过的源文件缓存列表,根据所述白名单与所述源文件缓存列表过滤掉所述源代码文件列表中无需检测的源代码文件,生成对应需检测的分类文件列表。
具体地,将所述源代码文件列表中的文件按文件类型进行分类后,判定是否需要生成所述白名单,若否,按文件类型读取对应的白名单和最近一次检测通过的源文件缓存列表,根据所述白名单与所述源文件缓存列表过滤掉所述源代码文件列表中无需检测的源代码文件,生成过滤后的需检测的分类文件列表。
通过白名单过滤的方式,使得任意时刻都可以接入新的代码检测工具版本、新的代码检测规则,进而统一管理和高效并行执行多种质量检测任务。
步骤S130,利用相应的代码检测工具分别对所述对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表。
进一步地,根据取得的分类文件列表,判定各代码检测工具对应的任务是否存在可处理文件。若是则按分类文件列表启动对应的质量检测任务并并行执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表。
通过同时使用多种代码检测工具,可以从多种角度度量代码质量。通过调用各代码检测工具的API定制检测执行逻辑,实现并行执行质量检测任务,可以有效的避免重复检测,在二次执行存在缓存的情况下,对于长期开发的大型项目也可以在较短的时间内快速执行完毕质量检测任务,进一步提升了执行效率。
步骤S140,获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,并缓存检测通过的源代码文件。
具体地,获取进行代码检测后的异常文件列表,判定是否需要将其添加至所述白名单。若是并且所述异常文件列表中存在执行异常的源代码文件,则将所述执行异常的源代码文件按文件类型写入对应类型的白名单中,结束检测并输出质量检测通过报告,并缓存检测通过的源代码文件。若否,则遍历所述异常的代码检测文件列表,由于代码检测任务执行前已经通过白名单过滤过一次,但间接依赖检测到的源代码文件也可能会出现在异常文件列表中,故需再检测一次,因此需要并通过白名单对所述异常的代码检测文件列表再一次进行过滤,并判定过滤后的异常的代码检测文件列表中是否存在执行异常的源代码文件,若存在,根据异常文件列表及检测结果详情,输出质量检测异常报告,并触发通知告警任务,立即结束检测流程;若不存在,待全部代码检测任务均执行通过,则结束检测并输出质量检测通过报告,并缓存检测通过的源代码文件,同时报告白名单中的异常信息,以作为问题修复的参考依据。
进一步地,获取正常文件列表,遍历所述正常文件列表,并检测是否在所述白名单中;若是,则将所述正常文件列表中的正常文件从所述白名单中移除,并更新白名单缓存文件,将正常文件列表按类型写入对应的白名单缓存文件中,更新所述白名单缓存文件。待全部代码检测任务均执行通过,则结束检测并输出质量检测通过报告,同时报告白名单中的异常信息。
通过扫描存在异常的文件并生成至白名单中,则不会触发代码检测任务的告警,但仍会输出检测异常报告,故可按规划排期逐步安排修复计划。当白名单中的历史文件经过修改或重构后修复了所有异常问题,在代码提交时通过任务钩子自动触发代码检测任务的执行,则自动将其从白名单中移除,从而实现对已有项目开发规范的渐进式改造。使得在任意时刻都可以以较低的人力和时间成本,在项目中接入全新的代码检测方案,或对已有的代码检测方案执行版本更新、规则增改等。
本申请实施例提供的代码质量检测方法,通过读取源代码文件并进行文件扫描,得到对应的源代码文件列表;将源代码文件列表中的文件进行分类,生成对应的分类文件列表;利用相应的代码检测工具分别对对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表;获取预先生成的白名单,并根据白名单进一步过滤,确定代码检测文件列表中的可处理文件的质量检测报告。通过预设的白名单模式、缓存策略等处理规则与逻辑,使得在任意时刻都可以以较低的人力和时间成本,快速的引入质量检测工具的最新版本或新增质量检测规则,并统一管理和高效并行执行多种质量检测任务。
实施例2
如图4所示,为本申请实施例中的一种代码质量检测装置400的结构示意图,其装置包括:
第一生成模块410,用于读取源代码文件并进行文件扫描,得到对应的源代码文件列表;
第二生成模块420,用于将所述源代码文件列表中的文件进行分类,生成对应的分类文件列表;
第三生成模块430,用于利用相应的代码检测工具分别对所述对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表;
结果生成模块440,用于获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,并缓存检测通过的源代码文件。
可选地,上述代码质量检测装置还包括:
第一判定模块,用于读取所述源代码文件,并判定是否仅检测变更的源代码文件;
变更文件列表生成模块,用于若是,则通过读取上次代码质量检测的缓存结果,得到所述变更文件列表;
全量文件列表生成模块,用于若否,则对所述源代码文件进行全量扫描,得到所述全量文件列表。
可选地,上述代码质量检测装置还包括:
分类模块,用于将所述源代码文件列表中的文件按文件类型进行分类;
分类文件列表生成模块,用于判定是否需要生成所述白名单,若否,按文件类型读取对应的白名单和最近一次检测通过的源文件缓存列表,根据所述白名单与所述源文件缓存列表过滤掉所述源代码文件列表中无需检测的源代码文件,生成对应需检测的分类文件列表。
可选地,上述代码质量检测装置还包括:
第二判定模块,用于获取异常文件列表,判定是否添加至所述白名单;
第一检测通过报告生成模块,用于若是并且所述异常文件列表中存在执行异常的源代码文件,则将所述执行异常的源代码文件按文件类型写入对应类型的白名单中,结束检测并输出质量检测通过报告。
可选地,上述代码质量检测装置还包括:
过滤模块,用于若否,则遍历所述异常的代码检测文件列表,并通过所述白名单对所述异常的代码检测文件列表进行过滤;
检测报告生成模块,用于判定过滤后的异常的代码检测文件列表中是否存在所述执行异常的源代码文件,若是,结束检测并输出质量检测异常报告;若否,结束检测并输出质量检测通过报告。
可选地,上述代码质量检测装置还包括:
检测模块,用于获取正常文件列表,遍历所述正常文件列表,并检测是否在所述白名单中;
第二检测通过报告生成模块,用于若是,则将所述正常文件列表中的正常文件从所述白名单中移除,待所有的质量检测任务完成后,结束检测并输出质量检测通过报告。
可选地,上述代码质量检测装置还包括:
白名单缓存文件更新模块,用于将正常文件列表按类型写入对应的白名单缓存文件中,更新所述白名单缓存文件。
本申请实施例提供的代码质量检测装置,通过预先生成的白名单模式、缓存策略等处理规则与逻辑,使得在任意时刻都可以以较低的人力和时间成本,快速的引入质量检测工具的最新版本或新增质量检测规则,并统一管理和高效并行执行多种质量检测任务。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种代码质量检测方法,其特征在于,所述方法包括:
读取源代码文件并进行文件扫描,得到对应的源代码文件列表;
将所述源代码文件列表中的文件进行分类,生成对应的分类文件列表;
利用相应的代码检测工具分别对所述对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表;
获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,并缓存检测通过的源代码文件。
2.根据权利要求1所述的代码质量检测方法,其特征在于,所述源代码文件列表包括变更文件列表和全量文件列表,所述读取源代码文件并进行文件扫描,得到对应的源代码文件列表,包括:
读取所述源代码文件,并判定是否仅检测变更的源代码文件;
若是,则通过读取上次代码质量检测的缓存结果,得到所述变更文件列表;
若否,则对所述源代码文件进行全量扫描,得到所述全量文件列表。
3.根据权利要求2所述的代码质量检测方法,其特征在于,所述将所述源代码文件列表中的文件进行分类,生成对应的分类文件列表,包括:
将所述源代码文件列表中的文件按文件类型进行分类;
判定是否需要生成所述白名单,若否,按文件类型读取对应的白名单和最近一次检测通过的源文件缓存列表,根据所述白名单与所述源文件缓存列表过滤掉所述源代码文件列表中无需检测的源代码文件,生成对应需检测的分类文件列表。
4.根据权利要求1所述的代码质量检测方法,其特征在于,所述根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,包括:
获取异常文件列表,判定是否需要添加至所述白名单;
若是并且所述异常文件列表中存在执行异常的源代码文件,则将所述执行异常的源代码文件按文件类型写入对应类型的白名单中,结束检测并输出质量检测通过报告。
5.根据权利要求4所述的代码质量检测方法,其特征在于,所述获取异常的代码检测文件列表,判定是否添加至所述白名单之后,还包括:
若否,则遍历所述异常的代码检测文件列表,并通过所述白名单对所述异常的代码检测文件列表进行过滤;
判定过滤后的异常的代码检测文件列表中是否存在所述执行异常的源代码文件,若是,结束检测并输出质量检测异常报告;若否,结束检测并输出质量检测通过报告。
6.根据权利要求1或4所述的代码质量检测方法,其特征在于,所述获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,还包括:
获取正常文件列表,遍历所述正常文件列表,并检测是否在所述白名单中;
若是,则将所述正常文件列表中的正常文件从所述白名单中移除,待所有的质量检测任务完成后,结束检测并输出质量检测通过报告。
7.根据权利要求6所述的代码质量检测方法,其特征在于,所述将所述正常文件列表中的正常文件从所述白名单中移除之后,还包括:
将正常文件列表按类型写入对应的白名单缓存文件中,更新所述白名单缓存文件。
8.一种代码质量检测装置,其特征在于,所述装置包括:
第一生成模块,用于读取源代码文件并进行文件扫描,得到对应的源代码文件列表;
第二生成模块,用于将所述源代码文件列表中的文件进行分类,生成对应的分类文件列表;
第三生成模块,用于利用相应的代码检测工具分别对所述对应的分类文件列表进行可处理文件检测,并在存在可处理文件时启动对应的质量检测任务并执行,得到代码检测文件列表,所述代码检测文件列表包括正常文件列表和异常文件列表;
结果生成模块,用于获取预先生成的白名单,并根据所述白名单确定所述代码检测文件列表中的可处理文件的质量检测报告,并缓存检测通过的源代码文件。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的代码质量检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的代码质量检测方法的步骤。
CN202211294462.XA 2022-10-21 2022-10-21 代码质量检测方法、装置、计算机设备及可读存储介质 Pending CN115525565A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211294462.XA CN115525565A (zh) 2022-10-21 2022-10-21 代码质量检测方法、装置、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211294462.XA CN115525565A (zh) 2022-10-21 2022-10-21 代码质量检测方法、装置、计算机设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN115525565A true CN115525565A (zh) 2022-12-27

Family

ID=84703344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211294462.XA Pending CN115525565A (zh) 2022-10-21 2022-10-21 代码质量检测方法、装置、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN115525565A (zh)

Similar Documents

Publication Publication Date Title
US8140911B2 (en) Dynamic software tracing
CN108804326B (zh) 一种软件代码自动检测方法
CN103235759A (zh) 测试用例生成方法和装置
CN110188036A (zh) 一种软件测试方法及装置
JP2020102209A (ja) ソフトウェアプログラム不良位置の識別
CN114116496A (zh) 自动化测试方法、装置、设备及介质
CN115269444A (zh) 代码静态检测方法、装置及服务器
KR101834247B1 (ko) 전장용 소프트웨어 안전성 분석 방법 및 장치
CN107102938B (zh) 测试脚本的更新方法及装置
CN108874662A (zh) 测试方法和存储程序的非暂态计算机可读介质
CN108763092B (zh) 一种基于交叉验证的代码缺陷检测方法及装置
CN115525565A (zh) 代码质量检测方法、装置、计算机设备及可读存储介质
CN109376285B (zh) 基于json格式的数据排序验证方法、电子设备及介质
CN111382052A (zh) 代码质量评价方法、装置及电子设备
CN112527634B (zh) 程序划分方法及装置、软件测试方法及平台
CN110471829B (zh) 软件代码测试覆盖率的检查方法及装置
CN111352825B (zh) 数据接口的测试方法、装置及服务器
CN110442370A (zh) 一种测试用例查询方法及装置
CN112486823B (zh) 错误码的校验方法、装置、电子设备及可读存储介质
CN113419893B (zh) 内存泄漏查证方法、装置、电子设备和存储介质
CN110825650B (zh) 单元测试覆盖精度检测方法及装置
CN115495375A (zh) 一种软件缺陷预测方法及装置
CN117992350A (zh) 代码测试覆盖率的监测方法、装置及电子设备
CN118275795A (zh) 非用例信号排错系统和非用例信号排错系统的排错方法
CN114238080A (zh) 一种软件项目质量的预测方法、预测系统及介质

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