文章目录

  • 前言
  • 基本信息
  • 1 基本内容
  • 2 idea来源
  • 3 亮点
  • 4 不足
  • 5 相关文章列表
  • 总结
    • 关于论文的精读略读
    • 关于论文写作
    • 最后

标题:现实世界的补丁长什么样? [ICSME 18] A Closer Look at Real-World Patches (结尾附论文阅读反思)

前言

本文旨在阅读:ICSME 18文章 A Closer Look at Real-World Patches,并于结尾总结出附上自己近来在论文阅读上的一些反思。

基本信息

Liu, K., Kim, D., Koyuncu, A., Li, L., Bissyandé, T. F., & Le Traon, Y. (2018, September). A closer look at real-world patches. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME) (pp. 275-286). IEEE.

卢森堡大学。

1 基本内容

动机:
1)去真实世界的补丁真寻找idea;(APR进一步演化之机)

To improve automated program repair (APR) techniques, the community should deepen its knowledge on repair actions from real-world patches since most of the techniques rely on patches written by human developers.

2)真实世界的补丁没有在细粒度上的研究

Previous investigations on real-world patches are limited to statement level that is not sufficiently fine-grained to build this knowledge.

所以对应的工作:

In this work, we contribute to building this knowledge via a systematic and fine-grained study of 16,450 bug fix commits from seven Java open-source projects.

即:针对来自7个Java开源项目1万多个缺陷修复提交(commit)的系统的、细粒度的研究。

发现:

We find that there are opportunities for APR techniques to improve their effectiveness by looking at code elements that have not yet been investigated.

We also discuss nine insights into tuning automated repair tools. For example, a small number of statement and expression types are recurrently impacted by real-world patches, and expression-level granularity could reduce search space of finding fix ingredients, where previous studies never explored.

1)能够改进APR技术的机会(opportunity),就是从还没被研究过的代码元素(code element)入手
2)提出九个点,去改进自动修复工具。

2 idea来源

1)实证是idea的基础;作者在做工具之前,先做实证,1是为了进一步挖掘idea,2是为了过渡,打基础。

2)核心idea是:作者是从APR当前修复工具这个层面(角度,高度)去思考当前领域内存在的问题的,他找的一个点就是当前都是在statement这个粒度上做的,那肯定是不精确的。

凭借这个,加上扎实的实证,以及对应的patchparser工具,确实B会稳了。

3 亮点

1)佩服作者的地方在于,这篇文章提到的 expression-level granularity ,作者后面好像真的实现了,还是发的顶刊(会)。很强诶

2)如5 相关文章列表中列出的实证文献,都是对真实世界补丁的调研,但是作者依旧能够找到论文的不足,并发出一篇很好的论文。

我反推了一波,感觉作者肯定是认真读过这三篇相关论文,并从中找到idea的。

我有时间也会读读这三篇论文,验证下我的猜想。

佩服作者的写法,
很厉害。

原来是应用GumTree这样的advanced 工具。

4)对自己的处理过程解释的很清楚,我一开始很疑惑,但是看了作者的解释,又释然。

确实很有水平。

见微知著,从这一段可以看出来,作者读以前的论文,尤其是相关的论文,真的很细。因此才能解释的如此清晰。值得学习。

5)适当的大写,标出,这种highlight的行为都是允许的,而且会让读者很快能抓住重点。

如上,这就是写作技巧。

6)

这个好像已经被作者实现了。

改天去确认下。

7)

这几个是值得认真关注下的。

8)

我没记错的话,好像SANER 19 的AVATAR就是基于静态分析的一个修复工具。

作者发文章的速度太快了。

9)

这让我直接想到了作者ICSE 2019的文章:Learning to Spot and Refactor Inconsistent Method Names

= =太强了

10)

这个也已经有对应的文章了。。。

4 不足

其实很难找到不足。

1)

这里分析的太少了,我感觉这个move操作还挺难的。

确实需要上下文信息(context info),但是怎么用起来。还是挺难的。

2)我没记错的话,Defects4J里面的mockito这类bug有很多 import的错误。

这个作者没有在文中提到。


更多请见:我的印象笔记。

5 相关文章列表

  • Toward an understanding of bug fix patterns 2009年
  • M. Martinez and M. Monperrus, “Mining software repair models for reasoning on the search space of automated program fixing,” Empirical Software Engineering, vol. 20, no. 1, pp. 176–205, 2015.
  • H. Zhong and Z. Su, “An empirical study on real bug fixes,” in Pro- ceedings of the 37th IEEE/ACM International Conference on Software Engineering, ICSE, vol. 1. Florence, Italy: IEEE, 2015, pp. 913–923.

  • J.-R. Falleri, F. Morandat, X. Blanc, M. Martinez, and M. Monperrus, “Fine-grained and accurate source code differencing,” in Proceedings of ACM/IEEE International Conference on Automated Software Engineer- ing. Vasteras, Sweden: ACM, 2014, pp. 313–324 (对应的是GumTree这个工具)

需要学习的东西:

  • http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FStatement.html 语句的类型
  • http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FExpression.html 表达式的类型

A. Koyuncu, T. Bissyand´e, D. Kim, J. Klein, M. Monperrus, and Y. Le Traon, “Impact of Tool Support in Patch Construction,” in Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis. New York, NY, USA: ACM, 2017, pp. 237–248.

这篇文章肯定是要读一下的。我感觉还挺重要的。

总结

关于论文的精读略读

非常之感慨。

首先:以我目前的进度,每天最多只能看一篇论文。

这个论文阅读量,我感觉还是少了。

我感觉理想状态应该是:1篇精读(如本文) + 2-3篇略读(尚未做到)。

精读是为了准确研究一些相关的文献,帮助自己产生idea;
略读是为了大概把握领域内最前沿的研究进展,帮助自己熟悉大势。

二者是缺一不可的吧。

我觉得这个每天都应该坚持。


关于论文写作

此外,最让我担心的是论文写作。

我原本是打算每周都花时间去进行一个专门的论文写作训练的(就是学习一下当前的优秀论文,然后自己对应写两段)

研究生阶段对我影响比较大的一位英语老师说,她一位同学,学习英语的方式是:打开经济学人,选定一篇文章,背诵,然后盖住,自己对应地去默写。

最后那自然是厉害的不得了。

所以我感觉,相应的,每周可以做一次这样的论文学习(在此过程中体会思路,如为什么要这么写,为什么这么组织,这些词汇怎么搭配使用的)。

最后

这篇文章从上午读到下午。。。

真的费时间,1)中间有一些杂事;2)中间有一些休息;3)昨晚没休息好= =感觉晚上的休息还是很关键的,得控制下


终于看完了。。。end now

现实世界的补丁长什么样? [ICSME 18] A Closer Look at Real-World Patches (结尾附论文阅读反思)相关推荐

  1. Real-world Anomaly Detection in Surveillance Videos监控视频中的现实世界异常检测

    监控视频中的现实世界异常检测,代码地址https://paperswithcode.com/paper/real-world-anomaly-detection-in-surveillance. 摘要 ...

  2. 图神经网络可以解决现实世界中的问题吗?

    全文共3133字,预计学习时长9分钟 来源:Pexels 深度学习已经改变了我们处理数据的方式,通过使用日益增长的计算"廉价"资源(摩尔定律)来解决现实世界问题,并且能够完成一些人 ...

  3. 专家:人工智能开始对现实世界产生重大影响

    来源:人机与认知实验室 编译:喻玲萧  编辑:王旭泉 中国日报网11月8日电 据英国<卫报>报道,曾撰写过一本有关人工智能的权威教科书的美国科学家表示,在将人工智能的进步比作原子弹技术的发 ...

  4. 现实世界的Windows Azure:采访圣地亚哥公共安全小组的技术经理Adrian Gonzalez

    作为现实世界Windows Azure采访系列的一部分,我采访了圣地亚哥公共安全小组的技术经理Adrian Gonzalez,更多地了解到圣地亚哥是怎样使用Windows Azure 确保其紧急信息网 ...

  5. 《嵌入式系统数字视频处理权威指南》——第1章 现实世界中的视频

    本节书摘来自华章计算机<嵌入式系统数字视频处理权威指南>一书中的第1章,作者:(美)Michael Parker Suhel Dhanani 更多章节内容可以访问云栖社区"华章计 ...

  6. 专家:人工智能开始对现实世界产生重大影响​​

    专家:人工智能开始对现实世界产生重大影响 ​​人工智能技术与咨询​​ 本文摘自中国日报网 中国日报网11月8日电 据英国<卫报>报道,曾撰写过一本有关人工智能的权威教科书的美国科学家表示, ...

  7. 现实世界的Windows Azure:与iQmetrix的市场营销副总裁Anne Weiler对话

    作为现实世界Windows Azure系列的一部分,我向iQmetrix市场营销副总裁Anne Weiler 了解学习了更多有关该公司如何在零售行业使用Windows Azure为客户提供解决方案.在 ...

  8. 现实世界的Windows Azure:采访Applied Information Science的技术总监Vishwas Lele

    作为现实世界的Windows Azure采访系列的一部分,我们对Applied Information Sciences (AIS)的技术总监及微软区域总监就他们的Windows Azure使用情况进 ...

  9. 学习笔记DL003:神经网络第二、三次浪潮,数据量、模型规模,精度、复杂度,对现实世界冲击...

    神经科学,依靠单一深度学习算法解决不同任务.视觉信号传送到听觉区域,大脑听学习处理区域学会"看"(Von Melchner et al., 2000).计算单元互相作用变智能.新认 ...

  10. 从现实世界的角度去理解计算机领域的知识

    ​ " 从现实世界的角度看计算机,可以帮助我们更清晰的学习计算机领域的知识. 本文试图用生活中常见的事物来解释计算机技术领域,让知识更通俗易懂 " 这篇文章的阅读对象是计算机专业在 ...

最新文章

  1. 笔记本电脑的有线和无线网络同时使用,如何设置?
  2. 分裂游戏(bzoj 1188)
  3. 交换机使用QoS来对端口限速
  4. C++ Primer 5th笔记(chap 16 模板和泛型编程)函数指针和实参推断
  5. 答疑:有关一例EXT3文件系统故障
  6. .NET Core 容器化调查
  7. dakai微信小程序 ios_iOSAPP跳转微信小程序
  8. 判断变量是空_Python 判断变量是否是 None 的三种写法
  9. iOS 对付内存泄漏,来说说我的调试方法
  10. Fortran95基础知识学习
  11. 2019PASS发布以来第一次更新,快点击查看!
  12. 解二元一次方程组的c语言编程,如何利用C语言求二元一次方程的解
  13. html5 扩展 cs6,Dreamweaver CS6提高了HTML5工具的效率
  14. 高通ISP流程中,ADRC Gain与GTMLTM的对应关系
  15. React Native 超长列表优化方案
  16. linux kobject 原理,Linux设备驱动模型 - kobject原理与实例分析_Linux编程_Linux公社-Linux系统门户网站...
  17. Android 11 wifi adb 连接错误 “Unable to start pairing client.“
  18. linux下阅读MHT文件
  19. 简述卡西欧5800p计算机,卡西欧5800p计算器所有解释
  20. mysql 查询 系统字段 自然日_吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB...

热门文章

  1. 生物什么时候学公式计算机,高考生物重要规律性关系及公式精华归纳,转走吧...
  2. python3吧_基于python3 抓取贴吧图片与评论 图片下载保存
  3. 怎么在计算机里隐藏文件,怎么显示电脑隐藏文件?
  4. 解方程计算器,一款数学神器APP,有需要的自己收藏!
  5. FCP-报表交付工程师考试经验
  6. 扫描二维码进小程序指定页面
  7. 推荐几个不错第 Java 学习网站
  8. 冗余系统服务器切换的因素,揭秘 | 自动化冗余系统
  9. golang使用gorm出现reflect.Value.Addr of unaddressable value [recovered]
  10. Promethus(普罗米修斯)监控系统