{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T19:44:52Z","timestamp":1740167092455,"version":"3.37.3"},"reference-count":20,"publisher":"F1000 Research Ltd","license":[{"start":{"date-parts":[[2016,8,10]],"date-time":"2016-08-10T00:00:00Z","timestamp":1470787200000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["f1000research.com"],"crossmark-restriction":false},"short-container-title":["F1000Res"],"abstract":"The growth of the software industry has gone hand in hand with the development\u00a0of tools and cultural practices for ensuring the reliability of complex pieces\u00a0of software. These tools and practices are now acknowledged to be essential to\u00a0the management of modern software. As computational models and methods have\u00a0become increasingly common in the biological sciences, it is important to examine\u00a0how these practices can accelerate biological software development and improve\u00a0research quality. In this article, we give a focused case study of our experience\u00a0with the practices of unit testing and test-driven development in OpenWorm<\/ns4:italic>, an\u00a0open-science project aimed at modeling Caenorhabditis elegans<\/ns4:italic>. We identify and\u00a0discuss the challenges of incorporating test-driven development into a heterogeneous,\u00a0data-driven project, as well as the role of model validation tests, a category\u00a0of tests unique to software which expresses scientific models.<\/ns4:p>","DOI":"10.12688\/f1000research.9315.1","type":"journal-article","created":{"date-parts":[[2016,8,10]],"date-time":"2016-08-10T10:05:09Z","timestamp":1470823509000},"page":"1946","update-policy":"https:\/\/doi.org\/10.12688\/f1000research.crossmark-policy","source":"Crossref","is-referenced-by-count":26,"title":["Unit testing, model validation, and biological simulation"],"prefix":"10.12688","volume":"5","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9413-6202","authenticated-orcid":false,"given":"Gopal P.","family":"Sarma","sequence":"first","affiliation":[]},{"given":"Travis W.","family":"Jacobs","sequence":"additional","affiliation":[]},{"given":"Mark D.","family":"Watts","sequence":"additional","affiliation":[]},{"given":"S. Vahid","family":"Ghayoomie","sequence":"additional","affiliation":[]},{"given":"Stephen D.","family":"Larson","sequence":"additional","affiliation":[]},{"given":"Richard C.","family":"Gerkin","sequence":"additional","affiliation":[]}],"member":"2560","published-online":{"date-parts":[[2016,8,10]]},"reference":[{"key":"ref-1","doi-asserted-by":"publisher","first-page":"64-71","DOI":"10.1109\/mis.2002.1039834","article-title":"Computational Challenges in Cell Simulation: A Software Engineering Approach.","volume":"17","author":"K Takahashi","year":"2002","journal-title":"IEEE Intelligent Systems."},{"key":"ref-2","doi-asserted-by":"publisher","first-page":"111-115","DOI":"10.1016\/j.copbio.2014.01.012","article-title":"The future of whole-cell modeling.","volume":"28","author":"D Macklin","year":"2014","journal-title":"Curr Opin Biotechnol."},{"key":"ref-3","doi-asserted-by":"publisher","first-page":"e1003376","DOI":"10.1371\/journal.pcbi.1003376","article-title":"Current practice in software development for computational neuroscience and how to improve it.","volume":"10","author":"M Gewaltig","year":"2014","journal-title":"PLoS Comput Biol."},{"article-title":"Test Driven Development: By Example.","year":"2002","author":"K Beck","key":"ref-4"},{"key":"ref-5","doi-asserted-by":"publisher","first-page":"564-569","DOI":"10.1109\/ICSE.2003.1201238","article-title":"Assessing test-driven development at IBM.","author":"E Maximilien","year":"2003"},{"key":"ref-6","doi-asserted-by":"publisher","first-page":"226-237","DOI":"10.1109\/TSE.2005.37","article-title":"On the effectiveness of the test-first approach to programming.","volume":"31","author":"H Erdogmus","year":"2005","journal-title":"IEEE Transactions on Software Engineering."},{"article-title":"The Art of Unit Testing: with examples in C#.","year":"2013","author":"R Osherove","key":"ref-7"},{"key":"ref-8","doi-asserted-by":"publisher","first-page":"137","DOI":"10.3389\/fncom.2014.00137","article-title":"OpenWorm: an open-science approach to modeling Caenorhabditis elegans.","volume":"8","author":"B Szigeti","year":"2014","journal-title":"Front Comput Neurosci."},{"year":"2015","key":"ref-9","article-title":"DOI\u00ae System and Internet Identifier Specifications"},{"key":"ref-10","doi-asserted-by":"publisher","first-page":"227-228","DOI":"10.1007\/s12021-014-9224-7","article-title":"The dangers of plug-and-play simulation using shared models.","volume":"12","author":"E De Schutter","year":"2014","journal-title":"Neuroinformatics."},{"key":"ref-11","doi-asserted-by":"publisher","first-page":"524-527","DOI":"10.1145\/2591062.2591129","article-title":"Collaborative infrastructure for test-driven scientific model validation.","author":"C Omar","year":"2014"},{"article-title":"Design patterns explained: a new perspective on object-oriented design.","year":"2004","author":"A Shalloway","key":"ref-12"},{"year":"2015","key":"ref-13","article-title":"Code coverage measurement for python"},{"year":"2015","key":"ref-14","article-title":"Coveralls-Test Coverage History and Statistics"},{"article-title":"Object Oriented Analysis and Design with Applications","year":"1990","author":"G Booch","key":"ref-15"},{"article-title":"Continuous Integration: Improving Software Quality and Reducing Risk","year":"2007","author":"P Duvall","key":"ref-16"},{"year":"2015","key":"ref-17","article-title":"Travis CI - Test and Deploy Your Code with Confidence"},{"key":"ref-18","doi-asserted-by":"crossref","DOI":"10.1016\/S2155-8256(15)30310-0","article-title":"The Checklist Manifesto: How to Get Things Right.","author":"A Gawande","year":"2011"},{"key":"ref-19","doi-asserted-by":"publisher","first-page":"365-368","DOI":"10.1016\/j.aorn.2012.12.019","article-title":"Creating a culture of safety by using checklists.","volume":"97","author":"L Huang","year":"2013","journal-title":"AORN J."},{"key":"ref-20","doi-asserted-by":"publisher","first-page":"136-142","DOI":"10.1007\/s12630-012-9854-x","article-title":"Perioperative checklist methodologies.","volume":"60","author":"T Weiser","year":"2013","journal-title":"Can J Anaesth."}],"container-title":["F1000Research"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/f1000research.com\/articles\/5-1946\/v1\/xml","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/f1000research.com\/articles\/5-1946\/v1\/pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/f1000research.com\/articles\/5-1946\/v1\/iparadigms","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,11,20]],"date-time":"2019-11-20T09:55:11Z","timestamp":1574243711000},"score":1,"resource":{"primary":{"URL":"https:\/\/f1000research.com\/articles\/5-1946\/v1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,8,10]]},"references-count":20,"URL":"https:\/\/doi.org\/10.12688\/f1000research.9315.1","relation":{"has-review":[{"id-type":"doi","id":"10.5256\/f1000research.10031.r15594","asserted-by":"subject"},{"id-type":"doi","id":"10.5256\/f1000research.10031.r15597","asserted-by":"subject"},{"id-type":"doi","id":"10.5256\/f1000research.10031.r15595","asserted-by":"subject"}]},"ISSN":["2046-1402"],"issn-type":[{"type":"electronic","value":"2046-1402"}],"subject":[],"published":{"date-parts":[[2016,8,10]]},"assertion":[{"value":"Indexed","URL":"https:\/\/f1000research.com\/articles\/5-1946\/v1#article-reports","order":0,"name":"referee-status","label":"Referee status","group":{"name":"current-referee-status","label":"Current Referee Status"}},{"value":"10.5256\/f1000research.10031.r15597, Robert Cannon, Textensor Limited, Edinburgh, UK, 24 Aug 2016, version 1, indexed","URL":"https:\/\/f1000research.com\/articles\/5-1946\/v1#referee-response-15597","order":0,"name":"referee-response-15597","label":"Referee Report","group":{"name":"article-reports","label":"Article Reports"}},{"value":"10.5256\/f1000research.10031.r15594, Christian Roessert, Blue Brain Project, E\u0301cole Polytechnique Fe\u0301de\u0301rale de Lausanne (EPFL), Geneva, Switzerland, 30 Aug 2016, version 1, indexed","URL":"https:\/\/f1000research.com\/articles\/5-1946\/v1#referee-response-15594","order":1,"name":"referee-response-15594","label":"Referee Report","group":{"name":"article-reports","label":"Article Reports"}},{"value":"10.5256\/f1000research.10031.r15595, Andrew Davison, Unit of Neuroscience, Information et Complexity (UNIC), French National Center for Scientific Research, Gif-sur-Yvette, France, 31 Aug 2016, version 1, indexed","URL":"https:\/\/f1000research.com\/articles\/5-1946\/v1#referee-response-15595","order":2,"name":"referee-response-15595","label":"Referee Report","group":{"name":"article-reports","label":"Article Reports"}},{"value":"This work was funded in part by NIMH (R01MH106674, RCG), and NIBIB (R01EB021711, RCG; and R01EB014640, Sharon M. Crook). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.","order":3,"name":"grant-information","label":"Grant Information"},{"value":"This is an open access article distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.","order":0,"name":"copyright-info","label":"Copyright"}]}}