Publication

Venue

Publication Year

Authors

BibTeX

KATCH: High-Coverage Testing of Software Patches

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 act 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 areintroduced.