Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2393596.2393622acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Software change contracts

Published: 11 November 2012 Publication History

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.

References

[1]
Apache Ant. http://ant.apache.org/.
[2]
L. Burdy, Y. Cheon, D. R. Cok, M. D. Ernst, J. R. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll. An overview of JML tools and applications. STTT, 7(3):212--232, 2005.
[3]
Y. Chen, D. Rosenblum, and K. Vo. Testtube: A system for selective regression testing. In ICSE, pages 211--220, 1994.
[4]
R. Gupta, M. Harrold, and M. Soffa. An approach to regression testing using slicing. In ICSM, pages 299--308, 1992.
[5]
W. Jin, A. Orso, and T. Xie. Automated behavioral regression testing. In ICST, pages 137--146, 2010.
[6]
M. Kim and D. Notkin. Discovering and representing systematic code changes. In ICSE, pages 309--319, 2009.
[7]
B. Meyer. Eiffel: The language and environment. Prentice hall press, 300, 1991.
[8]
OpenJML. http://sourceforge.net/apps/trac/jmlspecs/wiki/OpenJml.
[9]
S. Person, M. Dwyer, S. Elbaum, and C. Pasareanu. Differential symbolic execution. In FSE, pages 226--237, 2008.
[10]
D. Qi, A. Roychoudhury, and Z. Liang. Test generation to expose changes in evolving programs. In ASE, pages 397--406, 2010.
[11]
D. Qi, A. Roychoudhury, Z. Liang, and K. Vaswani. DARWIN:an approach for debugging evolving programs. In FSE, pages 33--42, 2009.
[12]
D. Qi, J. Yi, and A. Roychoudhury. Software change contracts. Technical Report TRE3/12, National University of Singapore, 2012. Available at https://dl.comp.nus.edu.sg/dspace/handle/1900.100/3588.
[13]
G. Rothermel, R. Untch, C. Chu, and M. Harrold. Prioritizing test cases for regression testing. TSE, 27(10):929--948, 2001.
[14]
Z. Yin, D. Yuan, Y. Zhou, S. Pasupathy, and L. N. Bairavasundaram. How do fixes become bugs? In FSE, pages 26--36, 2011.
[15]
A. Zeller. Yesterday, my program worked. Today, it does not. Why? In FSE, pages 253--267, 1999.

Cited By

View all
  • (2017)Semantics-assisted code review: an efficient toolchain and a user studyProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155632(554-565)Online publication date: 30-Oct-2017
  • (2017)Semantics-assisted code review: An efficient tool chain and a user study2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE.2017.8115666(554-565)Online publication date: Oct-2017
  • (2015)Software Change ContractsACM Transactions on Software Engineering and Methodology10.1145/272997324:3(1-43)Online publication date: 13-May-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FSE '12: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
November 2012
494 pages
ISBN:9781450316149
DOI:10.1145/2393596
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 November 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. JML
  2. change contract
  3. regression testing
  4. software evolution

Qualifiers

  • Research-article

Funding Sources

Conference

SIGSOFT/FSE'12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2017)Semantics-assisted code review: an efficient toolchain and a user studyProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155632(554-565)Online publication date: 30-Oct-2017
  • (2017)Semantics-assisted code review: An efficient tool chain and a user study2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE.2017.8115666(554-565)Online publication date: Oct-2017
  • (2015)Software Change ContractsACM Transactions on Software Engineering and Methodology10.1145/272997324:3(1-43)Online publication date: 13-May-2015
  • (2015)SuperContraProceedings of the 2015 IEEE International Conference on Cloud Engineering10.1109/IC2E.2015.70(283-286)Online publication date: 9-Mar-2015
  • (2014)Dynamic Inference of Change ContractsProceedings of the 2014 IEEE International Conference on Software Maintenance and Evolution10.1109/ICSME.2014.72(451-455)Online publication date: 29-Sep-2014
  • (2013)Expressing and checking intended changes via software change contractsProceedings of the 2013 International Symposium on Software Testing and Analysis10.1145/2483760.2483772(1-11)Online publication date: 15-Jul-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media