Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering 2013
DOI: 10.1145/2491411.2491438
|View full text |Cite
|
Sign up to set email alerts
|

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 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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
53
0

Year Published

2014
2014
2023
2023

Publication Types

Select...
3
3
2

Relationship

3
5

Authors

Journals

citations
Cited by 106 publications
(53 citation statements)
references
References 45 publications
0
53
0
Order By: Relevance
“…Our prior work on testing software patches [23] reported the aggregate patch coverage achieved by regression test suites, but the focus was on evaluating the patch testing technique proposed.…”
Section: Related Workmentioning
confidence: 99%
“…Our prior work on testing software patches [23] reported the aggregate patch coverage achieved by regression test suites, but the focus was on evaluating the patch testing technique proposed.…”
Section: Related Workmentioning
confidence: 99%
“…executes at least one patch statement-if such an input does not exist in the program's test suite, it could be generated using previous techniques such as KATCH [20].…”
Section: Overviewmentioning
confidence: 99%
“…At the very minimum, each line of code affected by the patch should be covered by at least one test case. While this level of testing is still far from being achieved in practice [21], automatic techniques for enabling high-coverage patch testing are becoming more and more successful [1,17,20,29,31]. Many of these techniques are based on dynamic symbolic execution [7], a program analysis technique that provides the ability to generate inputs that form high-coverage test suites.…”
Section: Introductionmentioning
confidence: 99%
“…Unfortunately, often many of these changes themselves give rise to a significant amount of program bugs: new code is by definition little tested in the field, and often introduces bugs that affect both old and new functionality [10,18]. Even relatively simple, self-contained patches which are meant to fix specific bugs often introduce new errors [10,28].…”
Section: Introductionmentioning
confidence: 99%
“…For example, KATCH [18] uses a simple textual differencing algorithm to find out what statements have been added or changed, while DiSE [22] employs static program slicing to determine the statements affected by the patch. While this can lead to significant savings, static analysis of the program differences is often imprecise, and can miss important pruning and prioritisation opportunities, particularly those which exploit dynamic value information.…”
Section: Introductionmentioning
confidence: 99%