Abstract#
Background: Software is at the core of most scientific discoveries today. Therefore, the quality of research results highly depends on the quality of the research software. Rigorous testing, as we know it from software engineering in the industry, could ensure the quality of the research software but it also requires a substantial effort that is often not rewarded in academia.
Objective: Therefore, this research explores the effects of research software testing integrated into teaching on research software.
Method: In an in-vivo experiment, we integrated the engineering of a test suite for a large-scale network simulation as group projects into a course on software testing at the Blekinge Institute of Technology, Sweden, and qualitatively measured the effects of this integration on the research software.
Results: We found that the research software benefited from the integration through substantially improved documentation and fewer hardware and software dependencies. However, this integration was effortful and although the student teams developed elegant and thoughtful test suites, no code by students went directly into the research software since we were not able to make the integration back into the research software obligatory or even remunerative.
Conclusion: We strongly believe that integrating research software engineering, such as testing, into teaching is valuable not only for the research software itself but also for students gaining exposure to bleeding-edge research in their field. However, the uncertainty about the intellectual properties of students’ code contributions substantially limits the potential of integrating research software engineering into teaching.