【软件分析与挖掘】A Comparative Study of Supervised Learning Algorithms for Re-opened Bug Prediction
摘要:
本文主要是评估多种监督机器学习算法的有效性,这些算法用于判断一个错误报告是否是reopened的,算法如下:
7种监督学习算法:kNN,SVM, SimpleLogistic,Bayesian Network, Decision Table, CARTand LWL;
3种集成学习算法: AdaBoost,Bagging and Random Forest。
实验结果表明:
评判的指标:accuracy scores和 F-Measure scores
Bagging and Decision Table取得了比较好的性能。
S1 Introduction
一个典型的错误修复通常包括4个阶段:(以Bugzilla为例)
- 检测到软件中的一个bug,发布一个bug report,状态标记为“new”;
- bug triager指派每一个bug到与之相应的开发者,状态标记为“assigned”;
- 开发者阅读bug report,验证是否是一个bug,若是,则修复它,状态标记为“verified”;
- 若不是一个bug,或已修复完毕,则bug triager会关闭这个bug,状态标记为“closed”。
然而,很多时候,一个bug必须被重新开放,因为:
- 检测到bug时并没有提供大量的信息,导致开发者对bug的真正原因判断不准确;
- 尽管在先前的系统中已被修复,bug又重新出现在当前版本的系统中。
重新开放的bug修复起来更加耗时,成本越高,因为开发者必须重新审视问题。
S2 总体框架
由上图可以看到,有两个阶段:1)训练阶段;2)测试阶段。
在特征提取的过程中,把特征分类四类:
以下是算法中一些参数的设定:
S3 实验结果
数据集用的是之前Shihab所使用的,其中包含1530个bug report,其中246个为reopened。
使用十折交叉验证的方法,对数据集进行处理。
指标也和Shihab的相同: accuracy, re-opened precision (Precision(re)), reopened recall (Recall(re)),reopened F-Measure ((F-Measure(re)),
not reopened precision(Precision(nre)), not reopened recall (Recall(nre)), and not reopened F-measure (F-Measure(nre)).
这10种算法统一用weka实现。
主要的问题:
- 10种算法性能差异;
2. 集成学习算法的性能是否优于非集成学习算法?
结论表明,并没有直接关系。
S5 结论与未来工作方向
本文中算法都只采用唯一的参数,以后要尝试修改参数,来进行比较。
【软件分析与挖掘】A Comparative Study of Supervised Learning Algorithms for Re-opened Bug Prediction的更多相关文章
- 【软件分析与挖掘】ELBlocker: Predicting blocking bugs with ensemble imbalance learning
摘要: 提出一种方法——ELBlocker,用于自动检测出Blocking Bugs(prevent other bugs from being fixed). 难度在于这些Blocking Bugs仅 ...
- 【软件分析与挖掘】An Empirical Study of Bugs in Build Process
摘要 对软件构建过程中所产生的错误(build process bugs)进行实证研究. 5个开源项目:CXF, Camel, Felix,Struts, and Tuscany. 把build pr ...
- 【软件分析与挖掘】Vision of Software Clone Management: Past, Present, and Future (Keynote Paper)
abstract: 代码克隆的综述 S1 INTRODUCTION AND MOTIVATION 代码克隆的利弊: 利:可以有效地去耦合,避免其他一些可能的错误: 弊:当被复制的那段code中带 ...
- 【软件分析与挖掘】Multiple kernel ensemble learning for software defect prediction
摘要: 利用软件中的历史缺陷数据来建立分类器,进行软件缺陷的检测. 多核学习(Multiple kernel learning):把历史缺陷数据映射到高维特征空间,使得数据能够更好地表达: 集成学习( ...
- 【软件分析与挖掘】BOAT: An Experimental Platform for Researchers to Comparatively and Reproducibly Evaluate Bug Localization Techniques
摘要: 目前有许多的bug定位技术,但是,由于他们基于不同的数据集,而且有些数据集还不是公开的,甚至有些技术只应用于小数据集,不具有通用性,因此,不好比较这些技术之间的优劣. 因此,BOAT应运而生. ...
- 第二次作业-Steam软件分析
1 .介绍产品相关信息 随着电子音频游戏产业的发展以及正版意识的崛起,Steam已经成为大部分游戏爱好者必备的一款游戏下载平台.这款软件也使得Valve公司从一个游戏制作公司成功扩展业务到一个承揽众多 ...
- 使用AES加密的勒索类软件分析报告
报告名称: 某勒索类软件分析报告 作者: 李东 报告更新日期: 样本发现日期: 样本类型: 样本文件大小/被感染文件变化长度: 样本文件MD5 校验值: da4ab5e31793 ...
- [软件逆向]实战Mac系统下的软件分析+Mac QQ和微信的防撤回
0x00 一点废话 最近因为Mac软件收费的比较多,所以买了几款正版软件,但是有的软件卖的有点贵,买了感觉不值,不买吧,又觉得不方便,用别人的吧,又怕不安全.于是我就买了正版的Hopper Di ...
- 必应词典手机版(IOS版)与有道词典(IOS版)之软件分析【功能篇】【用户体验篇】
1.序言: 随着手机功能的不断更新和推广,手机应用市场的竞争变得愈发激烈.这次我们选择必应词典和有道词典的苹果客户端作对比,进一步分析这两款词典的客户端在功能和用户体验方面的利弊.这次测评的主要评测人 ...
随机推荐
- paip. 定时 关机 休眠 的总结
paip. 定时 关机 休眠 的总结 //////////////////title bat shell 批处理日期时间的使用比较. bat shell 批处理if else 多行.. 作者Attil ...
- 海康威视 NET_DVR_FindFile NET_DVR_PlayBackByTime 尝试读取或写入受保护的内存,这通常指示其他内存已损坏
从农民伯伯那下载的代码 NET_DVR_PlayBackByTime NET_DVR_FindFile 这两个方法执行不了 下面是我改的 经过测试了 [DllImport("HCNetSDK ...
- iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework
编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将 ...
- 详解Bootstrap表单组件
表单常见的元素主要包括:文本输入框.下拉选择框.单选框.复选框.文本域.按钮等.下面是不同的bootstrap版本: LESS: forms.less SASS: _forms.scss boot ...
- pip 豆瓣镜像使用
pip install -i https://pypi.douban.com/simple/ flask 要用https的 https://pip.pypa.io/en/latest/user_gui ...
- Revit中如何自定义快捷键
最佳的绘图方式是左手键盘,右手鼠标,使用快捷键将大大提高绘图效率,Revit同样提供了自定义绘图工具快捷键的功能(Revit2011及以后版本),有两种方式调出自定义快捷键窗口,第一种是Revit窗口 ...
- 实现微信公众号自动登陆自己的Web App
测试: 基本的思路是通过公众号OAuth API获取用户微信的openid.第一次使用的时候让用户登录,然后在数据库里把openid和自己应用的userid对应起来.以后获得用户的openid之后就可 ...
- android 常用小功能(第二版)
经历过一段岁月,转眼2013的半年都过去了,第二版整理好的小功能,答应大家发布的,直到今日,终于和大家相见了,第二版没有第一版多,大家也可以去参考第一版的内容,希望大家使用愉快! 目录: 1.获取当前 ...
- 深入分析Java Web技术(1)
BS网络模型的基本过程: 当我们在浏览器中输入"www.google.com"的时候,首先会请求DNS服务器对域名进行解析成都应的IP地址,然后根据这个IP地址在互联网上找到谷歌的 ...
- 分享自己写的一个小工具RGB转十六进制(高手勿喷)
由于工作经常美工给的颜色是rgb,而我们网页里面是16进制.网上也有很多类型的工具.不过似乎都用浏览器打开.没网就不爽了 实现也很简单.代码已经共享了 http://git.oschina.net/w ...



