ISSTA 2015 软件工程优秀论文阅读 - Automated software transplantation

版权声明:如需转载或引用,请注明出处。 https://blog.csdn.net/weixin_39278265/article/details/82833582

Preface

This article aims to introduce the ISSTA 2015 paper – “Automated Software Transplantation”.

About authors

Earl T. Barr; Mark Harman; Yue Jia; Alexandru Marginean; Justyna Petke

Mark Harman is very famous in the Software Engineering area. As far as I know, he has published many Top Conference and Journal papers in the field of SE…

Cool.

Introduction of Mark Harman:

Indexing Operators to Extend the Reach of Symbolic Execution 划重点:像这个,虽然不是APR这个方向的,但是可以拿过来用丫,绝对会比Nopol的修复能力强,像这种改进了的Symbolic Execution。
所以,多注意一下这些文章。关注大牛文章,人人有责。

Mark Harman,
Professor of Software Engineering,
CREST
Software Systems Engineering Group,
Department of Computer Science,
University College London,
Malet Place, London, WC1E 6BT, UK.
and
Engineering Manager,
Facebook London.

e-mail: mark.harman the-at-symbol ucl.ac.uk
web: http://www.cs.ucl.ac.uk/staff/mharman.
Personal Assistant: Katie Bourke: crest-admin the-at-symbol ucl.ac.uk; +44 (0)20 7679 0325

他在他的主页说:他在学习中文,他学习中文很慢。
看来是个热爱学习的人。
毫无疑问。

Mark was the director of CREST (the Centre for Research on Evolution Search and Testing)
from its inception on 28th June 2006 to 5th February 2017, followed by Jens Krinke,
and
was head of SSE (Software Systems Engineering) at UCL from 2012 to 2017,
preceded by David Rosenblum, Wolfgang Emmerich, and Anthony Finkelstein; followed by Emmanuel Letier.

Since February 6th 2017 he has been a full-time Engineering Manager at Facebook London
and
a part-time professor of Software Engineering in CREST, SSE and the CS department at UCL.

这个,一直搞的是Evolution Search和testing,还高Software systems engineering

在这里插入图片描述

Mark Harman的介绍

他的主页:http://www0.cs.ucl.ac.uk/staff/mharman/

他的文章:
http://www0.cs.ucl.ac.uk/staff/mharman/papers.html

  • Software Transplantation for Reuse (keynote)
  • Using Genetic Improvement and Transplantation to Provide Automated Support for Software Variability (keynote)
  • Search-based Testing for Android (keynote)
  • Applications, Achievements and Avenues for Future Work in Crowdsourced Software Engineering
  • Search Based Software Engineering and Genetic Improvement

看来我还有很多要学。

他的CV有60页,实在太强了,感兴趣的可以去我的CSDN资源页看一看。

1 摘要

Automated transplantation would open many exciting avenues for software development

太酷了这句话,

avenues
N-COUNT 方法;途径
An avenue is a way of getting something done.
Talbot was presented with 80 potential avenues of investigation…
给塔尔博特提出了80种进行调查的可能途径。

suppose we could autotransplant code from one system into another, entirely unrelated, system.

这样想起来确实酷,但是真的可以么

实验原理:
This paper introduces a theory, an algorithm, and
a tool that achieve this. Leveraging lightweight annotation,
program analysis identifies an organ (interesting behavior to
transplant); testing validates that the organ exhibits the desired behavior during its extraction and after its implantation
into a host.

emm,可行。

实验结果:
While we do not claim automated transplantation is now a solved problem, our results are encouraging:
we report that in 12 of 15 experiments, involving 5 donors
and 3 hosts (all popular real-world systems), we successfully
autotransplanted new functionality and passed all regression
tests.

看起来很不错。

Autotransplantation is also already useful: in 26 hours
computation time we successfully autotransplanted the H.264
video encoding functionality from the x264 system to the
VLC media player; compare this to upgrading x264 within
VLC, a task that we estimate, from VLC’s version history,
took human programmers an average of 20 days of elapsed,
as opposed to dedicated, time

震惊,上面这个比较手法确实很神奇。 值得学习。

2 introduction

Currently, this is tedious, laborious, and slow [15]

原来还是可以用currently的。

[15] G. Canfora and M. Di Penta. New frontiers in reverse engineering. In L. Briand and A. Wolf, editors, Future of Software Engineering 2007, pages 326{341, Los Alamitos, California, USA, 2007. IEEE Computer Society Press. This volume.

划重点了:这么多技术,都应该看懂。花时间去看。 The research community has provided analyses and partial support for such manual code reuse: for example, clone detection [5, 32, 36, 60], code migration [38, 58], code salvaging [12], reuse [13, 14, 16], dependence analysis [3, 22, 29, 30] and feature extraction techniques [24, 33, 44].

Current Problem:

However, the overall process remains largely unautomated, particularly the critical transplantation of code that implements useful functionality from a donor into a target system, which we call the host.

工作的唯一性:
What if we could automate the process of extracting functionality from one system and transplanting it into another?
This is the goal we set ourselves in this paper. That is, we are
the first to develop and evaluate techniques to implement automated software transplantation from one system to another,
which one of the authors proposed (hitherto unimplemented
and unevaluated) in the keynote of the 2013 WCRE [28].

这个厉害了,是之前一个大神提出来的构想,但是这里文章给实现了,还evaluate了。

问题的难点:作者的英文水平真的太高了,我很少在论文里面看到过“let alone”这种表达,感觉这绝对是个native speaker:值得学习
This is a challenging vision of transplantation, because code from one system is unlikely to even compile when it is re-located into an unrelated foreign system without extensive modification, let alone execute and pass test cases. The extraction of the code also involves identifying all semantically required code and the successful insertion of the code organ into the host requires nontrivial modifications to the organ to ensure it adds the required feature without breaking existing functionality. In this paper, we present results that demonstrate that this vision of automated software transplantation is indeed achievable, efficient and potentially useful.

继续说问题的难点:
Feature identification is well studied [14, 16, 58]. Extracting a component of a system, given the identification of a suitable feature is also well studied, through work on slicing and dependence analysis [22, 24, 29, 33, 44]. The challenges of automatically extracting a feature from one system, transplanting it into an entirely different system, and usefully executing it in the organ beneficiary, however, have not previously been studied in the literature.

就是说作者要解决的问题是:automatically extract a feature from one to another … have not previously been studied in the literature.

作者的idea表达:工作原理:
We developed µTrans, an algorithm for automated software transplantation, based on a new kind of genetic programming, augmented by a novel form of program slicing. µTrans synergizes analysis and testing: analysis extracts an ‘organ’, an executable slice from a donor; testing guides all phases of autotransplantation | identifying the organ in the donor, minimizing and placing the organ into an ice-box, and finally, specializing the organ for implantation into a target host. Our slicing technique grows an organ in the donor until that organ passes a test suite, thereby incorporating the functionality that the test suite exercises. To increase the performance and functional coverage of the test suite, we introduce in-situ testing, a novel form of testing that constrains the input space of traditional testing to more closely approximate behaviourally relevant inputs.

说明自己benchmark的真实性,大规模:scale
All the systems involved in our experimentation are realworld systems in current use, ranging in size from 0.4k lines of code to 25k lines of code for the donor and 25{363k for the host. We report on the effectiveness of transplantation along two axes. First, we ask whether transplantation disrupts the host’s existing functionality by means of regression testing and second, whether the postoperative host can execute the transplanted software organ and exhibits nontrivial, new functionality. We use an acceptance test suite to verify (on output not exit code [49]) the organ’s behavior.

3 工作原理

在这里插入图片描述

工作原理overview

原来GP可以用来缩小Search space???
厉害。

就是没有fault localization?

以后再细读吧。

仓促小结

必须睡觉了,天色已晚,这篇文章很强,通过短短的36分钟,才了解了作者+文章基本内容,还有很多可以读的地方。以后再读吧。

猜你喜欢

转载自blog.csdn.net/weixin_39278265/article/details/82833582
今日推荐