No Free Lunch: Research Software Testing in Teaching
<|reference_start|>No Free Lunch: Research Software Testing in Teaching: 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. Therefore, this research explores the effects of research software testing integrated into teaching on research software. 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. 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. Although we strongly believe that integrating research software engineering such as testing into teaching is not only valuable for the research software itself but also for students, the research of the next generation, as they get in touch with research software engineering and bleeding-edge research in their field as part of their education, the uncertainty about the intellectual properties of students' code substantially limits the potential of integrating research software testing into teaching.<|reference_end|>
@article{dorner2024no,
    title={No Free Lunch: Research Software Testing in Teaching},
    author={Michael Dorner and Andreas Bauer and Florian Angermeir},
    journal={arXiv preprint arXiv:2405.11965},
    year={2024},
    archivePrefix={arXiv},
    eprint={2405.11965},
    primaryClass={cs.SE}
}