Ist es sinnvoll, Unit-Tests zu lizenzieren?


12

Ich frage mich, ob es irgendwelche Vorteile / Risiken gibt, wenn man einen Testcode, der hauptsächlich aus Unit-Tests besteht, (nicht) lizenziert. Was denkst du?

Ich interessiere mich besonders für die Lizenzierung unter (L) GPL, Apache, MIT und BSD.

BEARBEITEN : Die Annahme ist, dass Nicht-Test-Code bereits unter einer Lizenz veröffentlicht ist, Test-Code jedoch nicht. Die Frage ist also, ob er veröffentlicht werden soll und wenn ja, ob dieselbe Lizenz darauf installiert werden soll.


Würden Tests nicht als Fakten / Daten betrachtet, die in keiner Weise dem Urheberrecht oder der Lizenz unterliegen? Es ist legal, eine API zu kopieren , und ich denke, es ist auch legal, dieselben Tests zu verwenden, um zu überprüfen, ob die Implementierung korrekt ist?
Endolith

Antworten:


10

Ich bin überrascht, dass niemand dies bereits erwähnt hat, aber wenn Sie Ihrem Code keine Lizenz hinzufügen, sei es Produkt- oder Testcode, haben andere keine Rechte an dem Code .

Beim Lizenzcode geht es darum, anderen Rechte zu erteilen, die sie normalerweise nicht haben würden. Ihr Testcode ist automatisch urheberrechtlich geschützt (in den meisten Ländern der Welt), auch wenn Sie keinen expliziten Copyright-Hinweis anbringen. Da andere Personen urheberrechtlich geschützt sind, können sie diesen Code nicht verwenden, verbreiten oder daraus ableiten.

Durch das Anhängen einer Lizenz an Ihren Testcode erteilen Sie den Personen das Recht, diesen Code gemäß den Lizenzbestimmungen zu verwenden, zu verbreiten und / oder zu ändern.

Ich würde empfehlen, dass Sie Ihren Testcode mit Ihrem Produktcode unter derselben Lizenz vertreiben. Dies ist für alle am einfachsten. Das bedeutet auch, dass Benutzer, die Patches an Sie senden möchten, Ihre Komponententests ausführen können, bevor sie Ihnen einen Patch senden. Dies soll helfen, Patches auszusortieren, die Probleme verursachen.


15

In der Geschäftswelt berechnen die meisten Unternehmen nicht nur für das Kernprodukt, sondern auch für den Support. In den meisten Fällen umfasst der Support jede Form von Hilfe durch Tools oder persönliche Unterstützung, um das Produkt nutzbar zu machen oder Probleme im Zusammenhang mit dem Produkt zu lösen.

Demzufolge ist Code zum Testen des Produkts gleichermaßen ein Support-Tool und ein eigenständiges geistiges Eigentum. Es verdient also eine eigene Lizenz.


9

Warum trennen Sie Code und Test?

Ich bevorzuge ein Bündel von Code und Test. Und dieses Bundle sollte die gleiche Lizenz bekommen.

Wenn jemand zweimal Geld haben möchte, können Sie zwei Pakete erstellen - jedes mit einer Lizenz. Für freie Software sehe ich keinen Grund für zwei Pakete (es sei denn, es handelt sich um ein Größenproblem).


6

Der Testcode ist sehr wertvoll, da der Benutzer überprüfen kann, ob Ihre Lösung in einer bestimmten Umgebung funktioniert. In meinem Job (Embedded Software) ist die Testsuite Bestandteil des Vertrages. Sie sollten es mit derselben Lizenz veröffentlichen, da die Verwendung ähnlich ist:

  • Wenn jemand nur Ihren Code verwendet, führt er die Tests durch

  • Wenn jemand den Code ändern möchte, muss er wahrscheinlich auch einige Tests ändern


2

IANAL jedoch:

  1. Wenn Sie Ihren Code unter GPL lizenzieren, sind Ihre Unit-Tests de facto auch GPL, da sie ohne den Hauptcode ziemlich nutzlos sind
  2. Wenn Sie Apache / BSD verwenden, lesen Sie die Bestimmung "NUTZUNG AUF EIGENES RISIKO". Ich würde eine Lizenzdatei mit dem gesamten Projekt bearbeiten und den Benutzer herausfinden lassen, ob es sich um den Code oder den Testcode handelt.
  3. Wenn Sie eine kommerzielle Lizenz verwenden und den Zugriff auf den Code beschränken, warum sollten Sie Ihre Tests überhaupt veröffentlichen? Wenn Sie sicher sein möchten, geben Sie ein 'DURCH LESEN DES TESTCODES' EIN, DASS SIE DER ERTEILUNG IHRER AUGEN-Lizenz ZUSTIMMEN, und Sie können loslegen.

1

Der GCC- Compiler (meist GPLv3-lizenziert) verfügt über eine recht umfangreiche Testsuite, die mit dem Quellcode ausgeliefert wird. (Vielleicht sind einige Testdateien gemeinfrei, ich kenne ihren individuellen rechtlichen Status wirklich nicht).

Warum sollten Sie Ihre Testsuite getrennt von Ihrem Produkt vertreiben?


0

Es könnte ein mögliches Geschäftsmodell sein, also veröffentlichen Sie ein Programm als freie Software (GPL oder was auch immer), aber die entsprechenden Unit-Tests unter einer kommerziellen Lizenz. Auf diese Weise kann jemand, der eine verbesserte Version Ihrer Software veröffentlichen möchte (z. B. in ein Gerät eingebettet), motiviert sein, die Unit-Test-Lizenz für eine schnellere und sicherere Entwicklung zu erwerben.


0

Wenn Ihre Komponententests gut durchgeführt wurden, sind sie eine Blaupause für die Reproduktion Ihrer Software. Wenn Sie sie nicht entsprechend dem Code lizenzieren, laden Sie jemanden ein, einfach vorbeizukommen und alles, was Sie getan haben, erneut zu implementieren. Wenn Sie damit einverstanden sind, müssen Sie sie nicht lizenzieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.