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.


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.


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.


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


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


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.

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?


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.