A practical guide towards agile test-driven development for scientific software projects
Tom-Robin Teschner

TL;DR
This paper adapts agile test-driven development practices for scientific software, demonstrating how simple testing frameworks can improve code reliability in academic environments, especially for single-developer projects.
Contribution
It presents a practical approach and a C++ starter project for implementing agile test-driven development tailored to scientific and academic software development.
Findings
Implemented a C++ project with integrated testing using meson build system
Showed how layered testing reduces software defects and misinterpretation risks
Demonstrated minimal overhead for incorporating testing in scientific code
Abstract
Software testing has received much attention over the last years and has reached such critical importance that agile software development practices put software testing at its core. Agile software development is successfully applied in large-scale industrial software developments but due to its granular responsibilities with roles assigned to various members of the development team, these practices may not be applicable to scientific code development, especially in an academic environment, where it is not uncommon that the codebase is developed, maintained and used by a single person. Even for collaborative scientific software development, financed through external grants, the end-users are typically still part of the development team. This is in contrast to how software is developed in many industries, where the development team and end-users are two separate entities. There are,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Reliability and Analysis Research · Software System Performance and Reliability
