Title
Software change contracts
Abstract
Incorrect program changes including regression bugs, incorrect bug-fixes, incorrect feature updates are pervasive in software. These incorrect program changes affect software quality and are difficult to detect/correct. In this paper, we propose the notion of "change contracts" to avoid incorrect program changes. Change contracts formally specify the intended effect of program changes. Incorrect program changes are detected when they are checked with respect to the change contracts. We design a change contract language for Java programs and a dynamic checking system for our change contract language. We conduct a preliminary user study to check the expressiveness of our change contract language and find that the language is expressive enough to capture a wide variety of real-life changes in three large software projects (i.e., Ant, JMeter, log4j). Finally, our contract checking system detects several real-life incorrect changes in these three software projects via runtime checking of the change contracts.
Year
DOI
Venue
2012
10.1145/2393596.2393622
SIGSOFT FSE
Keywords
DocType
Citations 
program change,software change contract,real-life change,incorrect feature updates,real-life incorrect change,incorrect bug-fixes,change contract,change contract language,incorrect program change,contract checking system,java program,regression testing,software evolution
Conference
3
PageRank 
References 
Authors
0.40
11
3
Name
Order
Citations
PageRank
Dawei Qi136415.11
Jooyong Yi226612.04
Abhik Roychoudhury32449122.18