Чи має сенс ліцензувати одиничні тести?


12

Мені цікаво, чи є якісь переваги / ризики (не) введення ліцензії на код тесту, який здебільшого складається з одиничних тестів. Що ти думаєш?

Мене особливо цікавлять ліцензування в рамках (L) GPL, Apache, MIT та BSD.

EDIT : Припущення полягає в тому, що нетестовий код уже опублікований під якоюсь ліцензією, але тестовий код - ні, тому питання полягає в тому, чи варто публікувати його, і якщо так, чи ставити на нього ту саму ліцензію.


Чи не вважатимуться тести фактами / даними, які в першу чергу не підпадають під авторське право чи ліцензування? Це законно скопіювати API , і я припускаю , що це також допустимо використовувати одні і ті ж тести , щоб переконатися в тому , що реалізація є правильною?
ендоліт

Відповіді:


10

Я здивований, що ніхто про це вже не згадував, але якщо ви не додаєте ліцензію до свого коду, будь то товар або тестовий код, то інші не мають прав на код .

Ліцензійний код - це надання прав іншим, які вони зазвичай не мали б. Ваш тестовий код автоматично охоплюється авторським правом (у більшості країн світу), навіть якщо ви чітко не додаєте повідомлення про авторські права. Інші люди, не захищені авторським правом, не можуть використовувати, поширювати чи отримувати цей код.

Приєднавши ліцензію до свого тестового коду, ви даєте людям право використовувати, поширювати та / або змінювати цей код відповідно до ліцензійних умов.

Я рекомендую вам поширити свій тестовий код разом із кодом товару під тією ж ліцензією. Це найпростіше для всіх. Це також означає, що якщо люди хочуть надіслати вам патчі, вони можуть запустити ваші тестові одиниці, перш ніж надіслати вам патч, що повинно допомогти вилучення патчів, які порушують речі.


15

У комерційному світі більшість компаній платять не тільки за основний продукт, але і за підтримку. Найчастіше підтримка передбачає будь-яку форму допомоги за допомогою інструменту чи особистої допомоги, щоб зробити продукт корисним або вирішити будь-які проблеми, пов'язані з продуктом.

Таким чином, код для тестування продукту однаково кваліфікується інструментом підтримки та сам по собі є інтелектуальною власністю. Тож воно заслуговує на власну ліцензію.


9

Чому ви розділяєте код і тестуєте?

Я віддаю перевагу пачці коду та тесту. І цей пакет повинен отримати ту саму ліцензію.

Якщо хтось хотів би отримати двічі грошей, то ви можете зробити два пакети - кожен з ліцензією. Що стосується вільного програмного забезпечення, я не бачу причин для двох пакетів (якщо це не проблема розміру).


6

Тестовий код має велике значення, оскільки він дозволяє користувачеві перевірити, чи працює ваше рішення в заданому середовищі. У моїй роботі (вбудоване програмне забезпечення) тестовий набір є частиною контракту. Ви повинні опублікувати його з тією ж ліцензією, оскільки використання подібне:

  • якщо хтось просто використовує ваш код, він запустить тести

  • якщо хтось хоче змінити код, він, ймовірно, повинен буде також змінити деякі тести


2

IANAL, однак:

  1. Якщо ви ліцензуєте свій код за допомогою GPL, то фактично ваші тестові одиниці також є GPL, оскільки вони є безкорисними без основного коду
  2. Якщо ви використовуєте Apache / BSD, положення "ВИКОРИСТОВУВАТИ ВЛАСНИЙ РИЗИК". Я блякнув файл ліцензії з усім проектом і дав змогу користувачеві розібратися, чи це код чи тестовий код.
  3. Якщо ви використовуєте комерційну ліцензію і обмежуєте доступ до коду, чому б ви в першу чергу публікували свої тести? Якщо ви хочете бути впевненими, поставте "ЧИТАННЯ ТЕСТОВОГО КОДУ, ВИ ЗГОДЖИТИ, щоб визначити ліцензію своїх очей, і ви готові йти.

1

GCC компілятор ( в основному GPLv3 ліцензійний) має досить великий набір тестів, який поширюється разом з вихідним кодом. (можливо, деякі тестові файли є загальнодоступними, я дійсно не знаю їх індивідуального юридичного статусу).

Чому ви хочете поширити свій тестовий набір окремо від вашого продукту?


0

Можливо, це є можливою бізнес-моделлю, тому випустіть програму як безкоштовне програмне забезпечення (GPL або будь-яке інше), але тестованість підрозділу під комерційною ліцензією. Таким чином, якщо хтось хоче випустити вдосконалену версію вашого програмного забезпечення (наприклад, вбудований у пристрій), він може бути вмотивований придбати ліцензію для тестування пристрою для швидшого та безпечнішого розвитку.


0

Якщо ваші тестові апарати добре виконані, вони є основою для відтворення вашого програмного забезпечення. Якщо ви не ліцензуєте їх еквівалентно коду, ви запрошуєте когось просто прийти разом і реалізувати все, що ви зробили. Якщо ви з цим добре, тоді не переймайтеся ліцензуванням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.