Gostaria de saber se existem benefícios / riscos de (não) colocar uma licença no código de teste, que consiste principalmente em testes de unidade. O que você acha?
Estou particularmente interessado em licenciar sob (L) GPL, Apache, MIT e BSD.
EDIT : O pressuposto é que o código que não é de teste já foi publicado sob alguma licença, mas o código de teste não é, então a questão é se deve publicá-lo e, em caso afirmativo, se deve colocar a mesma licença nele.
Respostas:
Estou surpreso que ninguém já tenha mencionado isso, mas se você não anexar uma licença ao seu código, seja um código de produto ou de teste, outros não terão direitos sobre o código .
O código de licenciamento é sobre dar direitos a outras pessoas que elas normalmente não teriam. Seu código de teste é coberto automaticamente por direitos autorais (na maioria dos países do mundo), mesmo se você não anexar explicitamente um aviso de direitos autorais. Sendo protegido por direitos autorais, outras pessoas não podem usar, distribuir ou derivar desse código.
Ao anexar uma licença ao seu código de teste, você concede às pessoas o direito de usar, distribuir e / ou modificar esse código de acordo com os termos da licença.
Eu recomendaria que você distribuísse seu código de teste com o código do produto, sob a mesma licença. Isso é mais simples para todos. Isso também significa que se as pessoas quiserem enviar correções para você, elas poderão executar seus testes de unidade antes de enviarem uma correção, o que ajudará a eliminar as correções que quebram as coisas.
fonte
No mundo comercial, a maioria das empresas cobra não apenas pelo produto principal, mas também pelo suporte. Na maioria das vezes, o suporte envolve qualquer forma de ajuda por meio de ferramenta ou assistência pessoal, para poder tornar o produto utilizável ou resolver quaisquer problemas relacionados ao produto.
Por esse token, o código para testar o produto qualifica igualmente uma ferramenta de suporte e é uma propriedade intelectual por si só. Por isso, merece uma licença própria.
fonte
Por que você separa o código e o teste?
Eu prefiro um pacote de código e teste. E este pacote deve obter a mesma licença.
Se alguém quiser ganhar o dobro do dinheiro, você pode fazer dois pacotes - cada um com uma licença. Para o software livre, não vejo razão para dois pacotes (a menos que seja um problema de tamanho).
fonte
O código de teste tem muito valor, pois permite ao usuário verificar se sua solução funciona em um determinado ambiente. No meu trabalho (software incorporado), o conjunto de testes faz parte do contrato. Você deve publicá-lo com a mesma licença, porque o uso é semelhante:
se alguém usar seu código, ele executará os testes
se alguém quiser modificar o código, provavelmente precisará modificar alguns testes também
fonte
IANAL, no entanto:
fonte
O compilador GCC (principalmente licenciado para GPLv3) possui um conjunto de testes bastante extenso, distribuído com o código-fonte. (talvez alguns arquivos de teste sejam de domínio público, eu realmente não conheço seu status legal individual).
Por que você deseja distribuir sua suíte de testes separadamente do seu produto?
fonte
Pode ser um possível modelo de negócios, portanto, libere um programa como software livre (GPL ou qualquer outro), mas a unidade de teste é testada sob uma licença comercial. Dessa forma, se alguém quiser lançar uma versão aprimorada do seu software (por exemplo, embutido em um dispositivo), ele pode estar motivado a comprar a licença de teste de unidade para um desenvolvimento mais rápido e seguro.
fonte
Se seus testes de unidade forem bem-feitos, eles serão um plano para reproduzir seu software. Se você não os licenciar de forma equivalente ao código, você está convidando alguém para aparecer e reimplementar o que você fez. Se você estiver bem com isso, não se preocupe em licenciá-los.
fonte