CN107729235B - 定位代码缺陷生产者的方法、装置、设备及计算机可读介质 - Google Patents
定位代码缺陷生产者的方法、装置、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN107729235B CN107729235B CN201710912293.4A CN201710912293A CN107729235B CN 107729235 B CN107729235 B CN 107729235B CN 201710912293 A CN201710912293 A CN 201710912293A CN 107729235 B CN107729235 B CN 107729235B
- Authority
- CN
- China
- Prior art keywords
- code
- scanning
- defect
- code defect
- producer
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (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
本发明提出一种定位代码缺陷生产者的方法,包括:扫描被测代码,获得代码缺陷相关信息存入代码缺陷数据库,生成本次扫描的任务记录存入任务数据库,代码缺陷相关信息中有每个代码缺陷的缺陷标识、代码缺陷所在的文件和行号信息;根据本次扫描的任务记录查询任务数据库,判断是否为针对被测代码的首次扫描,得到第一判断结果;根据代码缺陷的缺陷标识查询代码缺陷数据库,判断是否为新增代码缺陷,得到第二判断结果;根据第一和第二判断结果将对应代码缺陷所在行的最新提交者、或触发本次扫描的代码提交者确定为代码缺陷生产者。本发明还提出一种定位代码缺陷生产者的装置、设备和计算机可读介质。本发明基于代码检测自动定位到代码缺陷的生产者。
Description
技术领域
本发明涉及软件代码检测技术领域,尤其涉及一种定位代码缺陷生产者的方法、装置、设备及计算机可读介质。
背景技术
软件代码检测用于检测软件代码的质量,发现软件代码中的缺陷。现有技术中通常采用静态代码扫描分析技术进行软件代码检测,生成代码检测报告,并将代码检测报告提供给软件开发者,这需要软件开发者根据代码检测报告一一确认代码缺陷(bug),并根据代码缺陷一一查找核实bug责任人(即缺陷生产者)。也就是说,现有的软件代码检测方法无法自动定位到缺陷生产者,需要软件开发者人工进行一一查找定位,定位代码缺陷生产者的成本很高,且效率低下。
发明内容
本发明实施例提供一种定位代码缺陷生产者的方法、装置、设备及计算机可读介质,以至少解决现有技术中的以上技术问题。
第一方面,本发明实施例提供了一种定位代码缺陷生产者的方法,包括:
扫描被测代码,获得代码缺陷相关信息存入代码缺陷数据库中,并生成本次扫描的任务记录存入任务数据库中,所述代码缺陷相关信息中包括每个代码缺陷的缺陷标识(ID)、以及所述代码缺陷所在的文件和行号信息;
根据所述本次扫描的任务记录查询所述任务数据库,判断本次扫描是否为针对所述被测代码的首次扫描,得到第一判断结果;
根据所述代码缺陷的缺陷ID查询所述代码缺陷数据库,判断所述代码缺陷是否为新增代码缺陷,得到第二判断结果;
根据所述第一判断结果和第二判断结果将对应代码缺陷所在行的最新提交者、或者触发本次扫描的代码提交者确定为代码缺陷生产者。
结合第一方面,本发明在第一方面的第一种实现方式中,所述根据第一判断结果和第二判断结果将对应代码缺陷所在行的最新提交者、或者触发本次扫描的代码提交者确定为代码缺陷生产者,包括:
在所述第一判断结果表示所述本次扫描为针对所述被测代码的首次扫描时,确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;
在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
结合第一方面的第一种实现方式,本发明在第一方面的第二种实现方式中,还包括:
在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为非新增代码缺陷时,确定本次扫描与针对所述被测代码的前一次扫描的所述代码缺陷生产者相同。
结合第一方面、第一方面的第一种实现方式和第二种实现方式,本发明在第一方面的第三种实现方式中,所述任务记录中包括被测代码对应的模块ID;
所述根据本次扫描的任务记录查询任务数据库,判断本次扫描是否为针对被测代码的首次扫描,包括:
如果所述任务数据库中不存在与本次扫描具有相同模块ID的历史任务记录,则确定本次扫描为针对被测代码的首次扫描;否则,确定本次扫描为针对被测代码所属代码库的非首次扫描。
结合第一方面、第一方面的第一种实现方式和第二种实现方式,本发明在第一方面的第四种实现方式中,所述任务记录中包括被测代码对应的模块ID和扫描路径;
所述根据本次扫描的任务记录查询任务数据库,判断本次扫描是否为针对被测代码的首次扫描,包括:
如果所述任务数据库中不存在与本次扫描具有相同模块ID和扫描路径的历史任务记录,则确定本次扫描为针对被测代码的首次扫描;否则,确定本次扫描为针对被测代码的非首次扫描。
结合第一方面、第一方面的第一种实现方式和第二种实现方式,本发明在第一方面的第五种实现方式中,所述根据代码缺陷的缺陷ID查询代码缺陷数据库,判断代码缺陷是否为新增代码缺陷,包括:
查找所述代码缺陷数据库中是否存在具有相同缺陷ID的历史代码缺陷相关信息,如不存在,则确定所述代码缺陷为新增代码缺陷;如存在,则确定所述代码缺陷为非新增代码缺陷。
结合第一方面的第一种实现方式,本发明在第一方面的第六种实现方式中,在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,所述方法还包括:
判断针对所述被测代码的本次扫描的等级是否低于前一次扫描的等级,得到第三判断结果;
如所述第三结果表示所述被测代码的本次扫描的等级低于前一次扫描的等级,则确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;否则,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
结合第一方面的第一种实现方式,本发明在第一方面的第七种实现方式中,在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,所述方法还包括:
判断针对所述被测代码的本次扫描的扫描路径相比前一次扫描的扫描路径是否发生变化,得到第四判断结果;
如所述第四判断结果表示所述扫描路径发生变化,且本次扫描有新增的扫描路径,而所述代码缺陷位于新增的扫描路径,则确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;否则,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
结合第一方面的第六种实现方式,本发明在第一方面的第八种实现方式中,所述判断针对被测代码的本次扫描的等级是否低于前一次扫描的等级,包括:
将本次扫描的任务记录中的扫描等级与任务数据库中记录的针对相同模块ID的前一次扫描的任务记录中的扫描等级进行比较,判断两者扫描等级的高低。
结合第一方面的第七种实现方式,本发明在第一方面的第九种实现方式中,所述判断针对所述被测代码的本次扫描的扫描路径相比前一次扫描的扫描路径是否发生变化,包括:
将本次扫描的任务记录中的扫描路径与任务数据库中记录的针对相同模块ID的前一次扫描的任务记录中的扫描路径进行比较,判断两者是否相同,如不相同,则确定发生变化;如相同,则确定未发生变化。
第二方面,本发明实施例提供了一种定位代码缺陷生产者的装置,包括:
代码扫描单元,用于扫描被测代码,获得代码缺陷相关信息存入代码缺陷数据库中,并生成本次扫描的任务记录存入任务数据库中,所述代码缺陷相关信息中包括每个代码缺陷的缺陷ID、以及所述代码缺陷所在的文件和行号信息;
第一判断单元,用于根据所述本次扫描的任务记录查询所述任务数据库,判断本次扫描是否为针对所述被测代码的首次扫描,得到第一判断结果;
第二判断单元,用于根据所述代码缺陷的缺陷ID查询所述代码缺陷数据库,判断所述代码缺陷是否为新增代码缺陷,得到第二判断结果;
确定单元,用于根据所述第一判断结果和第二判断结果将对应代码缺陷所在行的最新提交者、或者触发本次扫描的代码提交者确定为代码缺陷生产者。
结合第二方面,在第二方面的第一种实现方式中,所述确定单元进一步用于,
在所述第一判断结果表示所述本次扫描为针对所述被测代码的首次扫描时,确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;
在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
结合第二方面的第一种实现方式,本发明在第二方面的第二种实现方式中,所述确定单元还用于,
在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为非新增代码缺陷时,确定本次扫描与针对所述被测代码的前一次扫描的所述代码缺陷生产者相同。
结合第二方面的第一种实现方式,本发明在第二方面的第三种实现方式中,所述装置还包括:第三判断单元,用于在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,进一步判断针对所述被测代码的本次扫描的等级是否低于前一次扫描的等级,得到第三判断结果;
相应的,所述确定单元进一步用于,在所述第三结果表示所述被测代码的本次扫描的等级低于前一次扫描的等级时,确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;否则,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
结合第二方面的第一种实现方式,本发明在第二方面的第四种实现方式中,所述装置还包括:第四判断单元,用于在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,进一步判断针对所述被测代码的本次扫描的扫描路径相比前一次扫描的扫描路径是否发生变化,得到第四判断结果;
相应的,所述确定单元进一步用于,在所述第四判断结果表示所述扫描路径发生变化,且本次扫描有新增的扫描路径,而所述代码缺陷位于新增的扫描路径时,确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;否则,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
本发明装置实施例所述单元的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,定位代码缺陷生产者的装置的结构中包括处理器和存储器,所述存储器用于存储支持定位代码缺陷生产者的装置执行上述第一方面中定位代码缺陷生产者的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述定位代码缺陷生产者的装置还可以包括通信接口,用于定位代码缺陷生产者的装置与其他设备或通信网络通信。
第三方面,本发明实施例提供了一种计算机可读介质,用于存储定位代码缺陷生产者的装置所用的计算机软件指令,其包括用于执行上述第一方面中的定位代码缺陷生产者的方法而为定位代码缺陷生产者的装置所涉及的程序。
上述技术方案中的一个技术方案具有如下优点或有益效果:在代码检测中自动高效的定位代码缺陷生产者。
上述技术方案中的另一个技术方案具有如下优点或有益效果:代码缺陷定位的准确度高,使后续代码缺陷修复过程更有针对性,节省代码缺陷追踪、修复成本,从而提升开发效率。
上述技术方案中的再一个技术方案具有如下优点或有益效果:可以根据开发者产生的缺陷数量,衡量开发者提交代码质量,推动其提升编码质量,从而提升项目整体代码质量,让产品的发展从根本上形成良性循环。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明实施例一的定位代码缺陷生产者的方法的流程示意图;
图2为本发明实施例二的定位代码缺陷生产者的方法的流程示意图;
图3为本发明实施例三的定位代码缺陷生产者的方法的流程示意图;
图4为本发明实施例四的定位代码缺陷生产者的方法的流程示意图;
图5为本发明实施例五的定位代码缺陷生产者的方法的流程示意图;
图6为本发明实施例六的定位代码缺陷生产者的装置的组成结构示意图;
图7为本发明实施例七的定位代码缺陷生产者的设备的组成结构示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
本发明实施例旨在提出能够在代码检测中自动高效的定位代码缺陷生产者的解决方案。下面结合多个实施例一一展开描述。
实施例一
本发明实施例一提供的一种定位代码缺陷生产者的方法,如图1所示,该方法主要包括:
步骤S101,扫描被测代码,获得代码缺陷相关信息存入代码缺陷数据库中,并生成本次扫描的任务记录存入任务数据库中,所代码缺陷相关信息中包括每个代码缺陷的缺陷标识(ID)、以及代码缺陷所在的文件和行号信息。
本发明实施例中对代码的扫描检测可以由统一的检测平台来实现,检测平台可以提供丰富多样的代码检测工具,以支持多样的代码检测需求,如:针对C++语言编程代码的检测工具、针对JavaScript语言编程代码的检测工具、针对Python语言编程代码的检测工具等等。代码开发人员可以通过检测平台注册模块,该模块的信息主要包括:代码库地址、代码语言,检测平台的所有注册模块的信息可以保存在专门的模块数据库中,每个模块由一个唯一的ID来进行标识,以区分不同的模块。其中,代码库地址为注册的该模块的代码存放地址,检测平台进行对应模块的代码扫描时,可以从该代码库地址获取该模块对应的代码;代码语言为该模块中的代码编写所使用的语言,检测平台进行对应模块的代码扫描时,需要根据代码语言调用合适的代码检测工具。模块的信息还可以包括:扫描路径,其规定了检测平台进行代码扫描的路径,检测平台会根据代码路径从对应的地址获得待检测的代码。模块的信息还可以包括:扫描的等级(也称风险等级),代码扫描通常会有等级划分,不同的扫描等级对应了不同的扫描规则,也就是说,针对同一代码,使用不同的扫描等级进行扫描,产生的代码缺陷是不同的;例如:在高危的扫描等级下,只会产生以高危扫描规则下得到的代码缺陷,相比而言,在低危的扫描等级下,很多在高危等级下不会被认为是代码缺陷的缺陷会产生出来。
模块数据库是专门用于维护检查平台中各模块信息的数据库,该模块是由注册为检查平台用户的代码开发人员在检测平台上注册的,代码开发人员注册模块时,需要提供对应模块的代码库地址、代码语言,在一些实施例中,还需要提供代码的扫描路径、扫描等级等信息。检测平台会根据用户的注册申请,自动生成与注册的模块对应的唯一ID,记录模块的创建人、创建时间等信息,并根据以上这些信息,在模块数据库中生成一条模块信息。在另外的一些实现方式中,模块的创建人还可以为该模块设置对应的开放权限,即设置允许哪些其他用户(如该模块的协同开发人员)通过检测平台查看、修改、提交代码、触发扫描代码等等。
在检测平台上注册模块以后,检测平台对模块的代码检测可以由用户来触发,也可以由检测平台根据设定条件自动触发,这在实际应用中可以灵活选择。其中,检测平台根据设定条件自动触发代码扫描,如:在有代码修改和提交权限的用户(当然也可以包括模块的创建者)通过检测平台修改代码并提交后,检测平台自动触发对相应模块的代码库或代码库中的特定文件(包含新修改提交的代码内容)进行扫描。检测平台根据用户触发进行代码扫描,如:在有触发扫描代码权限的用户通过检测平台触发扫描代码请求后,检测平台会根据用户请求对相应模块的代码库或代码库中的特定文件进行扫描。
无论是用户触发的代码检测,还是平台自动触发的代码检测,在平台执行检测任务时,都会对应的产生一条任务(task)记录,所有任务记录都由统一的任务数据库进行存储维护。每一条任务记录中可以包括任务对应的模块ID、任务触发者、扫描时间等信息;在一些实现方式中,任务记录中还可以包括任务对应的扫描路径、扫描等级等信息。
检测平台执行完代码扫描操作(可以使用静态代码扫描)后,生成代码扫描报告,其中包括代码缺陷相关信息,代码缺陷相关信息包括每个代码缺陷的缺陷ID、以及代码缺陷所在的文件和行号信息;在一些实现方式中,代码缺陷相关信息还可以包括:缺陷类别、缺陷描述等信息、代码提交人等等。代码缺陷相关信息存入专门的代码缺陷数据库中,数据库中每一条代码缺陷相关信息由唯一的ID标识。
步骤S102,根据本次扫描的任务记录查询任务数据库,判断本次扫描是否为针对被测代码的首次扫描,得到第一判断结果;根据代码缺陷的缺陷ID查询代码缺陷数据库,判断代码缺陷是否为新增代码缺陷,得到第二判断结果。
在本发明实施例的一种实现方式中,任务记录中包括被测代码对应的模块ID,这种情况下,代码扫描是对模块ID对应的代码库进行扫描。在获得针对本次扫描的任务记录后,根据该任务记录查询任务数据库,是查询任务数据库中是否存在与本次扫描的任务记录具有相同模块ID的历史任务记录,如果存在,说明该模块已经执行过扫描,则确定本次扫描并非被测代码的首次扫描;如果不存在,说明该模块未执行过扫描,则确定本次扫描为被测代码的首次扫描。另外,本次扫描的任务记录也会被记录在任务数据库中。
在本发明实施例的另一种实现方式中,任务记录中不仅包括被测代码对应的模块ID,还包括被测代码对应的扫描路径,这种情况下,代码扫描是对模块ID对应的代码库中的所述扫描路径下的代码进行扫描。在获得针对本次扫描的任务记录后,根据该任务记录查询任务数据库,是查询任务数据库中是否存在与本次扫描的任务记录具有相同模块ID和扫描路径的历史任务记录,如果存在,说明该代码库下的该扫描路径已经执行过扫描,则确定本次扫描并非被测代码的首次扫描;如果不存在,说明该代码库下的该扫描路径未执行过扫描,则确定本次扫描为被测代码的首次扫描。另外,本次扫描的任务记录也会被记录在任务数据库中。
在获得代码缺陷相关信息后,根据代码缺陷的缺陷ID查询代码缺陷数据库,是查询代码缺陷数据库中是否存在与本次扫描的缺陷ID同样的代码缺陷,如果不存在,则确定相应的代码缺陷为新增代码缺陷;如存在,则确定相应的代码缺陷为非新增代码缺陷。
步骤S103,根据第一判断结果和第二判断结果将对应代码缺陷所在行的最新提交者、或者触发本次扫描的代码提交者确定为代码缺陷生产者。
其中,所谓代码缺陷所在行的最新提交者,是指代码缺陷所在行的最后一次提交者或更新者,此信息在检测平台都会有记录。所谓触发本次扫描的代码提交者,是指在检测平台提交代码并触发本次扫描操作的用户,此信息在检测平台也都会有记录,例如:在每个扫描的任务记录中,都会记录本次扫描的触发者信息。例如:用户A提交了一段代码X1并触发扫描,导致用户B之前提交的代码X2出现代码缺陷(如用户A修改参数定义导致用户B的代码错误),那么用户B为其所提交代码X2的提交者,而用户A为触发本次扫描的代码X1提交者。
具体的,步骤S103的一些判断原则如下:
在第一判断结果表示本次扫描为针对被测代码的首次扫描时,确定代码缺陷生产者为对应代码缺陷所在行的最新提交者;
在第一判断结果表示本次扫描为针对被测代码的非首次扫描,以及第二判断结果表示代码缺陷为新增代码缺陷时,确定代码缺陷生产者为触发本次扫描的代码提交者。
本次扫描为针对被测代码的首次扫描,那么当扫描出现代码缺陷时,该缺陷的生产者应当为该代码缺陷所在行的最新提交者。基于检测平台对代码操作者的行为记录,平台是能够获得该代码缺陷所在行的最新提交者的信息的。
本次扫描为针对被测代码的非首次扫描,并且代码缺陷为新增代码缺陷时,说明新增代码缺陷与新提交的代码相关,那么该新增代码缺陷的生产者应当为触发本次扫描的代码提交者。基于检测平台对代码操作者的行为记录,平台也是能够获得触发每次扫描的代码提交者的。
步骤S103的还一些判断原则如下:
在第一判断结果表示所述扫描为针对被测代码的非首次扫描,以及第二判断结果表示代码缺陷为非新增代码缺陷时,确定本次扫描与针对被测代码的前一次扫描的代码缺陷生产者相同。
本次扫描为针对被测代码的非首次扫描,并且代码缺陷为非新增代码缺陷时,针对被测代码的前一次扫描所出现的该代码缺陷,在本次扫描时仍然未得到解决,那么该非新增代码缺陷的产生者应当仍然是前一次扫描时所发现的代码缺陷生产者(有可能是前一次扫描过程中该代码缺陷所在行的最新提交者,也有可能是触发前一次扫描的代码提交者)。检测平台通过查询任务数据库即能获得此信息。
通过实施本发明实施例一,能够在代码检测过程中自动高效的将代码缺陷定位到该代码缺陷所在行的最新提交者、或者触发本次扫描的代码提交者,无需代码开发者手动定位代码缺陷的责任人。
实施例二
本发明实施例二提供一种定位代码缺陷生产者的方法,如图2所示,该方法主要包括:
步骤S201,检测平台的用户通过平台提交代码,该代码可以是新注册的模块中的代码,也可以是已注册的模块中的修改提交代码。
步骤S202,触发扫描。具体可以是平台自动根据预设条件(如:检测到代码更新等)触发,也可以是用户触发。
步骤S203,扫描结束后生成本次扫描的扫描报告。
扫描报告中包括代码缺陷相关信息,代码缺陷相关信息中包括代码缺陷ID、代码缺陷所在文件和行号信息等等。代码缺陷相关信息存入代码缺陷数据库中。
步骤S204,判断本次扫描是否为针对被测代码的首次扫描,如是,执行步骤S205;否则,执行步骤S206。
步骤S205,确定代码缺陷的生产者为对应代码缺陷所在行的最新提交者。
步骤S206,判断代码缺陷是否为新增代码缺陷,如是,执行步骤S207;否则,执行步骤S208。
步骤S207,确定代码缺陷的生产者为触发本次扫描的代码提交者。
步骤S208,确定本次扫描与针对被测代码的前一次扫描的代码缺陷生产者相同。
实施例三
本发明实施例三提供一种定位代码缺陷生产者的方法,如图3所示,该方法主要包括:
步骤S301,检测平台的用户通过平台提交代码,该代码可以是新注册的模块中的代码,也可以是已注册的模块中的修改提交代码。
步骤S302,触发扫描。具体可以是平台自动根据预设条件(如:检测到代码更新等)触发,也可以是用户触发。
步骤S303,扫描结束后生成本次扫描的扫描报告。
扫描报告中包括代码缺陷相关信息,代码缺陷相关信息中包括代码缺陷ID、代码缺陷所在文件和行号信息等等。代码缺陷相关信息存入代码缺陷数据库中。
步骤S304,判断本次扫描是否为针对被测代码的首次扫描,如是,执行步骤S305;否则,执行步骤S306。
步骤S305,确定代码缺陷的生产者为对应代码缺陷所在行的最新提交者。
步骤S306,判断代码缺陷是否为新增代码缺陷,如是,执行步骤S308;否则,执行步骤S307。
步骤S307,确定本次扫描与针对被测代码的前一次扫描的代码缺陷生产者相同。
步骤S308,判断本次扫描等级是否低于前一次扫描,如是,执行步骤S305;否则,执行步骤S309。如果本次扫描等级是否低于前一次扫描,那么新增代码缺陷的生产者应当为该代码缺陷所在行的最新提交者。
步骤S309,确定代码缺陷的生产者为触发本次扫描的代码提交者。
实施例四
本发明实施例四提供一种定位代码缺陷生产者的方法,如图4所示,该方法主要包括:
步骤S401,检测平台的用户通过平台提交代码,该代码可以是新注册的模块中的代码,也可以是已注册的模块中的修改提交代码。
步骤S402,触发扫描。具体可以是平台自动根据预设条件(如:检测到代码更新等)触发,也可以是用户触发。
步骤S403,扫描结束后生成本次扫描的扫描报告。
扫描报告中包括代码缺陷相关信息,代码缺陷相关信息中包括代码缺陷ID、代码缺陷所在文件和行号信息等等。代码缺陷相关信息存入代码缺陷数据库中。
步骤S404,判断本次扫描是否为针对被测代码的首次扫描,如是,执行步骤S405;否则,执行步骤S406。
步骤S405,确定代码缺陷的生产者为对应代码缺陷所在行的最新提交者。
步骤S406,判断代码缺陷是否为新增代码缺陷,如是,执行步骤S408;否则,执行步骤S407。
步骤S407,确定本次扫描与针对被测代码的前一次扫描的代码缺陷生产者相同。
步骤S408,判断扫描路径是否发生变化,如发生变化,且本次扫描有新增的扫描路径,而该代码缺陷又位于新增的扫描路径,则执行步骤S405;否则,执行步骤S409。
步骤S409,确定代码缺陷的生产者为触发本次扫描的代码提交者。
实施例五
本发明实施例五提供一种定位代码缺陷生产者的方法,如图5所示,该方法主要包括:
步骤S501,检测平台的用户通过平台提交代码,该代码可以是新注册的模块中的代码,也可以是已注册的模块中的修改提交代码。
步骤S502,触发扫描。具体可以是平台自动根据预设条件(如:检测到代码更新等)触发,也可以是用户触发。
步骤S503,扫描结束后生成本次扫描的扫描报告。
扫描报告中包括代码缺陷相关信息,代码缺陷相关信息中包括代码缺陷ID、代码缺陷所在文件和行号信息等等。代码缺陷相关信息存入代码缺陷数据库中。
步骤S504,判断本次扫描是否为针对被测代码的首次扫描,如是,执行步骤S505;否则,执行步骤S506。
步骤S505,确定代码缺陷的生产者为对应代码缺陷所在行的最新提交者。
步骤S506,判断代码缺陷是否为新增代码缺陷,如是,执行步骤S508;否则,执行步骤S507。
步骤S507,确定本次扫描与针对被测代码的前一次扫描的代码缺陷生产者相同。
步骤S508,判断本次扫描等级是否低于前一次扫描,如是,执行步骤S505;否则,执行步骤S509。
步骤S509,判断扫描路径是否发生变化,如发生变化,且本次扫描有新增的扫描路径,而该代码缺陷又位于新增的扫描路径,则执行步骤S505;否则,执行步骤S510。
实施例六
本发明实施例六提供一种定位代码缺陷生产者的装置,如图6所示,该装置主要包括:
代码扫描单元10,用于扫描被测代码,获得代码缺陷相关信息存入代码缺陷数据库中,并生成本次扫描的任务记录存入任务数据库中,代码缺陷相关信息中包括每个代码缺陷的ID、以及代码缺陷所在的文件和行号信息;
第一判断单元20,用于根据本次扫描的任务记录查询任务数据库,判断本次扫描是否为针对被测代码的首次扫描,得到第一判断结果;
第二判断单元30,用于根据代码缺陷的缺陷ID查询代码缺陷数据库,判断代码缺陷是否为新增代码缺陷,得到第二判断结果;
确定单元40,用于根据第一判断结果和第二判断结果将对应代码缺陷所在行的最新提交者、或者触发本次扫描的代码提交者确定为代码缺陷生产者。
在本发明实施例六的一种实现方式中,确定单元40进一步用于,
在第一判断结果表示本次扫描为针对被测代码的首次扫描时,确定代码缺陷生产者为对应代码缺陷所在行的最新提交者;
在第一判断结果表示本次扫描为针对被测代码的非首次扫描,以及第二判断结果表示代码缺陷为新增代码缺陷时,确定代码缺陷生产者为触发本次扫描的代码提交者。
在本发明实施例六的另一种实现方式中,确定单元40还用于,
在第一判断结果表示本次扫描为针对被测代码的非首次扫描,以及第二判断结果表示代码缺陷为非新增代码缺陷时,确定本次扫描与针对被测代码的前一次扫描的代码缺陷生产者相同。
在本发明实施例六的又一种实现方式中,该装置还包括:第三判断单元50,用于在第一判断结果表示本次扫描为针对所述被测代码的非首次扫描,以及第二判断结果表示代码缺陷为新增代码缺陷时,进一步判断针对被测代码的本次扫描的等级是否低于前一次扫描的等级,得到第三判断结果;
相应的,确定单元40进一步用于,在第三结果表示被测代码的本次扫描的等级低于前一次扫描的等级时,确定代码缺陷生产者为对应代码缺陷所在行的最新提交者;否则,确定代码缺陷生产者为触发本次扫描的代码提交者。
在本发明实施例六的还一种实现方式中,装置还包括:第四判断单元60,用于在第一判断结果表示本次扫描为针对被测代码的非首次扫描,以及第二判断结果表示代码缺陷为新增代码缺陷时,进一步判断针对被测代码的本次扫描的扫描路径相比前一次扫描的扫描路径是否发生变化,得到第四判断结果;
相应的,确定单元40进一步用于,在第四判断结果表示扫描路径发生变化,且本次扫描有新增的扫描路径,而所述代码缺陷位于新增的扫描路径时,确定代码缺陷生产者为对应代码缺陷所在行的最新提交者;否则,确定代码缺陷生产者为触发本次扫描的代码提交者。
需要说明的是,本发明装置实施例所述单元的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
实施例七
本发明实施例七提供一种定位代码缺陷生产者的设备,如图7所示,该设备包括:存储器21和处理器22,存储器21内存储有可在处理器22上运行的计算机程序。处理器22执行所述计算机程序时实现上述实施例中的定位代码缺陷生产者的方法。存储器21和处理器22的数量可以为一个或多个。
该设备还包括:
通信接口23,用于存储器21和处理器22之间的通信。
存储器21可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
如果存储器21、处理器22和通信接口23独立实现,则存储器21、处理器22和通信接口23可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器21、处理器22及通信接口23集成在一块芯片上,则存储器21、处理器22及通信接口23可以通过内部接口完成相互间的通信。
在一个可能的设计中,定位代码缺陷生产者的装置的结构中包括处理器和存储器,所述存储器用于存储支持定位代码缺陷生产者的装置执行上述第一方面中定位代码缺陷生产者的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述定位代码缺陷生产者的装置还可以包括通信接口,用于定位代码缺陷生产者的装置与其他设备或通信网络通信。
本发明实施例提供了一种计算机可读介质,用于存储定位代码缺陷生产者的装置所用的计算机软件指令,其包括用于执行上述第一方面中的定位代码缺陷生产者的方法而为定位代码缺陷生产者的装置所涉及的程序。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
本发明实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
综上所述,本发明实施例在代码检测中自动高效的定位代码缺陷生产者;代码缺陷定位的准确度高,使后续代码缺陷修复过程更有针对性,节省代码缺陷追踪、修复成本,从而提升开发效率;可以根据开发者产生的缺陷数量,衡量开发者提交代码质量,推动其提升编码质量,从而提升项目整体代码质量,让产品的发展从根本上形成良性循环。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种定位代码缺陷生产者的方法,其特征在于,所述方法包括:
扫描被测代码,获得代码缺陷相关信息存入代码缺陷数据库中,并生成本次扫描的任务记录存入任务数据库中,所述代码缺陷相关信息中包括每个代码缺陷的缺陷标识ID、以及所述代码缺陷所在的文件和行号信息;
根据所述本次扫描的任务记录查询所述任务数据库,判断本次扫描是否为针对所述被测代码的首次扫描,得到第一判断结果;
根据所述代码缺陷的缺陷ID查询所述代码缺陷数据库,判断所述代码缺陷是否为新增代码缺陷,得到第二判断结果;
在所述第一判断结果表示所述本次扫描为针对所述被测代码的首次扫描时,确定所述代码缺陷生产者为对应代码缺陷所在行的最新提交者;
在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,确定所述代码缺陷生产者为触发本次扫描的代码提交者。
2.根据权利要求1所述定位代码缺陷生产者的方法,其特征在于,所述方法还包括:
在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为非新增代码缺陷时,确定本次扫描与针对所述被测代码的前一次扫描的所述代码缺陷生产者相同。
3.根据权利要求1至2任一项所述定位代码缺陷生产者的方法,其特征在于,所述任务记录中包括被测代码对应的模块ID;
所述根据本次扫描的任务记录查询任务数据库,判断本次扫描是否为针对被测代码的首次扫描,包括:
如果所述任务数据库中不存在与本次扫描具有相同模块ID的历史任务记录,则确定本次扫描为针对被测代码的首次扫描;否则,确定本次扫描为针对被测代码所属代码库的非首次扫描。
4.根据权利要求1至2任一项所述定位代码缺陷生产者的方法,其特征在于,所述任务记录中包括被测代码对应的模块ID和扫描路径;
所述根据本次扫描的任务记录查询任务数据库,判断本次扫描是否为针对被测代码的首次扫描,包括:
如果所述任务数据库中不存在与本次扫描具有相同模块ID和扫描路径的历史任务记录,则确定本次扫描为针对被测代码的首次扫描;否则,确定本次扫描为针对被测代码的非首次扫描。
5.根据权利要求1至2任一项所述定位代码缺陷生产者的方法,其特征在于,所述根据代码缺陷的缺陷ID查询代码缺陷数据库,判断代码缺陷是否为新增代码缺陷,包括:
查找所述代码缺陷数据库中是否存在具有相同缺陷ID的历史代码缺陷相关信息,如不存在,则确定所述代码缺陷为新增代码缺陷;如存在,则确定所述代码缺陷为非新增代码缺陷。
6.根据权利要求1所述定位代码缺陷生产者的方法,其特征在于,在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,所述方法还包括:
判断针对所述被测代码的本次扫描的等级是否低于前一次扫描的等级,得到第三判断结果;
如所述第三判断结果表示所述被测代码的本次扫描的等级低于前一次扫描的等级,则确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;否则,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
7.根据权利要求1所述定位代码缺陷生产者的方法,其特征在于,在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,所述方法还包括:
判断针对所述被测代码的本次扫描的扫描路径相比前一次扫描的扫描路径是否发生变化,得到第四判断结果;
如所述第四判断结果表示所述扫描路径发生变化,且本次扫描有新增的扫描路径,而所述代码缺陷位于新增的扫描路径,则确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;否则,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
8.根据权利要求6所述定位代码缺陷生产者的方法,其特征在于,所述判断针对被测代码的本次扫描的等级是否低于前一次扫描的等级,包括:
将本次扫描的任务记录中的扫描等级与任务数据库中记录的针对相同模块ID的前一次扫描的任务记录中的扫描等级进行比较,判断两者扫描等级的高低。
9.根据权利要求7所述定位代码缺陷生产者的方法,其特征在于,所述判断针对所述被测代码的本次扫描的扫描路径相比前一次扫描的扫描路径是否发生变化,包括:
将本次扫描的任务记录中的扫描路径与任务数据库中记录的针对相同模块ID的前一次扫描的任务记录中的扫描路径进行比较,判断两者是否相同,如不相同,则确定发生变化;如相同,则确定未发生变化。
10.一种定位代码缺陷生产者的装置,其特征在于,包括:
代码扫描单元,用于扫描被测代码,获得代码缺陷相关信息存入代码缺陷数据库中,并生成本次扫描的任务记录存入任务数据库中,所述代码缺陷相关信息中包括每个代码缺陷的缺陷标识ID、以及所述代码缺陷所在的文件和行号信息;
第一判断单元,用于根据所述本次扫描的任务记录查询所述任务数据库,判断本次扫描是否为针对所述被测代码的首次扫描,得到第一判断结果;
第二判断单元,用于根据所述代码缺陷的缺陷ID查询所述代码缺陷数据库,判断所述代码缺陷是否为新增代码缺陷,得到第二判断结果;
确定单元,用于,
在所述第一判断结果表示所述本次扫描为针对所述被测代码的首次扫描时,确定所述代码缺陷生产者为对应代码缺陷所在行的最新提交者;
在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,确定所述代码缺陷生产者为触发本次扫描的代码提交者。
11.根据权利要求10所述定位代码缺陷生产者的装置,其特征在于,所述确定单元还用于,
在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为非新增代码缺陷时,确定本次扫描与针对所述被测代码的前一次扫描的所述代码缺陷生产者相同。
12.根据权利要求10所述定位代码缺陷生产者的装置,其特征在于,
所述装置还包括:第三判断单元,用于在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,进一步判断针对所述被测代码的本次扫描的等级是否低于前一次扫描的等级,得到第三判断结果;
相应的,所述确定单元进一步用于,在所述第三判断结果表示所述被测代码的本次扫描的等级低于前一次扫描的等级时,确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;否则,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
13.根据权利要求10所述定位代码缺陷生产者的装置,其特征在于,所述装置还包括:第四判断单元,用于在所述第一判断结果表示所述本次扫描为针对所述被测代码的非首次扫描,以及所述第二判断结果表示所述代码缺陷为新增代码缺陷时,进一步判断针对所述被测代码的本次扫描的扫描路径相比前一次扫描的扫描路径是否发生变化,得到第四判断结果;
相应的,所述确定单元进一步用于,在所述第四判断结果表示所述扫描路径发生变化,且本次扫描有新增的扫描路径,而所述代码缺陷位于新增的扫描路径时,确定所述代码缺陷生产者为所述对应代码缺陷所在行的最新提交者;否则,确定所述代码缺陷生产者为所述触发本次扫描的代码提交者。
14.一种定位代码缺陷生产者的设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
15.一种计算机可读介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710912293.4A CN107729235B (zh) | 2017-09-29 | 2017-09-29 | 定位代码缺陷生产者的方法、装置、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710912293.4A CN107729235B (zh) | 2017-09-29 | 2017-09-29 | 定位代码缺陷生产者的方法、装置、设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729235A CN107729235A (zh) | 2018-02-23 |
CN107729235B true CN107729235B (zh) | 2020-11-13 |
Family
ID=61209389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710912293.4A Active CN107729235B (zh) | 2017-09-29 | 2017-09-29 | 定位代码缺陷生产者的方法、装置、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729235B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196803B (zh) * | 2018-02-27 | 2024-04-16 | 北京京东尚科信息技术有限公司 | 一种软件缺陷培训方法和系统 |
CN109255239A (zh) * | 2018-09-11 | 2019-01-22 | 郑州云海信息技术有限公司 | 一种代码安全漏洞检查方法、装置、设备及存储介质 |
CN110018958A (zh) * | 2019-03-12 | 2019-07-16 | 深圳壹账通智能科技有限公司 | 代码缺陷扫描方法、装置、计算机设备和存储介质 |
CN110096303B (zh) * | 2019-04-22 | 2023-06-02 | 无线生活(杭州)信息科技有限公司 | 代码检测方法及装置 |
CN110275827A (zh) * | 2019-05-31 | 2019-09-24 | 北京大米科技有限公司 | 一种代码缺陷判断方法、装置、存储介质及电子设备 |
CN111240873A (zh) * | 2019-12-31 | 2020-06-05 | 广东趣炫网络股份有限公司 | 一种代码错误记录管理方法和装置 |
CN111367555B (zh) * | 2020-03-23 | 2023-08-08 | 抖音视界有限公司 | 断言的方法、装置、电子设备及计算机可读介质 |
CN111367819B (zh) * | 2020-03-30 | 2024-07-30 | 建信金融科技有限责任公司 | 代码扫描过滤方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1648872A (zh) * | 2004-12-08 | 2005-08-03 | 上海科泰世纪科技有限公司 | 自动化测试构建方法 |
CN101566968A (zh) * | 2009-05-20 | 2009-10-28 | 阿里巴巴集团控股有限公司 | 一种检查源代码中空指针的方法和计算机系统 |
CN103309804A (zh) * | 2013-04-08 | 2013-09-18 | 中国电子科技集团公司第十研究所 | 自动化代码规则检查平台 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070250816A1 (en) * | 2006-04-19 | 2007-10-25 | International Business Machines Corporation | Process and method for using real-work statistics for automatically selecting appropriate developer to fix a problem |
US8494832B2 (en) * | 2007-06-20 | 2013-07-23 | Sanjeev Krishnan | Method and apparatus for software simulation |
-
2017
- 2017-09-29 CN CN201710912293.4A patent/CN107729235B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1648872A (zh) * | 2004-12-08 | 2005-08-03 | 上海科泰世纪科技有限公司 | 自动化测试构建方法 |
CN101566968A (zh) * | 2009-05-20 | 2009-10-28 | 阿里巴巴集团控股有限公司 | 一种检查源代码中空指针的方法和计算机系统 |
CN103309804A (zh) * | 2013-04-08 | 2013-09-18 | 中国电子科技集团公司第十研究所 | 自动化代码规则检查平台 |
Also Published As
Publication number | Publication date |
---|---|
CN107729235A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729235B (zh) | 定位代码缺陷生产者的方法、装置、设备及计算机可读介质 | |
CN108628751B (zh) | 一种无用依赖项检测方法及装置 | |
CN111274126B (zh) | 测试用例筛选方法、装置及介质 | |
CN107885660B (zh) | 基金系统自动化测试管理方法、装置、设备及存储介质 | |
US9317400B2 (en) | Code coverage rate determination method and system | |
US8397104B2 (en) | Creation of test plans | |
CN110908888B (zh) | 服务器测试方法及装置 | |
CN111831564A (zh) | 一种回归测试方法、装置及计算设备 | |
CN108459954B (zh) | 应用程序漏洞检测方法和装置 | |
CN108009080B (zh) | 一种代码扫描工具的评估方法及装置 | |
CN106326120B (zh) | 一种应用软件的回归测试方法及装置、电子设备 | |
US20200183821A1 (en) | Identifying flaky tests | |
CN112882933B (zh) | 脚本录制方法、装置、设备及存储介质 | |
CN111198811A (zh) | 一种页面自动化测试的方法、装置、电子设备及存储介质 | |
JP2020102209A (ja) | ソフトウェアプログラム不良位置の識別 | |
CN115269444B (zh) | 代码静态检测方法、装置及服务器 | |
CN111382077B (zh) | 应用程序崩溃原因定位方法、装置、电子设备及存储介质 | |
CN115292197A (zh) | 一种软件测试方法、装置、电子设备及存储介质 | |
CN113220588A (zh) | 一种数据处理的自动化测试方法、装置、设备及存储介质 | |
CN104036193B (zh) | 一种应用程序的本地跨域漏洞检测方法及装置 | |
CN108829575A (zh) | 测试案例推荐方法、电子装置及可读存储介质 | |
CN106407118A (zh) | 一种测试用户终端的方法及装置 | |
CN116226871B (zh) | 基于静态和动态结合的漏洞验证方法、设备和介质 | |
CN111008147B (zh) | 应用程序的测试方法、终端及计算机可读存储介质 | |
CN110737577B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |