JMCTest: Automatically Testing Inter-Method Contracts in Java
P. Börding, J.F. Haltermann, M.-C. Jakobs, H. Wehrheim, in: Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018), Springer, 2018, pp. 39--55.
Download
Börding2018_Chapter_JMCTestAutomaticallyTestingInt.pdf
574.39 KB
Conference Paper
| Published
| English
Author
Börding, Paul;
Haltermann, Jan FrederikLibreCat;
Jakobs, Marie-Christine;
Wehrheim, HeikeLibreCat
Abstract
Over the years, Design by Contract (DbC) has evolved as a
powerful concept for program documentation, testing, and verification.
Contracts formally specify assertions on (mostly) object-oriented programs:
pre- and postconditions of methods, class invariants, allowed call
orders, etc. Missing in the long list of properties specifiable by contracts
are, however, method correlations: DbC languages fall short on stating
assertions relating methods.
In this paper, we propose the novel concept of inter-method contract,
allowing precisely for expressing method correlations.We present JMC as
a language for specifying and JMCTest as a tool for dynamically checking
inter-method contracts on Java programs. JMCTest fully automatically
generates objects on which the contracted methods are called and
the validity of the contract is checked. Using JMCTest, we detected
that large Java code bases (e.g. JBoss, Java RT) frequently violate standard
inter-method contracts. In comparison to other verification tools
inspecting (some) inter-method contracts, JMCTest can find bugs that
remain undetected by those tools.
Publishing Year
Proceedings Title
Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018)
forms.conference.field.series_title_volume.label
Lecture Notes in Computer Science
Volume
11146
Page
39--55
Conference
IFIP International Conference on Testing Software and Systems
Conference Location
Cádiz, Spain
Conference Date
2018-10-01 – 2018-10-03
LibreCat-ID
Cite this
Börding P, Haltermann JF, Jakobs M-C, Wehrheim H. JMCTest: Automatically Testing Inter-Method Contracts in Java. In: Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018). Vol 11146. Lecture Notes in Computer Science. Springer; 2018:39--55.
Börding, P., Haltermann, J. F., Jakobs, M.-C., & Wehrheim, H. (2018). JMCTest: Automatically Testing Inter-Method Contracts in Java. In Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018) (Vol. 11146, pp. 39--55). Cádiz, Spain: Springer.
@inproceedings{Börding_Haltermann_Jakobs_Wehrheim_2018, series={Lecture Notes in Computer Science}, title={JMCTest: Automatically Testing Inter-Method Contracts in Java}, volume={11146}, booktitle={Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018)}, publisher={Springer}, author={Börding, Paul and Haltermann, Jan Frederik and Jakobs, Marie-Christine and Wehrheim, Heike}, year={2018}, pages={39--55}, collection={Lecture Notes in Computer Science} }
Börding, Paul, Jan Frederik Haltermann, Marie-Christine Jakobs, and Heike Wehrheim. “JMCTest: Automatically Testing Inter-Method Contracts in Java.” In Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018), 11146:39--55. Lecture Notes in Computer Science. Springer, 2018.
P. Börding, J. F. Haltermann, M.-C. Jakobs, and H. Wehrheim, “JMCTest: Automatically Testing Inter-Method Contracts in Java,” in Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018), Cádiz, Spain, 2018, vol. 11146, pp. 39--55.
Börding, Paul, et al. “JMCTest: Automatically Testing Inter-Method Contracts in Java.” Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018), vol. 11146, Springer, 2018, pp. 39--55.
Main File(s)
File Name
Börding2018_Chapter_JMCTestAutomaticallyTestingInt.pdf
574.39 KB
Access Level
Closed Access
Last Uploaded
2018-11-21T09:35:35Z