- By definition, source code is the form of software, which is easiest to modify. The actual executable is created from it by an automatic build process, which may include compilation and linking. If you modify a complicated piece of software, you want to make sure that your modifications broke nothing. To do this efficiently, you need test cases.
- If your modifications are not generally useful, owners of secret test cases won’t test your modifications. The same applies if you were forced to fork the software package in question.
- RMS didn’t require this so far. RMS’ printer driver problem can be solved without test cases. This has not been a requirement so far.
- Some test cases may embody proprietary software usage scenarios, and releasing them to the world, as required by GPL, would reveal too much of the company’s trade secrets.
- When you add your modifications to a GPLed software package, users with secret test scenarios will test your modifications, if they are useful for them. If your modifications break the software, they will fix them and you’ll get back their fixes thanks to the GPL.
At any case, there is a case for strong recommendation that test cases be constructed for GPLed software, and that they be released together with it and under the same license (GPL or LGPL).