Ha senso concedere in licenza i test unitari?

10

Mi chiedo se ci sono dei benefici / rischi di (non) mettere una licenza sul codice di prova che consiste principalmente di test unitari. Cosa ne pensi?

Sono particolarmente interessato alle licenze in (L) GPL, Apache, MIT e BSD.

EDIT : il presupposto è che il codice non test sia già pubblicato sotto qualche licenza, ma il codice di test non lo è, quindi la domanda è se pubblicarlo e in tal caso se mettere la stessa licenza su di esso.

    
posta leden 05.11.2011 - 06:15
fonte

8 risposte

9

Sono sorpreso che nessuno lo abbia già menzionato, ma se non si allega una licenza per il proprio codice, che si tratti di codice prodotto o test, allora altri non hanno diritti sul codice .

Il codice di licenza riguarda il conferimento di diritti ad altri che normalmente non avrebbero. Il tuo codice di prova è automaticamente coperto da copyright (nella maggior parte dei paesi in tutto il mondo) anche se non si specifica esplicitamente una nota di copyright. Essendo protetto da copyright, altre persone non possono usare, distribuire o derivare da quel codice.

Allegando una licenza al tuo codice di prova, dai alle persone il diritto di usare, distribuire e / o modificare quel codice in conformità con i termini della licenza.

Raccomando di distribuire il codice di prova con il codice del prodotto, sotto la stessa licenza. Questo è più semplice per tutti. Significa anche che se le persone vogliono inviarti delle patch, allora possono eseguire i test delle tue unità prima di inviarti una patch, il che dovrebbe aiutare a rimuovere le patch che rompono le cose.

    
risposta data 07.11.2011 - 14:24
fonte
15

Nel mondo commerciale, la maggior parte delle aziende carica non solo per il prodotto principale ma anche per il supporto. Il supporto più spesso comporta qualsiasi forma di aiuto tramite strumenti o assistenza personale, per poter rendere il prodotto utilizzabile o risolvere eventuali problemi relativi al prodotto.

Con questo token, il codice per testare il prodotto qualifica ugualmente uno strumento di supporto ed è una proprietà intellettuale a sé stante. Quindi merita una licenza di sua proprietà.

    
risposta data 05.11.2011 - 07:28
fonte
9

Perché separi il codice e il test?

Preferisco un pacchetto di codice e test. E questo pacchetto dovrebbe ottenere la stessa licenza.

Se qualcuno desidera ottenere due volte il denaro, allora è possibile creare due pacchetti, ognuno con una licenza. Per il software libero, non vedo alcun motivo per due pacchetti (a meno che non si tratti di un problema di dimensioni).

    
risposta data 05.11.2011 - 08:51
fonte
6

Il codice di prova ha un sacco di valore, dal momento che consente all'utente di verificare se la soluzione funziona in un dato ambiente. Nel mio lavoro (software incorporato) la suite di test fa parte del contratto. Dovresti pubblicarlo con la stessa licenza, perché l'utilizzo è simile:

  • se qualcuno usa il tuo codice, eseguirà i test

  • se qualcuno vuole modificare il codice, probabilmente dovrà modificare anche alcuni test

risposta data 05.11.2011 - 08:22
fonte
2

IANAL, tuttavia:

  1. Se stai concedendo in licenza il tuo codice sotto GPL, di fatto i tuoi test unitari sono anche GPL in quanto sono piuttosto inutili senza il codice principale
  2. Se utilizzi Apache / BSD, la disposizione "USA A PROPRIO RISCHIO". Schiavo un file di licenza con l'intero progetto e permetto all'utente di capire se è per il codice o il codice di test.
  3. Se usi una licenza commerciale e limiti l'accesso al codice, perché dovresti pubblicare i tuoi test in primo luogo? Se vuoi essere sicuro, metti un 'LEGGENDO IL CODICE DI PROVA, ACCETTATI DI ACCETTARE LA SUONERIA PER GLI OCCHI E sei a posto.
risposta data 05.11.2011 - 07:58
fonte
1

Il compilatore GCC (per lo più con licenza GPLv3) ha una suite di test piuttosto estesa, che viene distribuita con il codice sorgente. (forse alcuni file di test sono di pubblico dominio, non conosco davvero il loro status legale individuale).

Perché vorresti distribuire la tua suite di test separatamente dal tuo prodotto?

    
risposta data 06.12.2011 - 14:20
fonte
0

Potrebbe essere un possibile modello di business, quindi rilasciare un programma come software libero (GPL o qualsiasi altra cosa), ma i test di unità determinanti sotto una licenza commerciale. In questo modo, se qualcuno vuole pubblicare una versione migliorata del tuo software (ad esempio, incorporata in un dispositivo), potrebbe essere motivato ad acquistare la licenza di prova dell'unità per uno sviluppo più rapido e sicuro.

    
risposta data 06.12.2011 - 12:03
fonte
0

Se i test delle unità sono ben fatti, sono un modello per la riproduzione del software. Se non li concedi in licenza in modo equivalente al codice, stai invitando qualcuno a venire e re-implementare qualsiasi cosa tu abbia fatto. Se ti va bene allora non preoccuparti di licenziarli.

    
risposta data 06.12.2011 - 14:09
fonte

Leggi altre domande sui tag