网络空间安全论文笔记3——缺陷
A systematic literature review on software detect prediction using artificial intelligence: Datasets, Data Validation Methods, Approaches, and Tools
软件缺陷预测的系统文献综述:从数据集、数据验证方法、缺陷检测和预测方法、工具以及对未来研究人员的建议几个角度展开
缺陷预测方法框架
发现缺陷的方法:使用传统方法检测缺陷和使用AI方法预测缺陷
缺陷检测:手动测试用例执行(具体可分类为黑盒/白盒/冒烟/用户验收/可用性/性能测试,非常耗时)、自动化缺陷检测(软件框架驱动测试用例)、运行静态代码分析器(检查预定义的规则)、手动代码审查、同行审查
缺陷预测:基于软件项目分类、基于缺陷预测指标分类、统计分类、基于AI技术分类
基于软件项目分类(使用项目本身信息):项目内缺陷预测WPDP、跨项目缺陷预测CPDP、跨版本缺陷预测CVDP、异构缺陷预测HDP
基于指标分类:类(RFC)、代码行(LOC)和缺乏编码质量(LOCQ)等指标,过程度量、代码度量、面向对象度量
基于AI技术分类
评价指标:AUC、PF、F-Measure、Recall、Precision
数据集:主要来自于 NASA、PROMISE 和 AEEEM 数据集
具有类不平衡(解决方法:Bagging、过采样、欠采样、综合少数过采样技术 SMOTE、两阶段成本敏感学习)、维度过高(解决方法:降维、筛选部分特征)、预测特征不足、分类标签不足
特征选择:基于相关性/过滤器/聚类/前向选择/贪心前向选择/遗传蚁群优化/相似性度量/卡方/信息增益/PCA/KPCA等方法
高质量、平衡且无噪音的数据非常重要。毫无疑问,数据预处理是机器学习或人工智能相关任务中的重要一步
数据集(进一步丰富以添加有助于预测缺陷估计、资源分配和修复缺陷的代码参考的附加功能)
A deep tree-based model for software defect prediction
研究背景
机器学习方法:提取特征(代码大小、复杂度、流失指标),交给分类器(朴素贝叶斯、支持向量机、随机森林),不能真正理解代码的语法语义
自然语言处理技术:词袋BoW,依旧具有语义理解方面的局限
实例:具有相似的软件度量、代码标记和频率,不同的句法和语义结构
研究成果
提出了一个树形结构的LSTM模型(每个AST节点对应网络中一个LSTM单元),在项目内预测和跨项目预测任务上取得各类指标的突破
模型实现
1)解析源代码:将源代码文件解析为抽象语法树。AST的根代表一个完整的源文件,其子项都是文件的顶部元素,例如导入和类声明。每个类声明节点都有多个子节点,它们代表类的字段或方法。一个方法声明节点也有多个子节点,代表它的名称、参数参数、返回类型和主体。在 SimpleName 节点的情况下,我们用其 AST 类型(例如 FieldDeclaration、MethodDeclaration、BlockStmt 和 WhileStmt)或它的 AST 名称(例如变量名称、类名称和方法名称)标记每个树节点
2)嵌入AST节点:将AST节点映射为一个固定长度的连续值向量。嵌入矩阵随机初始化,然后在训练过程中学习
3)缺陷预测模型:Tree-LSTM 单元被建模为函数 t-lstm(),它以 AST 节点 t 作为输入并输出两个向量:h(表示隐藏的输出状态)和 c(表示它记住的上下文仍远在 AST 中)。这是通过聚合后代的输出来完成的,即在子节点上递归调用 t-lstm()
数据集
1)三星提供的开源项目,由三星的静态分析工具对有缺陷的文件进行识别
2)PROMISE数据集
网络空间安全论文笔记3——缺陷相关推荐
- 网络空间安全论文笔记2——漏洞
Exploitability prediction of software vulnerabilities 预测漏洞:基于计数的方法(侧重于预测特定时间范围内软件系统中存在的漏洞数量,在理解安全趋势. ...
- 网络空间安全论文笔记4
VulDeePecker: A Deep Learning-Based System for Vulnerability Detection. (NDSS 2018) VulDeePecher:一种基 ...
- 2019 DGF(深度引导滤波网络) 相关的论文笔记
文章目录 *Fast End-to-End Trainable Guided Filter* *KeyPoint* *overview* *keywords* *extends* 摘要 引言 相关工作 ...
- 2019寒假训练营寒假作业(三) MOOC的网络空间安全概论笔记部分
目录 第五章 网络攻防技术 5.1:网络信息收集技术--网络踩点 信息收集的必要性及内容 网络信息收集技术 网络踩点(Footprinting) 网络踩点常用手段 5.2:网络信息收集技术 --网络扫 ...
- usermode linux网络空间,(RHCE笔记)linux基础之三 用户、组及权限
一.user 1.每个用户将指派唯一用户ID(UID) root的ID为0 普通用户ID从500开始(0-500系统使用) 2.用户名和用户ID存在 /etc/passwd中 3.当用户登陆时系统自动 ...
- 论文笔记目录(ver2.0)
1 时间序列 1.1 时间序列预测 论文名称 来源 主要内容 论文笔记:DCRNN (Diffusion Convolutional Recurrent Neural Network: Data-Dr ...
- Deep Learning论文笔记之(七)深度网络高层特征可视化
Deep Learning论文笔记之(七)深度网络高层特征可视化 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感 ...
- 【论文笔记】—低照度图像增强—ZeroShot—RUAS网络—2021-CVPR
论文介绍 题目:Retinex-Inspired Unrolling With Cooperative Prior Architecture Search for Low-Light Image E ...
- 论文笔记(FCN网络,语义分割):Fully Convolutional Networks for Semantic Segmentation
FCN论文笔记:Fully Convolutional Networks for Semantic Segmentation 语义分割模型结构时序: FCN SegNet Dilated Convol ...
最新文章
- Jenkins maven 编译一些问题
- 计算机里的音乐都是什么名字,PAPI
- golang中的爬虫
- selinux关闭后mysql_centos下关闭selinux不重启的方法
- cookie session token区别_cookie、session与token的真正区别
- 迪杰特斯拉算法的实现
- [导入]值得收藏经典民间偏方
- Java反射机制介绍
- WinFom中经典小游戏(含源码)
- mysql建表语句转oracle_MYSQL事务他快你慢,都是你自己惹的祸
- Android桌面隐藏图标
- 基于fabric的行业联盟链技术研究/司帅帅
- 免费云服务器申请攻略!白嫖党乐开了花
- 第九次java课堂笔记
- 诗词格律[1] 诗词入门
- JavaScript的字符串去空格
- 【毕业设计】大数据电商销售预测分析 - python 数据分析
- ubantu提交代码Warning:subject >50 characters; use shorter first paragraph怎么解决
- erdas图像增强步骤_ERDAS图像增强处理.ppt
- 简单又好用的5款小工具软件