  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.
