Reproducibility


How do I ensure the reproducibility of data produced by my software?

Generally, there are two approaches to this, but they ultimately contradict each other. On one hand, there is the preservation of the program code as unchanged as possible. With this approach, there is practically no risk that the data produced by the software will change, but long-term executability is not guaranteed. The other approach is the continuous maintenance of the software, which at least requires adaptations to changing operating systems and runtime environments; ideally, this also involves further development.

Preservation of the Program Code

This approach may also be necessary for documentation purposes (e.g., if the software is part of a publication).

Archiving

How do I ensure that my source code remains readable (and executable) for 10 years?

Continuous Maintenance

For this, reviewing, consistent testing (also automated), and documentation (also in the form of version control) are absolutely necessary.

What standards are there for reviewing scientific software (field-specific or generic)?

Examples

Consistent Testing

How can regression tests be automated?

Three evaluations of corresponding software (https://www.rainforestqa.com/blog/regression-testing-tools, https://www.softwaretestinghelp.com/regression-testing-tools/, https://theqalead.com/tools/best-regression-testing-tools/). The intersection results in (in alphabetical order):

None of these are currently available through the MPDL license list (SoLi), possibly submit suggestions

In any case, indispensable: Documentation (software and hardware!)

  • In the end, only text-based documentation of the algorithm, independent of the programming language, remains (but this would be extremely labor-intensive)
  • Compromise: Source code including all relevant libraries also as source code (especially for mathematical calculations)
  • Regarding documentation tools for software, see also the FAQ on Documentation.

Links