ABSTRACT

After a few words about scientific software testing techniques other than regression testing, the remainder of this introduction will discuss software reproducibility and the role regression testing plays in maintaining reproducibility. The next section of the chapter will describe particular challenges that are encountered when testing scientific software-including the oracle and tolerance problems-and will describe how regression testing helps with these challenges. A case study describing the regression testing carried out at Engineering Seismology Group Solutions (ESG) will then be presented to illustrate some of the benefits realized and challenges encountered when regression testing is applied to a real-world suite of analysis software. Finally, the conclusion will include a call for research into techniques that might help mitigate challenges encountered by scientists who are trying to apply regression testing to their software.