{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,7,5]],"date-time":"2024-07-05T07:56:56Z","timestamp":1720166216290},"reference-count":43,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2018,2,1]],"date-time":"2018-02-01T00:00:00Z","timestamp":1517443200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Journal of Systems and Software"],"published-print":{"date-parts":[[2018,2]]},"DOI":"10.1016\/j.jss.2017.06.017","type":"journal-article","created":{"date-parts":[[2017,6,10]],"date-time":"2017-06-10T11:00:48Z","timestamp":1497092448000},"page":"209-222","update-policy":"http:\/\/dx.doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":2,"special_numbering":"C","title":["Contract-based testing for PHP with Praspel"],"prefix":"10.1016","volume":"136","author":[{"given":"Frederic","family":"Dadeau","sequence":"first","affiliation":[]},{"given":"Alain","family":"Giorgetti","sequence":"additional","affiliation":[]},{"given":"Fabrice","family":"Bouquet","sequence":"additional","affiliation":[]},{"given":"Ivan","family":"Enderlin","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"key":"10.1016\/j.jss.2017.06.017_bib0001","series-title":"Formal Methods at the Crossroads: From Panacea to Foundational Support","first-page":"34","article-title":"Contract-based testing","volume":"2757","author":"Aichernig","year":"2003"},{"key":"10.1016\/j.jss.2017.06.017_bib0002","series-title":"ISSTA\u201908: Proceedings of the 2008 International Symposium on Software Testing and Analysis","first-page":"261","article-title":"Finding bugs in dynamic web applications","author":"Artzi","year":"2008"},{"key":"10.1016\/j.jss.2017.06.017_sbref0003","series-title":"ACSL: ANSI\/ISO C Specification Language Version 1.7","author":"Baudin","year":"2013"},{"key":"10.1016\/j.jss.2017.06.017_bib0004","series-title":"Black-box Testing: Techniques for Functional Testing of Software and Systems","author":"Beizer","year":"1995"},{"key":"10.1016\/j.jss.2017.06.017_bib0005","series-title":"14th Int. Conf. on Formal Methods (FM\u201906)","first-page":"428","article-title":"Automated boundary test generation from JML specifications","author":"Bouquet","year":"2006"},{"key":"10.1016\/j.jss.2017.06.017_bib0006","series-title":"International Symposium on Software Testing and Analysis (ISSTA\u20192002)","first-page":"123","article-title":"Korat: automated testing based on Java predicates","author":"Boyapati","year":"2002"},{"issue":"7","key":"10.1016\/j.jss.2017.06.017_bib0007","doi-asserted-by":"crossref","first-page":"637","DOI":"10.1002\/spe.520","article-title":"Investigating the use of analysis contracts to improve the testability of object-oriented code","volume":"33","author":"Briand","year":"2003","journal-title":"Softw. Pract. Exp."},{"key":"10.1016\/j.jss.2017.06.017_bib0008","series-title":"16th European Conference on Object-Oriented Programming (ECOOP 2002)","first-page":"231","article-title":"A simple and practical approach to unit testing: the JML and JUnit way","author":"Cheon","year":"2002"},{"key":"10.1016\/j.jss.2017.06.017_bib0009","series-title":"Software Engineering Research and Practice","first-page":"385","article-title":"Random test data generation for Java classes annotated with JML specifications","author":"Cheon","year":"2007"},{"key":"10.1016\/j.jss.2017.06.017_sbref0010","series-title":"3rd Int. Workshop on Model-Based Testing (MBT\u20192007), co-located with ETAPS\u20192007","article-title":"Measuring the coverage of a Java test suite using JML specifications","volume":"190","author":"Dadeau","year":"2007"},{"key":"10.1016\/j.jss.2017.06.017_bib0011","unstructured":"Enderlin, I., 2010. Hoa project. http:\/\/hoa-project.net."},{"key":"10.1016\/j.jss.2017.06.017_bib0012","series-title":"23rd IFIP WG 6.1 International Conference on Testing Software and Systems (ICTSS 2011)","first-page":"64","article-title":"Praspel: a specification language for contract-based testing in PHP","author":"Enderlin","year":"2011"},{"key":"10.1016\/j.jss.2017.06.017_bib0013","series-title":"IEEE Fifth International Conference on Software Testing, Verification and Validation Workshops","first-page":"509","article-title":"Grammar-based testing using realistic domains in PHP","author":"Enderlin","year":"2012"},{"key":"10.1016\/j.jss.2017.06.017_bib0014","series-title":"IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops","first-page":"218","article-title":"A constraint solver for PHP arrays","author":"Enderlin","year":"2013"},{"key":"10.1016\/j.jss.2017.06.017_bib0015","series-title":"Design Patterns","author":"Gamma","year":"1995"},{"issue":"6","key":"10.1016\/j.jss.2017.06.017_bib0016","doi-asserted-by":"crossref","first-page":"500","DOI":"10.1049\/iet-sen:20080008","article-title":"Verification of class liveness properties with Java modeling language","volume":"2","author":"Giorgetti","year":"2008","journal-title":"IET Softw."},{"key":"10.1016\/j.jss.2017.06.017_bib0017","series-title":"Second International Conference on Software Testing Verification and Validation (ICST\u20192009), 1\u20134 April 2009, Denver, Colorado, USA","first-page":"151","article-title":"Euclide: a constraint-based testing framework for critical C programs","author":"Gotlieb","year":"2009"},{"issue":"3","key":"10.1016\/j.jss.2017.06.017_bib0018","doi-asserted-by":"crossref","first-page":"343","DOI":"10.1017\/S0269888912000252","article-title":"TCAS Software verification using constraint programming","volume":"27","author":"Gotlieb","year":"2012","journal-title":"Knowl. Eng. Rev."},{"key":"10.1016\/j.jss.2017.06.017_bib0019","series-title":"First International Conference on Computational Logic (CL\u20192000)","first-page":"399","article-title":"A CLP framework for computing structural test data","author":"Gotlieb","year":"2000"},{"key":"10.1016\/j.jss.2017.06.017_bib0020","series-title":"Proceedings of the 12th International Conference on Computer Systems and Technologies","first-page":"161","article-title":"Reducing the number of unit tests with design by contract","author":"Hakonen","year":"2011"},{"key":"10.1016\/j.jss.2017.06.017_bib0021","unstructured":"Hardy, F., 2010. atoum. http:\/\/atoum.org."},{"key":"10.1016\/j.jss.2017.06.017_bib0022","series-title":"TOOLS 2010 - 48th Int. Conf. on Objects, Models, Components, Patterns","first-page":"154","article-title":"Contract-driven testing of JavaScript code","author":"Heidegger","year":"2010"},{"key":"10.1016\/j.jss.2017.06.017_bib0023","series-title":"Behavioral Specifications of Businesses and Systems","first-page":"175","article-title":"JML: a notation for detailed design","author":"Leavens","year":"1999"},{"issue":"1","key":"10.1016\/j.jss.2017.06.017_bib0024","doi-asserted-by":"crossref","first-page":"99","DOI":"10.1016\/0004-3702(77)90007-8","article-title":"Consistency in network of relations","volume":"8","author":"Macworth","year":"1977","journal-title":"J. Artif. Intell."},{"issue":"4","key":"10.1016\/j.jss.2017.06.017_bib0025","doi-asserted-by":"crossref","DOI":"10.5381\/jot.2004.3.4.a1","article-title":"Enhancing design by contract with knowledge of equivalence partitions","volume":"3","author":"Madsen","year":"2004","journal-title":"J. Object Technol."},{"key":"10.1016\/j.jss.2017.06.017_bib0026","doi-asserted-by":"crossref","first-page":"50","DOI":"10.1109\/52.56422","article-title":"Generating test data with enhanced context-free grammars","volume":"7","author":"Maurer","year":"1990","journal-title":"IEEE Softw."},{"issue":"2","key":"10.1016\/j.jss.2017.06.017_sbref0025","doi-asserted-by":"crossref","first-page":"85","DOI":"10.1145\/24686.24694","article-title":"Eiffel: programming for reusability and extendibility","volume":"22","author":"Meyer","year":"1987","journal-title":"SIGPLAN Not."},{"issue":"10","key":"10.1016\/j.jss.2017.06.017_sbref0026","doi-asserted-by":"crossref","first-page":"40","DOI":"10.1109\/2.161279","article-title":"Applying \u201cdesign by contract\u201d","volume":"25","author":"Meyer","year":"1992","journal-title":"Computer"},{"key":"10.1016\/j.jss.2017.06.017_bib0029","series-title":"Object-oriented Software Construction","author":"Meyer","year":"1997"},{"key":"10.1016\/j.jss.2017.06.017_bib0030","series-title":"Proceedings of the 33rd Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM\u201907)","first-page":"114","article-title":"Automatic testing of object-oriented software","author":"Meyer","year":"2007"},{"issue":"9","key":"10.1016\/j.jss.2017.06.017_sbref0029","doi-asserted-by":"crossref","first-page":"46","DOI":"10.1109\/MC.2009.296","article-title":"Programs that test themselves","volume":"42","author":"Meyer","year":"2009","journal-title":"Computer"},{"key":"10.1016\/j.jss.2017.06.017_bib0032","unstructured":"Oestreicher, S., 2014. PHP-Quickcheck - Generative Testing for PHP. https:\/\/github.com\/steos\/php-quickcheck."},{"key":"10.1016\/j.jss.2017.06.017_bib0033","series-title":"QoSA\/SOQUA","first-page":"242","article-title":"Jartege: a tool for random generation of unit tests for Java classes.","author":"Oriat","year":"2005"},{"key":"10.1016\/j.jss.2017.06.017_bib0034","unstructured":"Pot, E., 2015. sabre\/katana. http:\/\/sabre.io\/katana."},{"key":"10.1016\/j.jss.2017.06.017_bib0035","unstructured":"Potencier, F., 2014. pickle. https:\/\/github.com\/FriendsOfPHP\/pickle."},{"issue":"1","key":"10.1016\/j.jss.2017.06.017_bib0036","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/1668862.1668869","article-title":"Improving the testability of object oriented software through software contracts","volume":"35","author":"Singh","year":"2010","journal-title":"SIGSOFT Softw. Eng. Notes"},{"key":"10.1016\/j.jss.2017.06.017_bib0037","series-title":"10th European Software Engineering Conference (ESEC\/FSE-13)","first-page":"253","article-title":"Parameterized unit tests","author":"Tillmann","year":"2005"},{"issue":"5","key":"10.1016\/j.jss.2017.06.017_sbref0033","doi-asserted-by":"crossref","first-page":"297","DOI":"10.1002\/stvr.456","article-title":"A taxonomy of model-based testing approaches","volume":"22","author":"Utting","year":"2012","journal-title":"Softw. Test. Verification Reliab."},{"key":"10.1016\/j.jss.2017.06.017_bib0039","series-title":"Models in Software Engineering, Workshops and Symposia at MoDELS 2007","first-page":"151","article-title":"Deriving input partitions from UML models for automatic test generation","author":"Wei\u00dfleder","year":"2007"},{"key":"10.1016\/j.jss.2017.06.017_bib0040","series-title":"Formal Approaches to Software Testing, Third International Workshop on Formal Approaches to Testing of Software (FATES\u20192003), Montreal, Quebec, Canada","first-page":"70","article-title":"JMLAutoTest: a novel automated testing framework based on JML and JUnit","author":"Xu","year":"2003"},{"key":"10.1016\/j.jss.2017.06.017_bib0041","series-title":"Model-Based Testing for Embedded Systems","author":"Zander","year":"2011"},{"key":"10.1016\/j.jss.2017.06.017_bib0042","unstructured":"Zaninotto, F., 2014. Faker. https:\/\/github.com\/fzaninotto\/Faker."},{"key":"10.1016\/j.jss.2017.06.017_bib0043","series-title":"International Conference on Formal Verification of Object-Oriented Software (FoVeOOS\u20192010)","first-page":"183","article-title":"JMLUnit: the next generation","author":"Zimmerman","year":"2011"}],"container-title":["Journal of Systems and Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S016412121730119X?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S016412121730119X?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2021,10,30]],"date-time":"2021-10-30T12:21:22Z","timestamp":1635596482000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S016412121730119X"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,2]]},"references-count":43,"alternative-id":["S016412121730119X"],"URL":"https:\/\/doi.org\/10.1016\/j.jss.2017.06.017","relation":{},"ISSN":["0164-1212"],"issn-type":[{"value":"0164-1212","type":"print"}],"subject":[],"published":{"date-parts":[[2018,2]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"Contract-based testing for PHP with Praspel","name":"articletitle","label":"Article Title"},{"value":"Journal of Systems and Software","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.jss.2017.06.017","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2017 Elsevier Inc. All rights reserved.","name":"copyright","label":"Copyright"}]}}