KATCH: High-Coverage Testing of Software Patches
File(s)katch-fse-13.pdf (623 KB)
Accepted version
Author(s)
Marinescu, PD
Cadar, C
Type
Conference Paper
Abstract
One of the distinguishing characteristics of software systems
is that they evolve: new patches are committed to software
repositories and new versions are released to users on a
continuous basis. Unfortunately, many of these changes
bring unexpected bugs that break the stability of the system
or affect its security. In this paper, we address this problem
using a technique for automatically testing code patches.
Our technique combines symbolic execution with several
novel heuristics based on static and dynamic program analysis
which allow it to quickly reach the code of the patch.
We have implemented our approach in a tool called katch,
which we have applied to all the patches written in a combined
period of approximately six years for nineteen mature
programs from the popular GNU diffutils, GNU binutils
and GNU findutils utility suites, which are shipped with
virtually all UNIX-based distributions. Our results show
that katch can automatically synthesise inputs that significantly
increase the patch coverage achieved by the existing
manual test suites, and find bugs at the moment they are
introduced.
is that they evolve: new patches are committed to software
repositories and new versions are released to users on a
continuous basis. Unfortunately, many of these changes
bring unexpected bugs that break the stability of the system
or affect its security. In this paper, we address this problem
using a technique for automatically testing code patches.
Our technique combines symbolic execution with several
novel heuristics based on static and dynamic program analysis
which allow it to quickly reach the code of the patch.
We have implemented our approach in a tool called katch,
which we have applied to all the patches written in a combined
period of approximately six years for nineteen mature
programs from the popular GNU diffutils, GNU binutils
and GNU findutils utility suites, which are shipped with
virtually all UNIX-based distributions. Our results show
that katch can automatically synthesise inputs that significantly
increase the patch coverage achieved by the existing
manual test suites, and find bugs at the moment they are
introduced.
Editor(s)
Meyer, B
Baresi, L
Mezini, M
Date Issued
2013-08-18
Date Acceptance
2013-08-13
Citation
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, 2013, pp.235-245
ISBN
978-1-4503-2237-9
Publisher
ACM
Start Page
235
End Page
245
Journal / Book Title
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Copyright Statement
© ACM, 2013. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering https://dx.doi.org/10.1145/2491411.2491438
Identifier
http://srg.doc.ic.ac.uk/publications/katch-fse-13.html
Source
Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE'13)
Publication Status
Published
Start Date
2013-08-13
Finish Date
2013-08-26
Coverage Spatial
Saint Petersburg, Russian Federation