CN108009080B - 一种代码扫描工具的评估方法及装置 - Google Patents

一种代码扫描工具的评估方法及装置 Download PDF

Info

Publication number
CN108009080B
CN108009080B CN201610977423.8A CN201610977423A CN108009080B CN 108009080 B CN108009080 B CN 108009080B CN 201610977423 A CN201610977423 A CN 201610977423A CN 108009080 B CN108009080 B CN 108009080B
Authority
CN
China
Prior art keywords
scanning
result
project
code
sample library
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
Application number
CN201610977423.8A
Other languages
English (en)
Other versions
CN108009080A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610977423.8A priority Critical patent/CN108009080B/zh
Publication of CN108009080A publication Critical patent/CN108009080A/zh
Application granted granted Critical
Publication of CN108009080B publication Critical patent/CN108009080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种代码扫描工具的评估方法及装置,所述方法包括:利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息。将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息。根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果。本发明提供的代码扫描工具的评估方法能够对代码扫描工具进行准确评估,真实的反映各个代码扫描工具的扫描能力。

Description

一种代码扫描工具的评估方法及装置
技术领域
本发明涉及数据处理领域,具体涉及一种代码扫描工具的评估方法及装置。
背景技术
在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的工具称为代码扫描工具,如目前比较常用的产品resharper,gendarme,coverity等。由于不同的代码扫描工具扫描能力不同,如何对各种代码扫描工具进行有效评估,为用户选择代码扫描工具提供参考是目前需要解决的问题。
目前并没有一个相对成熟的对各种代码扫描工具进行评估的实现体系,用户在选择代码扫描工具对程序代码进行扫描时,需要分别利用各种代码扫描工具对该程序代码进行扫描,通过人工比对扫描结果确定哪个代码扫描工具的扫描能力更强。
所以,目前亟需一种代码扫描工具的评估方法,能够对各种代码扫描工具进行准确评估,真实反映各个代码扫描工具的扫描能力,为用户选择代码扫描工具提供有效依据。
发明内容
本发明提供了一种代码扫描工具的评估方法及装置,能够对代码扫描工具进行准确评估,真实反映各个代码扫描工具的扫描能力。
本发明提供的一种代码扫描工具的评估方法,所述方法包括:
利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息;
将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息;
根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果。
优选地,所述预期扫描结果中还包括所述基础样本库中各个检查项分别对应的检查代码的错误报错信息。
优选地,所述将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到对比结果之前,还包括:
预先解析所述基础样本库中各个检查项分别对应的检查代码中的标记,生成所述基础样本库的预期扫描结果,其中,所述检查代码中的标记为通过宏或者注释进行标记得到。
优选地,所述方法还包括:
利用所述待评估的代码扫描工具对预先建立的项目样本库中的项目代码进行扫描,得到项目扫描结果,其中,所述项目扫描结果包括项目代码的报错信息;
将所述项目扫描结果与所述项目样本库的预期项目扫描结果进行交叉对比,得到第二对比结果,所述预期项目扫描结果中包括所述项目样本库中项目代码的正确报错信息;
相应的,所述根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果,具体为:
结合所述第一对比结果和所述第二对比结果,生成所述待评估的代码扫描工具的评估结果。
优选地,所述预期项目扫描结果中还包括所述项目样本库中项目代码的错误报错信息。
优选地,所述方法还包括:
将所述待评估的代码扫描工具的评估结果与所述待评估的代码扫描工具的标识建立对应关系,所述标识包括版本号或代码扫描工具名称;
依据代码扫描工具的标识,对不同标识对应的代码扫描工具的评估结果进行比较,得到不同标识对应的代码扫描工具之间的比较结果。
本发明还提供了一种代码扫描工具的评估装置,所述装置包括:
第一扫描模块,用于利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息;
第一对比模块,用于将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息;
第一生成模块,用于根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果。
优选地,所述第一对比模块中的所述预期扫描结果中还包括所述基础样本库中各个检查项分别对应的检查代码的错误报错信息。
优选地,所述装置,还包括:
第二生成模块,用于预先解析所述基础样本库中各个检查项分别对应的检查代码中的标记,生成所述基础样本库的预期扫描结果,其中,所述检查代码中的标记为通过宏或者注释进行标记得到。
优选地,所述装置还包括:
第二扫描模块,用于利用所述待评估的代码扫描工具对预先建立的项目样本库中的项目代码进行扫描,得到项目扫描结果,其中,所述项目扫描结果包括项目代码的报错信息;
第二对比模块,用于将所述项目扫描结果与所述项目样本库的预期项目扫描结果进行交叉对比,得到第二对比结果,所述预期项目扫描结果中包括所述项目样本库中项目代码的正确报错信息;
相应的,所述第一生成模块,具体用于结合所述第一对比结果和所述第二对比结果,生成所述待评估的代码扫描工具的评估结果。
优选地,所述第二对比模块中的所述预期项目扫描结果中还包括所述项目样本库中项目代码的错误报错信息。
优选地,所述装置还包括:
建立模块,用于将所述待评估的代码扫描工具的评估结果与所述待评估的代码扫描工具的标识建立对应关系,所述标识包括版本号或代码扫描工具名称;
比较模块,用于依据代码扫描工具的标识,对不同标识对应的代码扫描工具的评估结果进行比较,得到不同标识对应的代码扫描工具之间的比较结果。
本发明提供了一种代码扫描工具的评估方法,首先,利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息。其次,将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息。最后,根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果。本发明提供的代码扫描工具的评估方法能够对代码扫描工具进行准确评估,真实的反映各个代码扫描工具的扫描能力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种代码扫描工具的评估方法流程图;
图2为本发明提供的另一种代码扫描工具的评估方法流程图;
图3为本发明提供的一种代码扫描工具的评估装置结构示意图;
图4为本发明提供的另一种代码扫描工具的评估装置结构示意图;
图5为本发明提供的一种计算机的部分结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本发明实施例提供的一种代码扫描工具的评估方法流程图,所述方法具体可以包括:
S101:利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息。
本发明实施例中,预先建立基础样本库,其中所述基础样本库中包括若干检查项,如空指针错误检查项、未初始化错误检查项、数组访问越界检查项、除零检查项等等,各个检查项用于检查出对应的错误类型,如空指针错误检查项用于检查出空指针错误。本发明实施例中的基础样本库需要覆盖尽量多的检查项,以便能够检查出代码扫描工具的错误类型覆盖率,即代码扫描工具能够检查出的错误类型。
为了检查出待评估的代码扫描工具是否能够扫描出程序代码中的各种错误类型,本发明实施例分别为各个检查项构建检查代码。在所述待评估的代码扫描工具扫描检查代码时,如果能够扫描出所述检查代码中的对应类型的错误,则说明所述待评估的代码扫描工具对这种类型的错误具有覆盖能力;否则说明所述待评估的代码扫描工具不能扫描出程序代码中这种类型的错误。
本发明实施例在确定待评估的代码扫描工具后,首先利用所述待评估的代码扫描工具对基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果。具体的,所述扫描结果包括利用所述待评估的代码扫描工具对所述基础样本库中各个检查项分别对应的检查代码进行扫描后,各个检查代码的报错信息,所述报错信息包括报错位置、错误类型等。例如,报错信息可以包括哪个检查代码中的哪一行报了哪种类型的错误等信息。
S102:将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息。
本发明实施例中,针对预先建立的基础样本库,预先生成所述基础样本库的预期扫描结果。其中,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息,换句话说,所述预期扫描结果为对所述基础样本库进行扫描后应该报出的错误信息,即所述基础样本库中真实存在的错误信息。所述预期扫描结果中的正确报错信息可以包括报错位置、错误类型等。例如,所述正确报错信息可以包括哪个检查代码中的哪一行应该报出哪种类型的错误等信息。
另外,本发明实施例中的预期扫描结果还可以包括所述基础样本库中各个检查项分别对应的检查代码的错误报错信息,也可以理解为,所述错误报错信息是不存在于检查代码中的,如果待评估的代码扫描工具扫描检查代码后报出这样的错误,则说明所述待评估的代码扫描工具是误报。所述预期扫描结果中的错误报错信息也包括报错位置、错误类型等。例如,所述错误报错信息可以包括哪个检查代码中不应该在哪一行报出哪种类型的错误等信息。
实际应用中,实现基础样本库的预期扫描结果生成的方法较多,本发明实施例提出了一种生成基础样本库的预期扫描结果的方法,具体的,在建立基础样本库时,通过宏或者注释对所述基础样本库中的各个检查项分别对应的检查代码中的正确报错信息和错误报错信息进行标记。通过解析各个检查代码中的标记,生成所述基础样本库的预期扫描结果,即生成所述基础样本库中各个检查代码的正确报错信息和错误报错信息。
本发明实施例在获取到所述待评估的代码扫描工具的扫描结果后,与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果。
具体的,由于所述扫描结果与所述预期扫描结果的格式可能不一致,为了实现交叉对比,本发明实施例可以利用适配器调整所述扫描结果与所述预期扫描结果的格式,使得他们能够进行交叉对比,最终得到第一对比结果。其中,所述第一对比结果用于标识所述扫描结果与所述预期扫描结果之间的区别。例如,所述预期扫描结果中包括某个检查代码中的第5行存在空指针错误,而所述扫描结果中并不包括该检查代码中第5行报出的空指针错误,说明所述待评估的代码扫描工具本身存在缺陷,即应该报出的错误未存在于所述扫描结果中。再例如,所述预期扫描结果中包括某个检查代码中的第6行不存在空指针错误,但是在所述扫描结果中包括该检查代码中第6行报出的空指针错误,则说明所述待评估的代码扫描工具本身存在缺陷,即不应该报错的情况却存在于最终的扫描结果中。
S103:根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果。
由于基础样本库中需要包括尽量多的检查项,所以,本发明实施例利用所述待评估的代码扫描工具对所述基础样本库进行扫描后,得到的扫描结果与预期扫描结果进行交叉对比,最终得到的第一对比结果能够全面的反映出所述待评估的代码扫描工具能够正确扫描出的错误类型,以及不能正确扫描出的错误类型。
本发明实施例根据得到的第一对比结果,生成所述待评估的代码扫描工具的评估结果,其中,所述评估结果包括错误类型覆盖率、误报率、误报数量、有效报错数量等等。具体的,由于第一对比结果能够表示出所述待评估的代码扫描工具能够正确扫描出的错误类型,所以,可以利用统计方法计算所述待评估的代码扫描工具的错误类型覆盖率、误报数量、误报率、有效报错数量等等,所述错误类型覆盖率即所述待评估的代码扫描工具能够正确扫描出的错误类型占基础样本库中所有检查项对应的错误类型的百分比。
由于本发明实施例提供的基础样本库不能够全面的反映出代码扫描工具的扫描能力,所以,本发明实施例在基础样本库的基础上,还可以选取若干实际的项目代码建立项目样本库,以反映真实项目中代码的多样性和复杂性。利用项目样本库评估代码扫描工具在具有多样性和复发性特点的真实项目中的扫描能力。
因此,本发明实施例还提供了一种代码扫描工具的评估方法,参考图2,图2为本发明实施例提供的另一种代码扫描工具的评估方法流程图。具体的,所述方法包括:
S201:利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息。
S202:将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息。
S203:利用所述待评估的代码扫描工具对预先建立的项目样本库中的项目代码进行扫描,得到项目扫描结果,其中,所述项目扫描结果包括项目代码的报错信息。
本发明实施例中,预先选取若干实际的项目代码建立项目样本库,具体的,为了能够更真实的反映出项目代码多样性和复杂性等特点,本发明实施例提供的项目代码选取标准包括但不限于以下三个:
第一、为了更真实的反映项目代码的多样性,从项目代码的代码量角度来看,本发明实施例建立的项目样本库中可以包括1-2个大型项目(100万代码行以上)、4-5个中型项目(50万代码行左右)和2-3个小型项目(20万以下代码行)。由于这样部署的项目样本库包括各种量级的项目,所以能够更全面的反映项目代码的多样性。
第二、为了保证系统对代码扫描工具的评估效率,项目代码库中不能够选取需要扫描时间过长的项目代码,最好选取扫描时间适中的项目代码,
第三、为了更真实的反映项目代码的复杂性,本发明实施例可以选取报错类型尽量多的项目代码,代码扫描工具对某个项目代码扫描后报错类型越多,则说明该项目代码越能够真实的反映项目代码的复杂性。
本发明实施例利用待评估的代码扫描工具对所述项目样本库中的项目代码进行扫描,得到项目扫描结果。其中,所述项目扫描结果包括利用所述待评估的代码扫描工具扫描所述项目样本库中的项目代码后得到的报错信息。例如,所述报错信息包括报错位置、错误类型等。例如,报错信息可以包括哪个项目代码中的哪一行报了哪种类型的错误等信息。
S204:将所述项目扫描结果与所述项目样本库的预期项目扫描结果进行交叉对比,得到第二对比结果,所述预期项目扫描结果中包括所述项目样本库中项目代码的正确报错信息。
本发明实施例中,针对预先建立的项目样本库,预先生成所述项目样本库的预期项目扫描结果。其中,所述预期项目扫描结果中包括所述项目样本库中各个项目代码的正确报错信息,即各个项目代码中真实存在的错误信息。所述预期项目扫描结果中的正确报错信息可以包括报错位置、错误类型等。例如,所述正确报错信息可以包括某个项目代码中的某行应该报出某种类型的错误等信息。
另外,本发明实施例中的预期项目扫描结果还可以包括所述项目样本库中项目代码的错误报错信息,所述错误报错信息为所述项目样本库中项目代码不存在的错误信息。如果所述待评估的代码扫描工具扫描项目代码后报出这样的错误,则说明所述待评估的代码扫描工具是误报。所述预期项目扫描结果中的错误报错信息也可以包括报错位置、错误类型等。例如,所述错误报错信息可以包括某个项目代码中不应该在某行报出某种类型的错误等信息。
实际应用中,一种实现方式中,在建立项目样本库时,也可以通过宏或者注释对所述项目样本库中的各个项目代码中的正确报错信息和错误报错信息进行标记。通过解析各个项目代码中的标记,生成所述项目样本库的预期项目扫描结果,即生成所述项目样本库中各个项目代码的正确报错信息和错误报错信息。
另一种实现方式中,本发明实施例还可以通过统计不同的代码扫描工具对项目样本库进行扫描后得到的扫描结果,最终得到所述项目样本库中的各个项目代码中的正确报错信息和错误报错信息。
本发明实施例在获取到所述待评估的代码扫描工具的项目扫描结果后,与所述项目样本库的预期项目扫描结果进行交叉对比,得到第二对比结果。实际应用中,也可以利用适配器调整所述项目扫描结果与所述预期项目扫描结果的格式,使得他们能够进行交叉对比,以得到第二对比结果。其中,所述第二对比结果用于标识所述项目扫描结果与所述预期项目扫描结果之间的区别。所述第二对比结果能够显示出所述待评估的代码扫描工具在扫描实际项目代码时的有效报错数量、误报数量、误报率等,也能够体现出所述待评估的代码扫描工具对实际项目代码的扫描能力。
S205:结合所述第一对比结果和所述第二对比结果,生成所述待评估的代码扫描工具的评估结果。
由于所述第一对比结果能够全面的反映出所述待评估的代码扫描工具能够正确扫描出的错误类型,所述第二对比结果能够显示出所述待评估的代码扫描工具在扫描实际项目代码时的有效报错数量、误报数量、误报率等,所以,本发明实施例可以结合所述第一对比结果和所述第二对比结果,最终生成所述待评估的代码扫描工具的评估结果。所述评估结果直接反映所述待评估的代码扫描工具的扫描能力。
总之,本发明实施例提供的代码扫描工具的评估方法能够对代码扫描工具进行准确评估,真实的反映各个代码扫描工具的扫描能力。
另外,随着新的代码扫描工具的面市,本发明实施例中的基础样本库中的检查项需要不断的增加和完善,以匹配对代码扫描工具的扫描能力的评估。同样的,建立后项目样本库中的项目代码也不是一成不变的,随着代码扫描工具的发展,需要不断的更新能够真实评估代码扫描工具的扫描能力的项目代码。
一种实际的应用场景中,需要利用本发明实施例提供的代码扫描工具的评估方法实现不同代码扫描工具之间的横向对比,目的是评估不同的代码扫描工具对相同代码的扫描能力差异。
具体的,本发明实施例在对不同的代码扫描工具进行评估后,将得到的评估结果与代码扫描工具名称建立对应关系。比较不同的代码扫描工具名称分别对应的评估结果之间的差异,得到不同的代码扫描工具之间的比较结果,根据所述比较结果能够评估不同的代码扫描工具对相同代码的扫描能力差异。具体的,本发明实施例能够从对每个检查项的有效报错数、误报数、误报率等,以及错误类型覆盖率几个维度实现不同代码扫描工具之间的横向对比。
另一种实际的应用场景中,需要利用本发明实施例提供的代码扫描工具的评估方法实现代码扫描工具的不同版本之间的纵向对比,目的是评估代码扫描工具的不同版本对相同代码的扫描能力差异。
具体的,本发明实施例在对代码扫描工具的不同版本分别进行评估后,将得到的评估结果与版本号建立对应关系。比较代码扫描工具不同版本分别对应的评估结果之间的差异,得到代码扫描工具不同版本之间的比较结果,根据所述比较结果能够评估代码扫描工具不同版本对相同代码的扫描能力差异。具体的,所述比较结果中包括两个版本的代码扫描工具之间的新增、减少的错误信息,经过用户的审查后,确定有效地新增错误信息,并为代码扫描工具的开发者提供完善工具的依据。
本发明实施例还提供了一种代码扫描工具的评估装置,参考图3,为本发明实施例提供的一种代码扫描工具的评估装置结构示意图,所述装置包括:
第一扫描模块301,用于利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息;
第一对比模块302,用于将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息;
第一生成模块303,用于根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果。
其中,所述第一对比模块中的所述预期扫描结果中还包括所述基础样本库中各个检查项分别对应的检查代码的错误报错信息。
实际应用中,所述装置还可以包括:
第二生成模块,用于预先解析所述基础样本库中各个检查项分别对应的检查代码中的标记,生成所述基础样本库的预期扫描结果,其中,所述检查代码中的标记为通过宏或者注释进行标记得到。
一种实现方案中,本发明实施例还提供了另一种代码扫描工具的评估装置,参考图4,为本发明实施例提供的另一种代码扫描工具的评估装置结构示意图,所述装置不仅包括图3中的各个模块,还包括:
第二扫描模块401,用于利用所述待评估的代码扫描工具对预先建立的项目样本库中的项目代码进行扫描,得到项目扫描结果,其中,所述项目扫描结果包括项目代码的报错信息;
第二对比模块402,用于将所述项目扫描结果与所述项目样本库的预期项目扫描结果进行交叉对比,得到第二对比结果,所述预期项目扫描结果中包括所述项目样本库中项目代码的正确报错信息;
相应的,所述第一生成模块303,具体用于结合所述第一对比结果和所述第二对比结果,生成所述待评估的代码扫描工具的评估结果。
具体的,所述第二对比模块中的所述预期项目扫描结果中还包括所述项目样本库中项目代码的错误报错信息。
实际应用中,所述装置还包括:
建立模块,用于将所述待评估的代码扫描工具的评估结果与所述待评估的代码扫描工具的标识建立对应关系,所述标识包括版本号或代码扫描工具名称;
比较模块,用于依据代码扫描工具的标识,对不同标识对应的代码扫描工具的评估结果进行比较,得到不同标识对应的代码扫描工具之间的比较结果。
本发明提供的一种代码扫描工具的评估装置能够实现以下功能:利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息。将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息。根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果。本发明提供的代码扫描工具的评估装置能够对代码扫描工具进行准确评估,真实的反映各个代码扫描工具的扫描能力。
相应的,本发明实施例还提供一种计算机,参见图5所示,可以包括:
处理器501、存储器502、输入装置503和输出装置504。浏览器服务器中的处理器501的数量可以一个或多个,图5中以一个处理器为例。在本发明的一些实施例中,处理器501、存储器502、输入装置503和输出装置504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行浏览器服务器的各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置503可用于接收输入的数字或字符信息,以及产生与浏览器服务器的用户设置以及功能控制有关的键信号输入。
具体在本实施例中,处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息;
将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息;
根据所述第一对比结果,生成所述待评估的代码扫描工具的评估结果。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明实施例所提供的一种代码扫描工具的评估方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种代码扫描工具的评估方法,其特征在于,所述方法包括:
利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,以检查所述检查代码中对应类型的错误,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息;所述各个检查项至少包括空指针错误检查项、未初始化错误检查项、数组访问越界检查项与除零检查项中的至少一项;
将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息;
利用所述待评估的代码扫描工具对预先建立的项目样本库中的项目代码进行扫描,得到项目扫描结果,其中,所述项目扫描结果包括项目代码的报错信息;所述项目样本库中的项目代码为真实项目中的代码;
将所述项目扫描结果与所述项目样本库的预期项目扫描结果进行交叉对比,得到第二对比结果,所述预期项目扫描结果中包括所述项目样本库中项目代码的正确报错信息;
结合所述第一对比结果和所述第二对比结果,生成所述待评估的代码扫描工具的评估结果。
2.根据权利要求1所述的代码扫描工具的评估方法,其特征在于,所述预期扫描结果中还包括所述基础样本库中各个检查项分别对应的检查代码的错误报错信息。
3.根据权利要求1或2所述的代码扫描工具的评估方法,其特征在于,所述将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到对比结果之前,还包括:
预先解析所述基础样本库中各个检查项分别对应的检查代码中的标记,生成所述基础样本库的预期扫描结果,其中,所述检查代码中的标记为通过宏或者注释进行标记得到。
4.根据权利要求1所述的代码扫描工具的评估方法,其特征在于,所述预期项目扫描结果中还包括所述项目样本库中项目代码的错误报错信息。
5.根据权利要求1所述的代码扫描工具的评估方法,其特征在于,所述方法还包括:
将所述待评估的代码扫描工具的评估结果与所述待评估的代码扫描工具的标识建立对应关系,所述标识包括版本号或代码扫描工具名称;
依据代码扫描工具的标识,对不同标识对应的代码扫描工具的评估结果进行比较,得到不同标识对应的代码扫描工具之间的比较结果。
6.一种代码扫描工具的评估装置,其特征在于,所述装置包括:
第一扫描模块,用于利用待评估的代码扫描工具对预先建立的基础样本库中各个检查项分别对应的检查代码进行扫描,以检查所述检查代码中对应类型的错误,得到扫描结果,其中,所述扫描结果包括各个检查项分别对应的检查代码的报错信息;所述各个检查项至少包括空指针错误检查项、未初始化错误检查项、数组访问越界检查项与除零检查项中的至少一项;
第一对比模块,用于将所述扫描结果与所述基础样本库的预期扫描结果进行交叉对比,得到第一对比结果,所述预期扫描结果中包括所述基础样本库中各个检查项分别对应的检查代码的正确报错信息;
第二扫描模块,用于利用所述待评估的代码扫描工具对预先建立的项目样本库中的项目代码进行扫描,得到项目扫描结果,其中,所述项目扫描结果包括项目代码的报错信息;所述项目样本库中的项目代码为真实项目中的代码;
第二对比模块,用于将所述项目扫描结果与所述项目样本库的预期项目扫描结果进行交叉对比,得到第二对比结果,所述预期项目扫描结果中包括所述项目样本库中项目代码的正确报错信息;
所述第一生成模块,用于结合所述第一对比结果和所述第二对比结果,生成所述待评估的代码扫描工具的评估结果。
7.根据权利要求6所述的代码扫描工具的评估装置,其特征在于,所述第一对比模块中的所述预期扫描结果中还包括所述基础样本库中各个检查项分别对应的检查代码的错误报错信息。
8.根据权利要求6或7所述的代码扫描工具的评估装置,其特征在于,所述装置,还包括:
第二生成模块,用于预先解析所述基础样本库中各个检查项分别对应的检查代码中的标记,生成所述基础样本库的预期扫描结果,其中,所述检查代码中的标记为通过宏或者注释进行标记得到。
9.根据权利要求6所述的代码扫描工具的评估装置,其特征在于,所述第二对比模块中的所述预期项目扫描结果中还包括所述项目样本库中项目代码的错误报错信息。
10.根据权利要求6所述的代码扫描工具的评估装置,其特征在于,所述装置还包括:
建立模块,用于将所述待评估的代码扫描工具的评估结果与所述待评估的代码扫描工具的标识建立对应关系,所述标识包括版本号或代码扫描工具名称;
比较模块,用于依据代码扫描工具的标识,对不同标识对应的代码扫描工具的评估结果进行比较,得到不同标识对应的代码扫描工具之间的比较结果。
11.一种计算机,其特征在于,包括存储器与处理器;
所述存储器用于存储软件程序;
所述处理器用于通过运行所述软件程序,以执行如权利要求1-5任一项所述的代码扫描工具的评估方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有软件程序,所述软件程序用于在被处理器执行时,实现如权利要求1-5任一项所述的代码扫描工具的评估方法。
CN201610977423.8A 2016-10-28 2016-10-28 一种代码扫描工具的评估方法及装置 Active CN108009080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610977423.8A CN108009080B (zh) 2016-10-28 2016-10-28 一种代码扫描工具的评估方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610977423.8A CN108009080B (zh) 2016-10-28 2016-10-28 一种代码扫描工具的评估方法及装置

Publications (2)

Publication Number Publication Date
CN108009080A CN108009080A (zh) 2018-05-08
CN108009080B true CN108009080B (zh) 2021-06-15

Family

ID=62048448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610977423.8A Active CN108009080B (zh) 2016-10-28 2016-10-28 一种代码扫描工具的评估方法及装置

Country Status (1)

Country Link
CN (1) CN108009080B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408389B (zh) * 2018-10-30 2020-10-16 北京理工大学 一种基于深度学习的代码缺陷检测方法及装置
CN110275827A (zh) * 2019-05-31 2019-09-24 北京大米科技有限公司 一种代码缺陷判断方法、装置、存储介质及电子设备
CN110457902A (zh) * 2019-06-25 2019-11-15 平安银行股份有限公司 银行系统的静态源代码扫描方法、装置及计算机存储介质
CN111143204B (zh) * 2019-12-19 2021-06-29 支付宝(杭州)信息技术有限公司 一种小程序代码扫描方法和装置
CN112084110B (zh) * 2020-09-08 2024-05-28 北京百度网讯科技有限公司 数据处理方法、装置、设备以及存储介质
CN112256580B (zh) * 2020-10-23 2024-02-13 济南浪潮数据技术有限公司 一种代码扫描方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102354310A (zh) * 2011-07-12 2012-02-15 广东电网公司信息中心 一种自动化信息安全评估的方法及装置
CN104520871A (zh) * 2012-07-31 2015-04-15 惠普发展公司,有限责任合伙企业 漏洞矢量信息分析

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060124A1 (en) * 2003-09-17 2005-03-17 Feng Chen Method and apparatus to enhance product remote customer serviceability

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102354310A (zh) * 2011-07-12 2012-02-15 广东电网公司信息中心 一种自动化信息安全评估的方法及装置
CN104520871A (zh) * 2012-07-31 2015-04-15 惠普发展公司,有限责任合伙企业 漏洞矢量信息分析

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Web应用安全漏洞扫描技术研究;张楠;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160215;I139-105 *

Also Published As

Publication number Publication date
CN108009080A (zh) 2018-05-08

Similar Documents

Publication Publication Date Title
CN108009080B (zh) 一种代码扫描工具的评估方法及装置
CN107391379B (zh) 接口自动测试方法及装置
EP3563243B1 (en) Determining application test results using screenshot metadata
US9710257B2 (en) System and method to map defect reduction data to organizational maturity profiles for defect projection modeling
US20160292068A1 (en) Code coverage rate determination method and system
CN106874187B (zh) 代码覆盖率收集方法和装置
CN108763076A (zh) 一种软件自动测试方法、装置、设备及介质
CN109522228B (zh) 接口自动化测试数据构造方法、装置、平台及存储介质
CN107045477B (zh) 一种可进行多维度检测的质量评估平台
CN110362479B (zh) 系统升级测试方法和系统
CN111026647B (zh) 代码覆盖率的获取方法、装置、计算机设备和存储介质
CN105468507B (zh) 分支达标检测方法及装置
CN113535538A (zh) 应用全链路自动化测试方法、装置、电子设备和存储介质
US9563541B2 (en) Software defect detection identifying location of diverging paths
CN114237466A (zh) 一种巡检点配置方法及装置
CN111680463A (zh) 一种文件检查方法和装置
CN112748950B (zh) 一种软件代码审查方法及装置
CN106294109A (zh) 获取缺陷代码的方法及装置
CN112988578A (zh) 一种自动化测试方法和装置
CN111858377A (zh) 测试脚本的质量评价方法、装置、电子设备及存储介质
CN116016270A (zh) 一种交换机测试管理方法、装置、电子设备和存储介质
CN115309661A (zh) 一种应用测试方法、装置、电子设备及可读存储介质
CN114064489A (zh) 一种自动化测试方法、装置、设备及可读存储介质
CN113868137A (zh) 埋点数据的处理方法、装置、系统和服务器
CN114020645A (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