开发者社区 > 云原生 > 正文

阿里巴巴代码缺陷检测探索中,还有哪些缺陷检测或补丁推荐技术?

阿里巴巴代码缺陷检测探索中,还有哪些缺陷检测或补丁推荐技术?

展开
收起
vncamyi27xznk 2021-12-15 23:42:56 428 0
1 条回答
写回答
取消 提交回答
  • image.png 1.Simfix 和 CBCD 主要是基于缺陷报告的补丁生成,利用代码克隆把缺陷报告和补丁迁移到新代码上。 2.Ubisoft 的 CLEVER 首先基于特征做了 commit 级别的缺陷预测,对风险较大的一些 commit 做二次检测,二次检测的方法是将缺陷报告根据代码的 dependency 聚类起来,然后做抽象语法树的节点相似度比较,游戏代码往往有一些相似的缺陷。 3.Bugram 是将代码解析成 token 序列,利用 Ngram 算法来预测出现某一个 token 的概率,概率低的 token 可能是个缺陷点,这种方法当代码复杂度变高或代码词汇数量过大后,效果就急剧下降。 4.Infer,Getafix,Sapfix 都是 Facebook 提出的,做的都很不错。Sapfix 主要是针对移动手机的 UI 做类似 Fuzzing 的缺陷检测,Infer 主要针对代码的 NPE 问题做了偏规则的检查,所以准确率较高,Getafix 是在 Infer 的检测结果的基础之上,对工程师修复的补丁做了模式聚类,将常用的 NPE 修复模式统计生成出来。 5.Tricorder 和 Findbugs 等工具都是比较成熟的代码检测器,开发者可以基于这之上定制自己的 检测机制,但比较依赖规则的人工制定。

    答复内容摘自《云原生技术与架构实践年货小红书》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1127

    2021-12-16 14:47:51
    赞同 展开评论 打赏
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
阿里巴巴代码缺陷检测探索与实践 立即下载
代码未写,漏洞已出——谈谈设计不当导致的安全问题 立即下载
CloudDBA 智能诊断平台如何帮助客户定位和解决问题 立即下载