一种代码分析工具的管理方法、装置、设备及介质制造方法及图纸

技术编号:28978086 阅读:18 留言:0更新日期:2021-06-23 09:23
本申请提供了一种代码分析工具的管理方法,代码分析工具承载有代码分析模块。该方法包括:根据代码分析工具的使用者对缺陷代码的修复行为,获取至少一个使用者修复实例,根据使用者修复实例和代码分析工具对缺陷代码进行修复生成的至少一个系统修复实例生成测试预言,根据测试预言对代码分析模块进行处理,以实现对代码分析工具的管理,从而解决了耗费大量人力成本和时间成本的问题,具有较高可用性。

【技术实现步骤摘要】
一种代码分析工具的管理方法、装置、设备及介质
本申请涉及计算机领域,尤其涉及一种代码分析工具的管理方法、装置、设备及介质。
技术介绍
在进行软件开发时,常常需要对软件的代码进行缺陷检测。考虑到检测成本问题,业界提供了一种代码分析工具。代码分析工具中承载有代码分析模块,通过运行上述代码分析模块可以实现自动地代码缺陷检测。代码分析模块的有效性直接决定了代码分析工具进行代码缺陷检测的质量。其中,有效性可以通过误报率(falsepositivesratio,FPR)和漏报率(falsenegativeratio,FNR)中的至少一个指标进行衡量。为了使得代码分析工具能够正常使用,一般需要对代码分析模块的有效性进行监管。具体地,当代码分析模块的有效性较低时,通过对代码分析模块进行优化以提升代码分析模块的有效性。进一步地,当某一代码分析模块优化时,还需要对代码分析模块的有效性进行看护,即监测优化后的代码分析模块是否引入新的有效性问题。目前,业界提出了一些对代码分析模块的有效性进行看护和提升的方法,但是已有的这些方法需要花费大量的人力成本和时间成本,可行性不高。基于此,如何提供一种代码分析工具的管理方法,以保障代码分析工具中代码分析模块的有效性成为亟待解决的问题。
技术实现思路
本申请提供了一种代码分析工具的管理方法,解决了在对代码分析工具进行管理时需要花费大量的人力成本和时间成本的问题,具有较高的可行性。本申请还提供了对应的装置、计算机集群、计算机可读存储介质以及计算机程序产品。第一方面,本申请提供了一种代码分析工具的管理方法,该方法可以应用于服务装置。服务装置是提供代码分析工具的管理服务的装置。服务装置可以与使用装置(代码分析工具的使用者的装置)、开发装置(代码分析工具的开发者的装置)组成代码分析工具的管理系统。服务装置中部署代码分析工具,代码分析工具承载有代码分析模块。服务装置可以利用该代码分析模块对代码进行分析,得到缺陷代码。在具体实现时,服务装置可以根据代码分析工具的使用者对缺陷代码的修复行为,获取至少一个使用者修复实例,然后根据使用者修复实例和代码分析工具对缺陷代码进行修复生成的至少一个系统修复实例生成测试预言,接着根据测试预言对代码分析模块进行处理,以实现对代码分析工具的管理。该方法通过自动生成测试预言并基于测试预言实现对代码分析工具的管理,避免了开发者手动编写测试实例导致的人力成本和时间成本。而且,无需开发者逐个与使用者沟通以获取误报代码,节省了沟通成本,提高了代码分析工具的管理效率,具有较高可用性。结合第一方面,在第一方面的第一种可能的实现方式中,服务装置可以根据使用者修复实例和系统修复实例的关联关系确定正确修复实例、漏报修复实例和误报修复实例中的至少一种,然后根据正确修复实例、漏报修复实例和误报修复实例中的至少一种生成测试预言。对应地,所述测试预言包括正确测试预言、漏报测试预言和误报测试预言中的至少一种。如此,通过代码分析工具与使用者交互过程中智能提取使用者意图,基于使用者意图自动生成测试预言,无需开发者人工编写测试用例。结合第一方面的第一种实现方式,在第一方面的第二种实现方式中,测试预言具体包括正确测试预言,基于此,服务装置可以根据该正确测试预言对代码分析模块进行回归测试,确定代码分析模块的有效性,从而实现对代码分析模块的看护。结合第一方面的第一种实现方式或第二种实现方式,在第一方面的第三种实现方式中,测试预言具体包括漏报测试预言和/或误报测试预言,基于此,服务装置可以根据所述漏报测试预言和/或误报测试预言更新所述代码分析模块,从而提升代码分析模块的有效性。结合第一方面的第一种实现方式至第三种实现方式中的任一种实现方式,在第一方面的第四种实现方式中,使用者对缺陷代码的修复行为具体为所述使用者针对所述代码分析工具修复后的代码的二次修复行为。此时,服务装置可以通过如下方式确定正确修复实例、漏报修复实例和/或误报修复实例:所述系统修复实例与所述使用者修复实例关联失败时,确定所述系统修复实例为正确修复实例;所述系统修复实例与所述使用者修复实例关联成功时,确定所述系统修复实例为误报修复实例;所述使用者修复实例与所述系统修复实例关联失败时,确定所述使用者修复实例为漏报修复实例。该过程可以在用户无感知的情况下完成,减少了用户操作,提高了代码分析工具的管理系统的自动化程度。结合第一方面或者第一方面的第一种实现方式至第四种实现方式中的任一种实现方式,在第一方面的第五种实现方式中,测试预言记录有所述缺陷代码的标识,所述缺陷代码的标识用于索引所述缺陷代码以及所述缺陷代码的上下文。由于测试预言中缺陷代码的标识能够索引缺陷代码以及缺陷代码的上下文,一方面可以避免测试预言仅按照分析顺序定义在测试用例中,导致在一些测试场景下无法获取到相应代码从而出现测试失效的情况。另一方面,还可以实现对待分析代码的跨文件分析,提高缺陷代码检测的精确度。第二方面,本申请提供了一种服务装置,所述装置包括:通信单元、生成单元、管理单元和分析单元;其中,分析单元中包括代码分析工具,所述代码分析工具中包括代码分析模块;所述通信单元,用于根据所述代码分析工具的使用者对缺陷代码的修复行为,获取至少一个使用者修复实例;所述生成单元,用于根据所述使用者修复实例和所述分析单元利用所述代码分析工具对所述缺陷代码进行修复生成的至少一个系统修复实例生成测试预言;所述管理单元,还用于根据所述测试预言对所述代码分析模块进行处理,以实现对所述代码分析工具的管理。结合第二方面,在第二方面的第一种可能的实现方式中,所述生成单元具体用于:根据所述使用者修复实例和所述系统修复实例的关联关系确定正确修复实例、漏报修复实例和误报修复实例中的至少一种;根据所述正确修复实例、漏报修复实例和误报修复实例中的至少一种生成测试预言,所述测试预言包括正确测试预言、漏报测试预言和误报测试预言中的至少一种。结合第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述测试预言包括正确测试预言;所述管理单元具体用于:根据所述正确测试预言对所述代码分析模块进行回归测试,确定所述代码分析模块的有效性。结合第二方面的第一种实现方式或第二种实现方式,在第二方面的第三种实现方式中,所述测试预言包括漏报测试预言和/或误报测试预言;所述管理单元具体用于:根据所述漏报测试预言和/或误报测试预言更新所述代码分析模块。结合第二方面的第一种实现方式至第三种实现方式中的任一种实现方式,在第二方面的第四种实现方式中,所述使用者对缺陷代码的修复行为包括所述使用者针对所述代码分析工具修复后的代码的二次修复行为;所述生成单元具体用于:所述系统修复实例与所述使用者修复实例关联失败时,确定所述系统修复实例为正确修复实例;所述系统修复实例与所述使用者修复实例关联成功时,确定所述系统修复实例为误报修复实例;所述使本文档来自技高网...

【技术保护点】
1.一种代码分析工具的管理方法,其特征在于,所述代码分析工具承载有代码分析模块,所述方法包括:/n根据所述代码分析工具的使用者对缺陷代码的修复行为,获取至少一个使用者修复实例;/n根据所述使用者修复实例和所述代码分析工具对所述缺陷代码进行修复生成的至少一个系统修复实例生成测试预言;/n根据所述测试预言对所述代码分析模块进行处理,以实现对所述代码分析工具的管理。/n

【技术特征摘要】
1.一种代码分析工具的管理方法,其特征在于,所述代码分析工具承载有代码分析模块,所述方法包括:
根据所述代码分析工具的使用者对缺陷代码的修复行为,获取至少一个使用者修复实例;
根据所述使用者修复实例和所述代码分析工具对所述缺陷代码进行修复生成的至少一个系统修复实例生成测试预言;
根据所述测试预言对所述代码分析模块进行处理,以实现对所述代码分析工具的管理。


2.根据权利要求1所述的方法,其特征在于,所述根据所述使用者修复实例和所述代码分析工具对所述缺陷代码进行修复生成的至少一个系统修复实例生成测试预言,包括:
根据所述使用者修复实例和所述系统修复实例的关联关系确定正确修复实例、漏报修复实例和误报修复实例中的至少一种;
根据所述正确修复实例、漏报修复实例和误报修复实例中的至少一种生成测试预言,所述测试预言包括正确测试预言、漏报测试预言和误报测试预言中的至少一种。


3.根据权利要求2所述的方法,其特征在于,所述测试预言包括正确测试预言;
所述根据所述测试预言对所述代码分析模块进行处理,包括:
根据所述正确测试预言对所述代码分析模块进行回归测试,确定所述代码分析模块的有效性。


4.根据权利要求2或3所述的方法,其特征在于,所述测试预言包括漏报测试预言和/或误报测试预言;
所述根据所述测试预言对所述代码分析模块进行处理,包括:
根据所述漏报测试预言和/或误报测试预言更新所述代码分析模块。


5.根据权利要求2至4任一项所述的方法,其特征在于,所述使用者对缺陷代码的修复行为包括所述使用者针对所述代码分析工具修复后的代码的二次修复行为;
所述根据所述使用者修复实例和所述系统修复实例的关联关系确定正确修复实例、漏报修复实例和误报修复实例中的至少一种,包括:
所述系统修复实例与所述使用者修复实例关联失败时,确定所述系统修复实例为正确修复实例;
所述系统修复实例与所述使用者修复实例关联成功时,确定所述系统修复实例为误报修复实例;
所述使用者修复实例与所述系统修复实例关联失败时,确定所述使用者修复实例为漏报修复实例。


6.根据权利要求1至5任意一项所述的方法,其特征在于,所述测试预言记录有所述缺陷代码的标识,所述缺陷代码的标识用于索引所述缺陷代码以及所述缺陷代码的上下文。


7.一种服务装置,其特征在于,所述装置包括:通信单元、生成单元、管理单元和分析单元;其中,分析单元中包括代码分析工具,所述代码...

【专利技术属性】
技术研发人员:梁广泰王一凡洪瑜玥
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1