Est-il judicieux d'accorder une licence aux tests unitaires?

12

Je me demande s'il y a des avantages / risques à mettre (pas) une licence sur le code de test qui consiste principalement en des tests unitaires. Qu'est-ce que tu penses?

Je suis particulièrement intéressé par les licences sous (L) GPL, Apache, MIT et BSD.

EDIT : L'hypothèse est que le code non-test est déjà publié sous une licence, mais le code test ne l'est pas, donc la question est de savoir si le publier et si oui de mettre la même licence dessus.

leden
la source
Les tests ne seraient-ils pas considérés comme des faits / données, qui ne sont pas soumis au droit d'auteur ou à la licence en premier lieu? Il est légal de copier une API , et je suppose qu'il est également légal d'utiliser les mêmes tests pour vérifier que la mise en œuvre est correcte?
endolith

Réponses:

10

Je suis surpris que personne ne l'ait déjà mentionné, mais si vous n'attachez pas de licence à votre code, que ce soit un produit ou un code de test, d' autres n'ont aucun droit sur le code .

Le code de licence consiste à donner à d'autres des droits qu'ils n'auraient pas normalement. Votre code de test est automatiquement couvert par le droit d'auteur (dans la plupart des pays du monde) même si vous ne joignez pas explicitement un avis de droit d'auteur. Étant protégés par le droit d'auteur, d'autres personnes ne peuvent pas utiliser, distribuer ou dériver de ce code.

En attachant une licence à votre code de test, vous donnez aux utilisateurs le droit d'utiliser, de distribuer et / ou de modifier ce code conformément aux termes de la licence.

Je vous recommande de distribuer votre code de test avec votre code produit, sous la même licence. C'est le plus simple pour tout le monde. Cela signifie également que si les gens veulent vous soumettre des correctifs, ils peuvent exécuter vos tests unitaires avant de vous envoyer un correctif, ce qui devrait aider à éliminer les correctifs qui cassent les choses.

Mark Booth
la source
15

Dans le monde commercial, la plupart des entreprises facturent non seulement le produit principal, mais également le support. Le plus souvent, le support implique toute forme d'aide au moyen d'un outil ou d'une assistance personnelle, pour pouvoir rendre le produit utilisable ou résoudre tout problème lié au produit.

De ce fait, le code de test du produit qualifie également un outil de support et est une propriété intellectuelle à part entière. Il mérite donc sa propre licence.

Dipan Mehta
la source
9

Pourquoi séparez-vous le code et testez-vous?

Je préfère un paquet de code et de test. Et ce bundle devrait obtenir la même licence.

Si quelqu'un souhaite obtenir deux fois de l'argent, vous pouvez créer deux packages, chacun avec une licence. Pour les logiciels libres, je ne vois aucune raison pour deux packages (sauf si c'est un problème de taille).

knut
la source
6

Le code de test a beaucoup de valeur, car il permet à l'utilisateur de vérifier si votre solution fonctionne dans un environnement donné. Dans mon travail (logiciel embarqué), la suite de tests fait partie du contrat. Vous devez le publier avec la même licence, car son utilisation est similaire:

  • si quelqu'un utilise simplement votre code, il exécutera les tests

  • si quelqu'un veut modifier le code, il devra probablement aussi modifier certains tests

Simon Bergot
la source
2

IANAL, cependant:

  1. Si vous autorisez votre code sous GPL, vos tests unitaires sont de facto également GPL car ils sont assez inutiles sans le code principal
  2. Si vous utilisez Apache / BSD, la disposition «UTILISER À VOS PROPRES RISQUES». Je giflerais un fichier de licence avec l'ensemble du projet et laisserais l'utilisateur déterminer s'il s'agit du code ou du code de test.
  3. Si vous utilisez une licence commerciale et limitez l'accès au code, pourquoi publieriez-vous vos tests en premier lieu? Si vous voulez en être sûr, mettez un 'EN LECTANT LE CODE D'ESSAI, VOUS ACCEPTEZ DE GOUGER VOS YEUX' et vous êtes prêt à partir.
ptyx
la source
1

Le compilateur GCC (principalement sous licence GPLv3) possède une suite de tests assez étendue, qui est distribuée avec le code source. (peut-être que certains fichiers de test sont dans le domaine public, je ne connais vraiment pas leur statut juridique individuel).

Pourquoi voudriez-vous distribuer votre suite de tests séparément de votre produit?

Basile Starynkevitch
la source
0

Cela pourrait être un modèle commercial possible, alors publiez un programme sous forme de logiciel libre (GPL ou autre), mais les tests unitaires correspondants sous une licence commerciale. De cette façon, si quelqu'un veut publier une version améliorée de votre logiciel (par exemple intégré dans un appareil), il pourrait être motivé à acheter la licence de test unitaire pour un développement plus rapide et plus sûr.

user281377
la source
0

Si vos tests unitaires sont bien effectués, ils constituent un modèle de reproduction de votre logiciel. Si vous ne les accordez pas de licence équivalente au code, vous invitez quelqu'un à venir et à réimplémenter tout ce que vous avez fait. Si vous êtes d'accord avec cela, ne vous embêtez pas à leur octroyer des licences.

Signe
la source