Faz sentido licenciar testes de unidade?

12

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.

Leden
fonte
Os testes não seriam considerados fatos / dados, que não estão sujeitos a direitos autorais ou licenciamento em primeiro lugar? É legal copiar uma API , e eu acho que também é legal usar os mesmos testes para verificar se a implementação está correta?
endolith 17/12/13

Respostas:

10

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.

Mark Booth
fonte
15

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.

Dipan Mehta
fonte
9

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).

knut
fonte
6

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

Simon Bergot
fonte
2

IANAL, no entanto:

  1. Se você está licenciando seu código sob a GPL, de fato seus testes de unidade também são GPL, pois são muito inúteis sem o código principal
  2. Se você estiver usando o Apache / BSD, a provisão 'USE A SEU PRÓPRIO RISCO'. Colocaria um arquivo de licença em todo o projeto e deixaria o usuário descobrir se é para o código ou para o código de teste.
  3. Se você usa uma licença comercial e limita o acesso ao código, por que você publicaria seus testes em primeiro lugar? Se você quiser ter certeza, coloque um 'LENDO O CÓDIGO DE TESTE, CONCORDA EM ADQUIRIR A licença dos seus olhos' e pronto.
ptyx
fonte
1

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?

Basile Starynkevitch
fonte
0

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.

user281377
fonte
0

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.

Placa
fonte