Unit testing, model validation, and biological simulation

The growth of the software industry has gone hand in hand with the development of tools and cultural practices for ensuring the reliability of complex pieces of software. These tools and practices are now acknowledged to be essential to the management of modern software. As computational models and methods have become increasingly common in the biological sciences, it is important to examine how these practices can accelerate biological software development and improve research quality. In this article, we give a focused case study of our experience with the practices of unit testing and test-driven development in OpenWorm, an open-science project aimed at modeling Caenorhabditis elegans. We identify and discuss the challenges of incorporating test-driven development into a heterogeneous, data-driven project, as well as the role of model validation tests, a category of tests unique to software which expresses scientific models.

[1]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[2]  Derek N. Macklin,et al.  The future of whole-cell modeling. , 2014, Current opinion in biotechnology.

[3]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[4]  Manuela Herman,et al.  The Art Of Unit Testing With Examples In Net , 2016 .

[5]  Stephen D. Larson,et al.  OpenWorm: an open-science approach to modeling Caenorhabditis elegans , 2014, Front. Comput. Neurosci..

[6]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[7]  Lyen C. Huang,et al.  Creating a culture of safety by using checklists. , 2013, AORN journal.

[8]  Andrew Glover,et al.  Continuous Integration: Improving Software Quality and Reducing Risk (The Addison-Wesley Signature Series) , 2007 .

[9]  Masaru Tomita,et al.  Computational Challenges in Cell Simulation: A Software Engineering Approach , 2002, IEEE Intell. Syst..

[10]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[11]  Erik De Schutter,et al.  The Dangers of Plug-and-Play Simulation Using Shared Models , 2014, Neuroinformatics.

[12]  Laurie A. Williams,et al.  Assessing test-driven development at IBM , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[13]  Marc-Oliver Gewaltig,et al.  Current Practice in Software Development for Computational Neuroscience and How to Improve It , 2012, PLoS Comput. Biol..

[14]  Richard C. Gerkin,et al.  Collaborative infrastructure for test-driven scientific model validation , 2014, ICSE Companion.

[15]  Edward J. Bernacki The Checklist Manifesto—How to Get Things Right , 2010 .

[16]  Roy Osherove The Art of Unit Testing: With Examples in .NET , 2009 .

[17]  Sandra Maurer,et al.  Design Patterns Explained A New Perspective On Object Oriented Design , 2016 .

[18]  Marco Torchiano,et al.  On the effectiveness of the test-first approach to programming , 2005, IEEE Transactions on Software Engineering.

[19]  R. M. Vazquez The Checklist Manifesto How to Get Things Right , 2011 .

[20]  Thomas G Weiser,et al.  Review article: Perioperative checklist methodologies , 2013, Canadian Journal of Anesthesia/Journal canadien d'anesthésie.