{"publication_status":"published","has_accepted_license":"1","date_updated":"2022-01-06T06:59:15Z","language":[{"iso":"eng"}],"title":"JMCTest: Automatically Testing Inter-Method Contracts in Java","department":[{"_id":"7"},{"_id":"77"}],"project":[{"name":"SFB 901","_id":"1"},{"_id":"3","name":"SFB 901 - Project Area B"},{"name":"SFB 901 - Subproject B3","_id":"11"}],"publisher":"Springer","citation":{"short":"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.","chicago":"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.","bibtex":"@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} }","ama":"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.","mla":"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.","ieee":"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.","apa":"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."},"user_id":"29719","series_title":"Lecture Notes in Computer Science","status":"public","author":[{"first_name":"Paul","full_name":"Börding, Paul","last_name":"Börding"},{"last_name":"Haltermann","full_name":"Haltermann, Jan Frederik","id":"44413","first_name":"Jan Frederik"},{"full_name":"Jakobs, Marie-Christine","last_name":"Jakobs","first_name":"Marie-Christine"},{"id":"573","first_name":"Heike","full_name":"Wehrheim, Heike","last_name":"Wehrheim"}],"intvolume":" 11146","_id":"3414","year":"2018","conference":{"end_date":"2018-10-03","name":"IFIP International Conference on Testing Software and Systems","start_date":"2018-10-01","location":"Cádiz, Spain"},"type":"conference","page":"39--55","file_date_updated":"2018-11-21T09:35:35Z","publication":"Proceedings of the IFIP International Conference on Testing Software and Systems (ICTSS 2018)","date_created":"2018-07-02T09:06:56Z","file":[{"date_created":"2018-11-21T09:35:35Z","success":1,"file_id":"5770","access_level":"closed","relation":"main_file","content_type":"application/pdf","creator":"schlatt","file_name":"Börding2018_Chapter_JMCTestAutomaticallyTestingInt.pdf","date_updated":"2018-11-21T09:35:35Z","file_size":574386}],"ddc":["006"],"volume":11146,"abstract":[{"lang":"eng","text":"Over the years, Design by Contract (DbC) has evolved as a\r\npowerful concept for program documentation, testing, and verification.\r\nContracts formally specify assertions on (mostly) object-oriented programs:\r\npre- and postconditions of methods, class invariants, allowed call\r\norders, etc. Missing in the long list of properties specifiable by contracts\r\nare, however, method correlations: DbC languages fall short on stating\r\nassertions relating methods.\r\nIn this paper, we propose the novel concept of inter-method contract,\r\nallowing precisely for expressing method correlations.We present JMC as\r\na language for specifying and JMCTest as a tool for dynamically checking\r\ninter-method contracts on Java programs. JMCTest fully automatically\r\ngenerates objects on which the contracted methods are called and\r\nthe validity of the contract is checked. Using JMCTest, we detected\r\nthat large Java code bases (e.g. JBoss, Java RT) frequently violate standard\r\ninter-method contracts. In comparison to other verification tools\r\ninspecting (some) inter-method contracts, JMCTest can find bugs that\r\nremain undetected by those tools."}]}