Pros:
- 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.
Cons:
- 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).
2008 Jan 05 update:
The gNewSense Mailing list is teeming with activity about the binary kernel blobs issue (source: the Dealing With Contentious Kernel Blobs article in the Blue-GNU blog).
The issue there is the same issue pointed out by this blog item – how easy is it, in practice, to modify software?
you touched the subject but did not take it any further…
the Free Software movement basicly says, software is unlike a regular off-the-shelf product, it is a service. a service that requires a skill and some knowledge like most others, and furthermore since it's easely-copyable knowledge it should be allowed to.
but in this philosophy, neatly folded, is the idea that one can (and is encouraged to) earn her salt by rendering services, or writing and customizing software. I believe that custom regression test tools are like a set of home made tools of an artist or a smith of any trade (a plumber if you want, pick your own example). these scripts or test systems are his tools of the trade, his pocket swiss army knife which differentiates him from the other programmers around and make his or her services as a FOSS developper prefferable by her customers. As hippy and communistic the portrait of RMS may seem to some people, he never went to the extreme of advocating no private posessions, I think you can see that this ideology just doesn't hold water in the modern world.
as a current real-world example, the secretary of the national Kibutzim organization talked on the Radio this week, he was asked if the Kibutz is dead, turned into no more then any other community town or “moshav shitufi” and he answered that it is just the natural development. the idea of equality was always an impossible utopia, and so to preserve the other ideals of personal rights, happiness and community cooperation, some changes had to be made. the tractors, chickens, cows and factories are communal propperty but the members own their own cars in some cases farm their own land, and in most cases manage their own bank accounts.
Going back to Free Software, I believe some knowledge should be free for helping the community and some is OK to keep as an in-house tool to help yourself. these do not have to contradict eachother. as long as you don't take away freedoms from the user, how can it NOT be kosher?
in other words, test scripts for GPL software should be encouraged to be released along under the GPL but should not be forced to be…
_________________
Idiot savant
Ira Abramov
(http://livejournal.com/users/)