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

10/08/2020
by   Tom-Robin Teschner, et al.
0

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, however, many good code development practices that can be adopted for scientific software projects. Specifically, the intention of this article is to take the centrepiece of agile software development and tailor it to scientific and academic, single-user code development. In this study, a c++ starter project is developed and made available, based on the meson build system, which provides native support for software testing. It is used to show how a simple linear algebra application, found in many scientific and academic applications, can be developed and how simple unit, integration and system tests can be created that are managed through the meson build system. In this way, we are able to minimise software defects and reduce the risk to interpret incorrect data generated by erroneous software that may result in the wrong conclusions to be drawn. Each layer of testing presents one additional layer of protection and we will explore how these may be incorporated with minimum overhead to produce bug-free software.

READ FULL TEXT
research
12/05/2017

A Study on the Perception of Researchers about the Application of Agile Software Development Methods in Research

Papers on Agile Software Development methods are often focused on their ...
research
02/27/2017

xSDK Foundations: Toward an Extreme-scale Scientific Software Development Kit

Extreme-scale computational science increasingly demands multiscale and ...
research
09/09/2020

User documentation and training at Belle II

Belle II is a rapidly growing collaboration with members from one hundre...
research
03/22/2022

Methodology for development of scientific software and test frameworks in function of precision of the expected results

This dissertation focuses on the development process of scientific softw...
research
01/27/2021

Testing in Global Software Development – A Pattern Approach

Although testing is critical in GSD, its application in this context has...
research
04/05/2020

SADAS: an integrated software system for the data of the SuperAGILE experiment

SuperAGILE (SA) is a detection system on board of the AGILE satellite (A...
research
08/08/2022

On the Benefits And Problems Related to Using Definition of Done – A Survey Study

Context: Definition of Done (DoD) is one of the fundamental concepts of ...

Please sign up or login with your details

Forgot password? Click here to reset