ABSTRACT
Scientific software is more difficult to test than many other software products, but scientists are not usually trained in software engineering techniques. Considering how often software is used to produce scientific results, how can we be sure the predictions made from these results are correct? Software engineering techniques should be useful for computational scientists. The problem is they find it difficult to know how to apply domain-independent techniques to the specific problems they face in their work. Nevertheless, we have discovered scientists use their own intuition to reinvent techniques surprisingly similar to those in software engineering. This seems like a good place to start our training.
- E. T. Barr, M. Harman, P. McMinn, M. Shahbaz, and S. Yoo. The Oracle Problem in Software Testing: A Survey. Software Engineering, IEEE Transactions on, 41(5):507--525, 2015.Google ScholarDigital Library
- I. Burnstein. Practical Software Testing: A Process-Oriented Approach. Springer, New York, NY, 2003. Google ScholarDigital Library
- O. Diekmann, J. Heesterbeek, and J. Metz. On the Definition and the computation of the basic reproduction ratio R0 in models for infectious diseases in heterogeneous populations. Journal of Mathematical Biology, 28(4):365--382, 1990.Google ScholarCross Ref
- P. Dubois. Testing scientific programs. Computing in Science & Engineering, 14(4):69--73, 2012. Google ScholarDigital Library
- J. E. Hannay, C. MacLeod, J. Singer, H. P. Langtangen, D. Pfahl, and G. Wilson. How Do Scientists Develop and Use Scientific Software? In Soft. Eng. for Computational Science and Eng., ICSE, 2009. Google ScholarDigital Library
- L. Hatton and A. Roberts. How accurate is scientific software? Software Engineering, IEEE Transactions on, 20(10):785--797, 1994. Google ScholarDigital Library
- S. Hettrick, M. Antonioletti, L. Carr, N. Chue Hong, S. Crouch, D. De Roure, I. Emsley, C. Goble, A. Hay, D. Inupakutika, M. Jackson, A. Nenadic, T. Parkinson, M. I. Parsons, A. Pawlik, G. Peru, A. Proeme, J. Robinson, and S. Sufi. UK Research Software Survey 2014. https://zenodo.org/record/14809.Google Scholar
- P. C. Jorgensen. Software Testing: A Craftsman's Approach. CRC Press, Boca Raton, FL, 4 edition, 2013.Google ScholarCross Ref
- R. C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, Upper Saddle River, NJ, 2008. Google ScholarDigital Library
- R. Meentemeyer, N. Cunniffe, A. Cook, J. Filipe, R. Hunter, D. Rizzo, and C. Gilligan. Epidemiological Modeling of Invasion in Heterogeneous Landscapes: Spread of Sudden Oak Death in California (1990-2030). Ecosphere, 2(2), 2011.Google Scholar
- Z. Merali. Computational science: Error, why scientific programming does not compute. Nature, 467(7317), 2010.Google Scholar
- M. Renton. Shifting focus from the population to the individual as a way forward in understanding, predicting and managing the complexities of evolution of resistance to pesticides. Pest Management Science, 69(2):171--175, 2013.Google ScholarCross Ref
- Software Carpentry. Why We Don't Teach Testing (Even Though We'd Like To). Accessed 02/12/2015 from: http://software-carpentry.org/blog/2014/10/why-we-dont-teach-testing.html.Google Scholar
Index Terms
- Software testing in a scientific research group
Recommendations
Testing scientific software: A systematic literature review
Context: Scientific software plays an important role in critical decision making, for example making weather predictions based on climate models, and computation of evidence for research publications. Recently, scientists have had to retract ...
Software Engineering for Scientists
At two recent workshops, participants discussed the juxtaposition of software engineering with the development of scientific computational software.
Disciplinary differences of software use and impact in scientific literature
AbstractSoftware plays an important role in the advancement of science. Software developers, users, and funding agencies have deep interests in the impact of software on science. This study investigates the use and impact of software by examining how ...
Comments