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
Restricted Börding2018_Chapter_JMCTestAutomaticallyTestingInt.pdf 574.39 KB
Conference Paper | Published | English
Author
; ; ;
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)
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
Restricted Closed Access
Last Uploaded
2018-11-21T09:35:35Z


Export

Marked Publications

Open Data LibreCat

Search this title in

Google Scholar