Abstract

The growth of the software industry has gone hand in hand with the developmentof tools and cultural practices for ensuring the reliability of complex piecesof software. These tools and practices are now acknowledged to be essential tothe management of modern software. As computational models and methods havebecome increasingly common in the biological sciences, it is important to examinehow these practices can accelerate biological software development and improveresearch quality. In this article, we give a focused case study of our experiencewith the practices of unit testing and test-driven development in OpenWorm, anopen-science project aimed at modeling Caenorhabditis elegans. We identify anddiscuss the challenges of incorporating test-driven development into a heterogeneous,data-driven project, as well as the role of model validation tests, a categoryof tests unique to software which expresses scientific models.

Highlights

  • Software plays an increasingly prominent role in the biological sciences

  • Software used for collaborative biological research has an additional level of complexity stemming from the need to incorporate and interact with the results of scientific research, in the form of large datasets or dynamical models

  • This added level of complexity suggests that technical tools and cultural practices for ensuring software reliability are of particular importance in the biological sciences[3]

Read more

Summary

Introduction

Software plays an increasingly prominent role in the biological sciences. This growth has been driven by an explosion in the availability of data and the parallel development of software to store, share, and analyze this data. There are a range of unit tests that need to be written to ensure that basic pieces of the software infrastructure function correctly Many of these tests will not be of any scientific significance; they are sanity checks to ensure correct behavior for predictable cases. Def test_neighbor(self): Test that a Neuron has a ’neighbors’ property, and that the correct Neuron is returned when calling the ’neighbor’ function These models are part of a continuously updated and re-executed simulation, and not static equations in a research paper, the model validation process must happen automatically and continuously, alongside other unit tests. The entire OpenWorm project, including the PyOpenWorm and ChannelWorm modules make use of continuous integration (see Figure 3), taking advantage of a free service called Travis-CI (https://travis-ci.org) that tests changes to the code-base as they are pushed to the collaborative software development portal GitHub[17]. If there are tests which are too specific and constrain internal behavior that is not meant to be static, a developer’s contributions may be unnecessarily rejected during the process of continuous integration

Conclusions
Beck K: Test Driven Development
Osherove R
10. De Schutter E
15. Booch G
18. Gawande A: The Checklist Manifesto
De Schutter E
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call