CN110231937A - 脚本缺陷扫描方法、装置、计算机设备和存储介质 - Google Patents

脚本缺陷扫描方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110231937A
CN110231937A CN201910419265.8A CN201910419265A CN110231937A CN 110231937 A CN110231937 A CN 110231937A CN 201910419265 A CN201910419265 A CN 201910419265A CN 110231937 A CN110231937 A CN 110231937A
Authority
CN
China
Prior art keywords
code
script
inspection
task
read
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
CN201910419265.8A
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910419265.8A priority Critical patent/CN110231937A/zh
Priority to PCT/CN2019/103156 priority patent/WO2020232883A1/zh
Publication of CN110231937A publication Critical patent/CN110231937A/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/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

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

Abstract

本申请涉及一种脚本缺陷扫描方法、装置、计算机设备和存储介质。所述方法包括:当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;根据代码脚本中的代码标识,获取与代码标识对应的预设检查点;生成与获取到的预设检查点对应的检查任务流;按照所述检查任务流中的任务顺序读取检查任务;根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。采用本方法无需人工对提交的代码脚本进行检查,直接按照任务顺序从检查任务流中读取检查任务,根据读取到的检查任务对代码脚本进行扫描,得到各预设检查点分别对应的扫描结果,提高了对代码脚本缺陷的检查效率。

Description

脚本缺陷扫描方法、装置、计算机设备和存储介质
技术领域
本申请涉及信息处理技术领域,特别是涉及一种脚本缺陷扫描方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了信息处理技术,信息处理技术中若要使信息通过计算机进行处理,需要通过软件代码来实现,通过运行编写好的软件代码实现通过计算机对信息的处理功能。
然而,在根据软件代码编写完成后,在提交代码时,都需要对提交的代码的规范性进行检查,在检查过程中需要对很多检查点进行检查,才能保证提交的代码的规范性。传统的代码规范性检查,都是通过人工检查的,人工检查会使得规范性检查的准确性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高代码脚本的规范性检查准确性的脚本缺陷扫描方法、装置、计算机设备和存储介质。
一种脚本缺陷扫描方法,所述方法包括:
当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;
根据所述代码脚本中的代码标识,获取与所述代码标识对应的预设检查点;
生成与获取到的预设检查点对应的检查任务流;
按照所述检查任务流中的任务顺序读取检查任务;
根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
一种脚本缺陷扫描装置,所述装置包括:
脚本获取模块,用于当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;
检查点获取模块,用于根据所述代码脚本中的代码标识,获取与所述代码标识对应的预设检查点;
任务流生成模块,用于生成与获取到的预设检查点对应的检查任务流;
任务读取模块,用于按照所述检查任务流中的任务顺序读取检查任务;
代码扫描模块,用于根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;
根据所述代码脚本中的代码标识,获取与所述代码标识对应的预设检查点;
生成与获取到的预设检查点对应的检查任务流;
按照所述检查任务流中的任务顺序读取检查任务;
根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;
根据所述代码脚本中的代码标识,获取与所述代码标识对应的预设检查点;
生成与获取到的预设检查点对应的检查任务流;
按照所述检查任务流中的任务顺序读取检查任务;
根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
上述脚本缺陷扫描方法、装置、计算机设备和存储介质,在获取到提交的代码脚本后,根据所述代码脚本中的代码标识,获取与所述代码标识对应的预设检查点,生成与获取到的预设检查点对应的检查任务流,检查任务流中包括各预设检查点分别对应的检查任务。无需人工对提交的代码脚本进行检查,直接按照任务顺序从检查任务流中读取检查任务,根据读取到的检查任务对代码脚本进行扫描,得到各预设检查点分别对应的扫描结果,提高了对代码脚本缺陷的检查效率。
附图说明
图1为一个实施例中脚本缺陷扫描方法的应用场景图;
图2为一个实施例中脚本缺陷扫描方法的流程示意图;
图3为一个实施例中提取代码脚本的步骤的流程示意图;
图4为一个实施例中生成检查任务流的步骤的流程示意图;
图5为一个实施例中得到缺陷扫描结果的步骤的流程示意图;
图6为一个实施例中发送代码缺陷通知的步骤的流程示意图;
图7为一个实施例中修改代码脚本的步骤的流程示意图;
图8为一个实施例中脚本缺陷扫描装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的脚本缺陷扫描方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器104上运行有脚本管理平台。
在一个实施例中,如图2所示,提供了一种脚本缺陷扫描方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202,当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本。
具体的,终端显示有代码脚本编辑页面,代码脚本编辑页面中录入有代码,代码脚本编辑页面中设置有代码脚本提交按钮。终端检测到代码脚本提交按钮的点击操作时,获取代码脚本编辑页面中的代码,根据获取到的代码生成代码脚本,将代码脚本提交至服务器。服务器接收终端提交的代码脚本,将提交的代码脚本存储至代码脚本管理平台对应的数据库中。
在一个实施例中,服务器接收终端发送的代码提交请求,对代码提交请求进行解析,通过解析提取代码提交请求中开发人员账号和代码脚本标识,根据开发人员账号和代码脚本标识生成代码拉取请求,将代码拉取请求发送至以开发人员账号登录的终端。终端在接收到代码拉取请求后,对代码拉取请求进行解析,通过解析提取代码拉取请求中的开发人员账号和代码脚本标识,对开发人员账号进行验证,验证通过后,查询与代码脚本标识对应的代码脚本,将查询到的代码脚本发送至服务器。服务器接收以开发人员账号登录的终端根据代码拉取请求,返回的代码脚本。
S204,根据代码脚本中的代码标识,获取与代码标识对应的预设检查点。
其中,预设检查点为预设的对代码脚本中需要检查的检查位置。
具体地,服务器设置了多个对代码脚本进行检查的预设检查点。服务器在获取到代码脚本时,确定代码脚本中的代码标识,查询与代码标识对应的预设检查点。不同的代码标识对应的预设检查点不同。例如,代码标识包括函数类名称,不同的函数类名称对应的预设检查点不同。
在一个实施例中,服务器定期获取提交的代码脚本的提交记录,根据提交记录的时间筛选晚于上次获取代码脚本的时间,所对应的提交记录,提取筛选到的代码提交记录中的代码标识,根据提取到的代码标识获取新增的代码脚本。
S206,生成与获取到的预设检查点对应的检查任务流。
具体地,服务器获取到预设检查点后,查询各预设检查点各自对应的检查指令,根据各检查指令创建各预设检查点对应的检查任务,按照预设检查点的检查顺序对创建的检查任务进行排列,得到检查任务流。检查任务流中的检查任务以预设检查点的检查顺序作为任务顺序进行排列。S208,按照检查任务流中的任务顺序读取检查任务。
具体地,服务器在创建检查任务流后,按照检查任务流中的任务顺序从检查任务流中读取检查任务。
在一个实施例中,当有多个检查任务流时,调用多个进程并行读取各检查任务流中的检查任务。
S210,根据读取到的检查任务对代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
具体地,服务器在读取到检查任务时,从读取到的检查任务中提取检查指令,根据检查指令提取缺陷检查数据,根据缺陷检查数据对代码脚本进行扫描,得到各预设检查点的缺陷扫描结果。服务器根据缺陷扫描结果生成脚本缺陷报告。缺陷扫描结果为表示是否存在缺陷的信息。
本实施例中,在获取到提交的代码脚本后,根据代码脚本中的代码标识,获取与代码标识对应的预设检查点,生成与获取到的预设检查点对应的检查任务流,检查任务流中包括各预设检查点分别对应的检查任务。无需人工对提交的代码脚本进行检查,直接按照任务顺序从检查任务流中读取检查任务,根据读取到的检查任务对代码脚本进行扫描,得到各预设检查点分别对应的扫描结果,从而生成脚本缺陷报告,提高了对代码脚本缺陷的检查效率。
如图3所示,在一个实施例中,S202具体包括提取代码脚本的步骤,该步骤具体包括以下内容:
S302,当检测到代码编辑页面中的代码脚本提交按钮被点击时,读取各脚本部分标识分别对应的脚本提交时间;脚本部分标识与所述脚本提交时间一一对应。
具体地,当检测到代码编辑页面中的代码脚本提交按钮被点击时,服务器的数据库中存储着所有提交的代码脚本和脚本提交时间,提交的代码脚本由多个脚本部分组成,每个脚本部分可以单独提交,每个脚本部分提交时,将提交的脚本部分的脚本部分标识与脚本提交时间对应存储。服务器从存储的脚本部分标识和脚本提交时间中,获取各脚本部分标识分别对应的脚本提交时间。
S304,确定属于预设时间段内的脚本提交时间所对应的脚本部分标识。
具体地,服务器将判断各脚本标识分别对应的脚本提交时间是否属于预设时间段,筛选属于预设时间段内的脚本提交时间所对应的脚本部分标识,筛选到的脚本部分标识为预设时间段内提交到的脚本部分的标识。预设时间段可以为最近一段时间段,还可以为指定时间段。
S306,从代码脚本库中提取与确定的脚本部分标识对应的脚本部分。
具体地,服务器中的代码脚本库中存储着提交的代码脚本。服务器确定脚本部分标识后,从代码脚本库中查询与确定的脚本部分标识对应的脚本部分。提取查询到的脚本部分,以提取到的脚本部分作为获取到的代码脚本。
本实施例中,通过记录各脚本部分的脚本提交时间,按照脚本提交时间筛选属于预设时间段内的脚本提交时间提交的脚本部分,无需等待完整的代码脚本被提交,才能对代码脚本进行检查,可以对脚本部分进行单独检查,提高了代码脚本的检查效率。
如图4所示,在一个实施例中,S206包括生成检查任务流的步骤,该步骤具体包括以下内容:
S402,遍历检查节点树中的检查节点;检查节点树为根据所述预设检查点的检查适用范围级别的大小顺序构建的。
其中,检查节点树为根据预设检查点之间的检查适用范围级别构建,检查节点树的每个节点对应一个检查任务,每个检查任务对应一个预设检查点。检查适用范围级别为预设检查点的检查范围的级别,检查适用范围级别包括代码脚本文件的全篇检查、指定脚本部分的检查和指定脚本部分中的一类代码进行检查中的至少一种。
S404,创建与遍历到的检查节点树中的检查节点对应的检查任务。
具体地,服务器对检查节点树中的检查节点树中的检查节点,读取遍历到的检查节点中检查信息,根据读取到的检查信息创建与检查节点对应的检查任务。检查信息中可以包括检查指令。
S406,按照遍历顺序根据创建的检查任务构成检查任务流。
具体地,服务器在对检查节点树中的检查节点遍历时,记录遍历顺序,按照记录的遍历顺序对创建的检查任务进行排列,根据排列的检查任务构成检查任务流。
本实施例中,通过对根据预设检查点之间的检查适用范围级别构建的检查节点树进行遍历,根据遍历到的检查节点创建检查任务,按照遍历顺序和创建的检查任务构成检查任务流,提高了检查任务流的生成效率。
如图5所示,在一个实施例中,S210具体包括得到缺陷扫描结果的步骤,该步骤具体包括以下内容:
S502,解析读取到的检查任务的检查类型。
具体地,服务器对读取到的检查任务解析,通过解析从读取到的检查任务中读取检查类型。检查类型为对提交的代码脚本进行检查的类型,检查类型具体可以包括参数检查类型、名称规范检查类型和代码规范检查类型中的至少一种。当检查类型为名称规范检查类型时,查询与检查任务中名称检查类型对应的名称规范检查文件,识别代码脚本中的函数名称,根据名称规范检查文件对识别到的函数名称进行规范检查,得到名称规范检查结果,名称规范检查结果为检查任务所对应的缺陷扫描结果。当检查类型为代码规范检查类型时,查询与检查任务中代码规范检查类型对应的代码规范检查文件,按照代码规范检查文件对代码脚本中代码进行规范性检查,得到代码规范检查结果,代码规范检查结果为检查任务所对应的缺陷扫描结果。
S504,当检查类型为参数检查类型时,查询与检查任务对应的规范检查文件。
具体地,服务器在解析得到检查类型为参数检查类型时,提取检查任务中的检查文件标识,查询与提取到的检查文件标识对应的规范检查文件。规范检查文件中包括对参数的规范性的信息。
S506,根据规范检查文件生成参数调用指令。
具体地,服务器在规范检查文件中的参数类型,对参数类型进行封装,通过封装生成参数调用指令。参数调用指令用于获取代码脚本的配置参数的指令。
S508,根据参数调用指令获取代码脚本的配置参数。
具体地,服务器提取参数调用指令中的参数类型,在代码脚本中查询与参数类型匹配的配置参数,获取查询到的配置参数。
在一个实施例中,服务器获取代码脚本对应的参数配置文件,从参数配置文件中查询与参数调用指令中的参数类型匹配的配置参数,获取查询到的配置参数。
S510,按照规范检查文件对获取到的配置参数进行扫描检查,得到读取到的检查任务所对应的缺陷扫描结果。
具体地,服务器按照规范检查文件对获取到配置参数进行扫描检查,提取规范检查中规范配置参数,将规范配置参数与获取到的配置参数比较,确定配置参数的缺陷扫描结果,根据确定的缺陷扫描结果生成脚本缺陷报告。
本实施例中,当检查任务中的检查类型为参数类型时,根据检查任务对应的规范检查文件对代码脚本的配置参数进行扫描检查,得到读取到的检查任务所对应的缺陷扫描结果,可以根据指定的检查类型对代码脚本进行缺陷扫描,提高了缺陷扫描的准确性。
如图6所示,S210之后具体还包括发送代码缺陷通知的步骤,该步骤具体包括以下内容:
S602,提取缺陷扫描结果中代码缺陷对应的代码位置。
具体地,服务器对缺陷扫描结果进行解析,通过解析确定缺陷扫描结果中的代码缺陷,从缺陷扫描结果中提取与确定的代码缺陷对应的代码位置。代码位置为代码缺陷在代码脚本中的位置。
S604,查询与提取到的代码位置对应的开发者账号。
具体地,服务器中存储着各脚本部分标识分别对应的开发者账号。服务器在提取到代码位置后,确定提取到的代码位置对应的脚本部分标识,查询确定的脚本部分标识对应的开发者账号。
S606,生成与开发者账号对应的代码缺陷通知。
具体地,服务器对代码缺陷和代码位置进行封装,通过封装生成与开发者账号对应的代码缺陷通知。代码缺陷通知中还可以包括代码位置所属脚本部分的脚本部分标识。
S608,将代码缺陷通知发送至以开发者账号登录的终端。
具体地,服务器在生成代码缺陷通知后,获取以开发者账号登录的终端所对应的终端标识,根据标识将代码缺陷通知发送至以开发者账号登录的终端。
本实施例中,可以根据缺陷扫描结果中代码缺陷对应代码位置,确定开发者账号,生成与开发者账号对应的代码缺陷通知,将代码缺陷通知发送至以开发者账号登录的终端,以确定开发者了解到开发中出现的代码缺陷。
如图7所示,在一个实施例中,S608之后还包括修改代码脚本的步骤,该步骤具体包括以下内容:
S702,接收以开发者账号登录的终端,根据代码缺陷通知返回的代码修改指令。
具体地,以开发者账号登录的终端接收到代码缺陷通知后,提取代码缺陷通知中的脚本部分标识,针对脚本部分标识中的代码缺陷录入修改信息,根据修改信息和代码修改位置生成代码修改指令,将代码修改指令发送至服务器。服务器接收以开发者账号登录的终端发送的代码修改指令。
S704,提取代码修改指令中修改信息和代码修改位置。
具体地,服务器在接收到代码修改指令后,对代码修改指令进行解析,通过解析得到修改信息和代码修改位置。
S706,确定代码修改位置对应的部分代码脚本。
具体地,服务器确定代码修改位置所属的代码脚本,在代码脚本中确定代码修改位置对应的部分代码脚本,提取确定的部分代码脚本。
S708,按照修改信息对部分代码脚本进行修改。
具体地,服务器提取修改信息中修改后的代码,在部分代码脚本中确定待修改代码,将待修改代码替换为修改后的代码,将修改后的部分代码脚本重新提交。
本实施例中,在接收到以开发者账号登录的终端发送的代码修改指令后,可以根据代码修改指令中的代码修改位置和修改信息对部分代码脚本进行修改,提高了对代码脚本修改的便利性,从而保证提交的代码脚本的正确性。
在一个实施例中,脚本缺陷扫描方法还包括:接收检查点添加指令;提取检查点添加指令中的权限验证信息;通过权限配置表中的检查点添加权限信息对权限验证信息进行验证;当对权限验证信息验证通过后,则提取检查点添加指令中的脚本规范信息;根据脚本规范信息创建检查点。
具体地,服务器接收检查点添加指令,对检查点添加指令进行解析,通过解析得到权限验证信息和脚本规范信息。服务器提取权限配置表,根据权限配置表中存储的检查点添加权限信息对权限验证信息进行验证,当对权限验证信息验证通过后,根据脚本规范信息创建检查点,将创建的检查点添加到检查点库中。
本实施例中,在对检查点添加指令中的权限验证信息验证通过后,根据建检查点添加指令中脚本规范信息创建检查点,可以对检查点进行添加,保证了检查点对提交的代码脚本的准确性。
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种脚本缺陷扫描装置800,包括:脚本获取模块802、检查点获取模块804、任务流生成模块806、任务读取模块808和代码扫描模块810,其中:
脚本获取模块802,用于当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本。
检查点获取模块804,用于根据代码脚本中的代码标识,获取与代码标识对应的预设检查点。
任务流生成模块806,用于生成与获取到的预设检查点对应的检查任务流。
任务读取模块808,用于按照检查任务流中的任务顺序读取检查任务。
代码扫描模块810,用于根据读取到的检查任务对代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
在一个实施例中,脚本获取模块802还用于当检测到代码编辑页面中的代码脚本提交按钮被点击时,读取各脚本部分标识分别对应的脚本提交时间;所述脚本部分标识与所述脚本提交时间一一对应;确定属于预设时间段内的脚本提交时间所对应的脚本部分标识;从代码脚本库中提取与确定的脚本部分标识对应的脚本部分。
在一个实施例中,任务流生成模块806还用于遍历检查节点树中的检查节点;所述检查节点树为根据所述预设检查点的检查适用范围级别的大小顺序构建的;创建与遍历到的检查节点树中的检查节点对应的检查任务;按照遍历顺序根据创建的检查任务构成检查任务流。
在一个实施例中,代码扫描模块810还用于解析读取到的检查任务的检查类型;当检查类型为参数检查类型时,查询与检查任务对应的规范检查文件;根据规范检查文件生成参数调用指令;根据参数调用指令获取代码脚本的配置参数;按照规范检查文件对获取到的配置参数进行扫描检查,得到当检测到代码编辑页面中的代码脚本提交按钮被点击时。
在一个实施例中,脚本缺陷扫描装置800还包括通知发送模块和代码修改模块。
通知发送模块还用于提取缺陷扫描结果中代码缺陷对应的代码位置;查询与提取到的代码位置对应的开发者账号;生成与开发者账号对应的代码缺陷通知;将代码缺陷通知发送至以开发者账号登录的终端。
代码修改模块还用于接收以开发者账号登录的终端,根据代码缺陷通知返回的代码修改指令;提取代码修改指令中修改信息和代码修改位置;确定代码修改位置对应的部分代码脚本;按照修改信息对部分代码脚本进行修改。
在一个实施例中,脚本缺陷扫描装置800还包括检查点创建模块。
检查点创建模块还用于接收检查点添加指令;提取检查点添加指令中的权限验证信息;通过权限配置表中的检查点添加权限信息对权限验证信息进行验证;当对权限验证信息验证通过后,则提取检查点添加指令中的脚本规范信息;根据脚本规范信息创建检查点。
本实施例中,在获取到提交的代码脚本后,获取预设检查点,生成与获取到的预设检查点对应的检查任务流,检查任务流中包括各预设检查点分别对应的检查任务。无需人工对提交的代码脚本进行检查,直接按照任务顺序从检查任务流中读取检查任务,根据读取到的检查任务对代码脚本进行扫描,得到各预设检查点分别对应的缺陷扫描结果,提高了对代码脚本缺陷的检查效率。
关于脚本缺陷扫描装置的具体限定可以参见上文中对于脚本缺陷扫描方法的限定,在此不再赘述。上述脚本缺陷扫描装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储代码脚本。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种脚本缺陷扫描方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;根据代码脚本中的代码标识,获取与代码标识对应的预设检查点;生成与获取到的预设检查点对应的检查任务流;按照检查任务流中的任务顺序读取检查任务;根据读取到的检查任务对代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
在一个实施例中,当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本包括:读取各脚本部分标识分别对应的脚本提交时间;所述脚本部分标识与所述脚本提交时间一一对应;确定属于预设时间段内的脚本提交时间所对应的脚本部分标识;从代码脚本库中提取与确定的脚本部分标识对应的脚本部分。
在一个实施例中,生成与获取到的预设检查点对应的检查任务流包括:遍历检查节点树中的检查节点;所述检查节点树为根据所述预设检查点的检查适用范围级别的大小顺序构建的;创建与遍历到的检查节点树中的检查节点对应的检查任务;按照遍历顺序根据创建的检查任务构成检查任务流。
在一个实施例中,根据读取到的检查任务对代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果包括:解析读取到的检查任务的检查类型;当检查类型为参数检查类型时,查询与检查任务对应的规范检查文件;根据规范检查文件生成参数调用指令;根据参数调用指令获取代码脚本的配置参数;按照规范检查文件对获取到的配置参数进行扫描检查,得到读取到的检查任务所对应的缺陷扫描结果。
在一个实施例中,根据读取到的检查任务对代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果之后,处理器执行计算机程序时还实现以下步骤:提取缺陷扫描结果中代码缺陷对应的代码位置;查询与提取到的代码位置对应的开发者账号;生成与开发者账号对应的代码缺陷通知;将代码缺陷通知发送至以开发者账号登录的终端。
在一个实施例中,将代码缺陷通知发送至以开发者账号登录的终端之后,处理器执行计算机程序时还实现以下步骤:接收以开发者账号登录的终端,根据代码缺陷通知返回的代码修改指令;提取代码修改指令中修改信息和代码修改位置;确定代码修改位置对应的部分代码脚本;按照修改信息对部分代码脚本进行修改。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收检查点添加指令;提取检查点添加指令中的权限验证信息;通过权限配置表中的检查点添加权限信息对权限验证信息进行验证;当对权限验证信息验证通过后,则提取检查点添加指令中的脚本规范信息;根据脚本规范信息创建检查点。
本实施例中,在获取到提交的代码脚本后,获取预设检查点,生成与获取到的预设检查点对应的检查任务流,检查任务流中包括各预设检查点分别对应的检查任务。无需人工对提交的代码脚本进行检查,直接按照任务顺序从检查任务流中读取检查任务,根据读取到的检查任务对代码脚本进行扫描,得到各预设检查点分别对应的扫描结果,提高了对代码脚本缺陷的检查效率。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;根据代码脚本中的代码标识,获取与代码标识对应的预设检查点;生成与获取到的预设检查点对应的检查任务流;按照检查任务流中的任务顺序读取检查任务;根据读取到的检查任务对代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
在一个实施例中,当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本包括:当检测到代码编辑页面中的代码脚本提交按钮被点击时,读取各脚本部分标识分别对应的脚本提交时间;所述脚本部分标识与所述脚本提交时间一一对应;确定属于预设时间段内的脚本提交时间所对应的脚本部分标识;从代码脚本库中提取与确定的脚本部分标识对应的脚本部分。
在一个实施例中,生成与获取到的预设检查点对应的检查任务流包括:遍历检查节点树中的检查节点;所述检查节点树为根据所述预设检查点的检查适用范围级别的大小顺序构建的;创建与遍历到的检查节点树中的检查节点对应的检查任务;按照遍历顺序根据创建的检查任务构成检查任务流。
在一个实施例中,根据读取到的检查任务对代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果包括:解析读取到的检查任务的检查类型;当检查类型为参数检查类型时,查询与检查任务对应的规范检查文件;根据规范检查文件生成参数调用指令;根据参数调用指令获取代码脚本的配置参数;按照规范检查文件对获取到的配置参数进行扫描检查,得到读取到的检查任务所对应的缺陷扫描结果。
在一个实施例中,根据读取到的检查任务对代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果之后,计算机程序被处理器执行时还实现以下步骤:提取缺陷扫描结果中代码缺陷对应的代码位置;查询与提取到的代码位置对应的开发者账号;生成与开发者账号对应的代码缺陷通知;将代码缺陷通知发送至以开发者账号登录的终端。
在一个实施例中,将代码缺陷通知发送至以开发者账号登录的终端之后,计算机程序被处理器执行时还实现以下步骤:接收以开发者账号登录的终端,根据代码缺陷通知返回的代码修改指令;提取代码修改指令中修改信息和代码修改位置;确定代码修改位置对应的部分代码脚本;按照修改信息对部分代码脚本进行修改。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收检查点添加指令;提取检查点添加指令中的权限验证信息;通过权限配置表中的检查点添加权限信息对权限验证信息进行验证;当对权限验证信息验证通过后,则提取检查点添加指令中的脚本规范信息;根据脚本规范信息创建检查点。
本实施例中,在获取到提交的代码脚本后,获取预设检查点,生成与获取到的预设检查点对应的检查任务流,检查任务流中包括各预设检查点分别对应的检查任务。无需人工对提交的代码脚本进行检查,直接按照任务顺序从检查任务流中读取检查任务,根据读取到的检查任务对代码脚本进行扫描,得到各预设检查点分别对应的扫描结果,提高了对代码脚本缺陷的检查效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种脚本缺陷扫描方法,所述方法包括:
当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;
根据所述代码脚本中的代码标识,获取与所述代码标识对应的预设检查点;
生成与获取到的预设检查点对应的检查任务流;
按照所述检查任务流中的任务顺序读取检查任务;
根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
2.根据权利要求1所述的方法,其特征在于,所述当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本包括:
当检测到代码编辑页面中的代码脚本提交按钮被点击时,读取各脚本部分标识分别对应的脚本提交时间;所述脚本部分标识与所述脚本提交时间一一对应;
确定属于预设时间段内的脚本提交时间所对应的脚本部分标识;
从代码脚本库中提取与确定的脚本部分标识对应的脚本部分。
3.根据权利要求1所述的方法,其特征在于,所述生成与获取到的预设检查点对应的检查任务流包括:
遍历检查节点树中的检查节点;所述检查节点树为根据所述预设检查点的检查适用范围级别的大小顺序构建的;
创建与遍历到的检查节点树中的检查节点对应的检查任务;
按照遍历顺序根据创建的检查任务构成检查任务流。
4.根据权利要求1所述的方法,其特征在于,所述根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果包括:
解析读取到的检查任务的检查类型;
当检查类型为参数检查类型时,查询与检查任务对应的规范检查文件;
根据所述规范检查文件生成参数调用指令;
根据所述参数调用指令获取所述代码脚本的配置参数;
按照所述规范检查文件对获取到的配置参数进行扫描检查,得到读取到的检查任务所对应的缺陷扫描结果。
5.根据权利要求1所述的方法,其特征在于,所述根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果之后,还包括:
提取所述缺陷扫描结果中代码缺陷对应的代码位置;
查询与提取到的代码位置对应的开发者账号;
生成与所述开发者账号对应的代码缺陷通知;
将所述代码缺陷通知发送至以所述开发者账号登录的终端。
6.根据权利要求5所述的方法,其特征在于,所述将所述代码缺陷通知发送至以所述开发者账号登录的终端之后,还包括:
接收以所述开发者账号登录的终端,根据所述代码缺陷通知返回的代码修改指令;
提取所述代码修改指令中修改信息和代码修改位置;
确定所述代码修改位置对应的部分代码脚本;
按照所述修改信息对所述部分代码脚本进行修改。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
接收检查点添加指令;
提取所述检查点添加指令中的权限验证信息;
通过权限配置表中的检查点添加权限信息对权限验证信息进行验证;
当对权限验证信息验证通过后,则提取检查点添加指令中的脚本规范信息;
根据所述脚本规范信息创建检查点。
8.一种脚本缺陷扫描装置,其特征在于,所述装置包括:
脚本获取模块,用于当检测到代码编辑页面中的代码脚本提交按钮被点击时,获取提交的代码脚本;
检查点获取模块,用于根据所述代码脚本中的代码标识,获取与所述代码标识对应的预设检查点;
任务流生成模块,用于生成与获取到的预设检查点对应的检查任务流;
任务读取模块,用于按照所述检查任务流中的任务顺序读取检查任务;
代码扫描模块,用于根据读取到的检查任务对所述代码脚本进行扫描,得到读取到的检查任务所对应的缺陷扫描结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201910419265.8A 2019-05-20 2019-05-20 脚本缺陷扫描方法、装置、计算机设备和存储介质 Pending CN110231937A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910419265.8A CN110231937A (zh) 2019-05-20 2019-05-20 脚本缺陷扫描方法、装置、计算机设备和存储介质
PCT/CN2019/103156 WO2020232883A1 (zh) 2019-05-20 2019-08-29 脚本缺陷扫描方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910419265.8A CN110231937A (zh) 2019-05-20 2019-05-20 脚本缺陷扫描方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN110231937A true CN110231937A (zh) 2019-09-13

Family

ID=67860844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910419265.8A Pending CN110231937A (zh) 2019-05-20 2019-05-20 脚本缺陷扫描方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN110231937A (zh)
WO (1) WO2020232883A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879883A (zh) * 2019-11-29 2020-03-13 杭州迪普科技股份有限公司 软件缺陷的修复授权方法、装置、计算机设备及存储介质
CN111078568A (zh) * 2019-12-20 2020-04-28 广州华多网络科技有限公司 代码规范方法、装置、计算机设备和存储介质
CN111309631A (zh) * 2020-03-16 2020-06-19 深信服科技股份有限公司 一种代码审计方法、装置、设备及计算机可读存储介质
CN113568681A (zh) * 2021-07-29 2021-10-29 北京搜房科技发展有限公司 代码执行方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535704B (zh) * 2021-07-30 2024-06-14 数网金融有限公司 一种扫描方法、装置、设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092761A (zh) * 2013-02-05 2013-05-08 烽火通信科技股份有限公司 基于差异信息文件识别和检查修改代码块的方法及装置
CN104133768A (zh) * 2014-07-28 2014-11-05 中国银行股份有限公司 一种程序代码复查方法和装置
CN105159831A (zh) * 2015-08-31 2015-12-16 浪潮集团有限公司 一种软件代码质量自动监控方法
CN106445804A (zh) * 2016-08-24 2017-02-22 北京奇虎测腾安全技术有限公司 一种基于序列化中间表示的源代码云检测系统及方法
CN108304327A (zh) * 2018-02-02 2018-07-20 平安证券股份有限公司 静态代码扫描结果处理方法和装置
US10169202B2 (en) * 2016-10-28 2019-01-01 International Business Machines Corporation Code component debugging in an application program
CN109117633A (zh) * 2018-08-13 2019-01-01 百度在线网络技术(北京)有限公司 静态源码扫描方法、装置、计算机设备及存储介质
CN109343890A (zh) * 2018-08-17 2019-02-15 武汉精立电子技术有限公司 一种代码集成方法及系统
CN109359028A (zh) * 2018-08-22 2019-02-19 平安科技(深圳)有限公司 代码质量监控方法、装置、计算机设备及存储介质
CN109711802A (zh) * 2018-12-14 2019-05-03 深圳壹账通智能科技有限公司 项目信息处理方法、装置、计算机设备和存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092761A (zh) * 2013-02-05 2013-05-08 烽火通信科技股份有限公司 基于差异信息文件识别和检查修改代码块的方法及装置
CN104133768A (zh) * 2014-07-28 2014-11-05 中国银行股份有限公司 一种程序代码复查方法和装置
CN105159831A (zh) * 2015-08-31 2015-12-16 浪潮集团有限公司 一种软件代码质量自动监控方法
CN106445804A (zh) * 2016-08-24 2017-02-22 北京奇虎测腾安全技术有限公司 一种基于序列化中间表示的源代码云检测系统及方法
US10169202B2 (en) * 2016-10-28 2019-01-01 International Business Machines Corporation Code component debugging in an application program
CN108304327A (zh) * 2018-02-02 2018-07-20 平安证券股份有限公司 静态代码扫描结果处理方法和装置
CN109117633A (zh) * 2018-08-13 2019-01-01 百度在线网络技术(北京)有限公司 静态源码扫描方法、装置、计算机设备及存储介质
CN109343890A (zh) * 2018-08-17 2019-02-15 武汉精立电子技术有限公司 一种代码集成方法及系统
CN109359028A (zh) * 2018-08-22 2019-02-19 平安科技(深圳)有限公司 代码质量监控方法、装置、计算机设备及存储介质
CN109711802A (zh) * 2018-12-14 2019-05-03 深圳壹账通智能科技有限公司 项目信息处理方法、装置、计算机设备和存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879883A (zh) * 2019-11-29 2020-03-13 杭州迪普科技股份有限公司 软件缺陷的修复授权方法、装置、计算机设备及存储介质
CN111078568A (zh) * 2019-12-20 2020-04-28 广州华多网络科技有限公司 代码规范方法、装置、计算机设备和存储介质
CN111078568B (zh) * 2019-12-20 2023-10-31 广州华多网络科技有限公司 代码规范方法、装置、计算机设备和存储介质
CN111309631A (zh) * 2020-03-16 2020-06-19 深信服科技股份有限公司 一种代码审计方法、装置、设备及计算机可读存储介质
CN111309631B (zh) * 2020-03-16 2024-04-09 深信服科技股份有限公司 一种代码审计方法、装置、设备及计算机可读存储介质
CN113568681A (zh) * 2021-07-29 2021-10-29 北京搜房科技发展有限公司 代码执行方法及装置

Also Published As

Publication number Publication date
WO2020232883A1 (zh) 2020-11-26

Similar Documents

Publication Publication Date Title
CN110231937A (zh) 脚本缺陷扫描方法、装置、计算机设备和存储介质
CN110427331B (zh) 基于接口测试工具自动生成性能测试脚本的方法
CN110209652A (zh) 数据表迁移方法、装置、计算机设备和存储介质
CN109800335A (zh) 企业图谱的生成方法、装置、计算机设备和存储介质
CN107992409A (zh) 测试用例生成方法、装置、计算机设备和存储介质
CN104794048B (zh) 一种ui自动化测试方法和系统
CN108427613B (zh) 异常接口定位方法、装置、计算机设备和存储介质
CN110941546A (zh) Web页面用例的自动化测试方法、装置、设备及存储介质
CN109947646A (zh) 接口测试方法、装置、计算机设备和存储介质
CN109977389A (zh) 表单录入方法、装置、计算机设备和存储介质
CN109325030A (zh) 报文处理方法、装置、计算机设备和存储介质
CN109298997A (zh) 接口测试方法、系统、计算机设备和存储介质
CN108446221A (zh) 系统测试方法、装置、计算机设备和存储介质
CN108629567A (zh) 报批信息处理方法、装置、计算机设备和存储介质
CN112579437B (zh) 一种程序运行过程符合性验证方法
CN110134795A (zh) 生成验证问题组的方法、装置、计算机设备和存储介质
CN111258881B (zh) 一种用于工作流程测试的智能测试系统
CN108510238A (zh) 薪酬数据处理方法、装置、计算机设备和存储介质
CN109657475A (zh) 代码漏洞排查方法、装置、设备及存储介质
CN100520732C (zh) 性能测试脚本生成方法
CN110493064A (zh) 防火墙管理方法、装置、计算机设备和存储介质
CN109361628A (zh) 报文组装方法、装置、计算机设备和存储介质
CN106445815A (zh) 一种自动化测试方法及装置
CN108399125A (zh) 自动化测试方法、装置、计算机设备和存储介质
CN109189849B (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