Dovresti testare le funzionalità di sviluppo?

1

È una buona pratica testare funzionalità che funzionano solo in un ambiente di sviluppo, o solo una perdita di tempo?

Specifiche: l'elemento che richiede questa domanda è una riga di codice che ricompila dinamicamente i fogli di stile. Per la produzione li compila una volta, quindi li inserisce in ./build/ . Per quanto riguarda la ricerca, ho fatto qualche ricerca su google, ma non ho trovato nulla. Sono nuovo per i test, quindi potrei semplicemente non sembrare giusto.

    
posta Ari Porad 11.01.2015 - 18:24
fonte

2 risposte

1

Ho aggiunto una risposta breve dicendo che la risposta è la stessa della domanda "ti interessa se la funzione contiene bug". A un moderatore non è piaciuta la risposta e l'ho cancellata, quindi elaborerò.

Ogni volta che scrivi codice c'è la possibilità che abbia dei bug. Per aiutare eventualmente a scoprire questi bug, dovresti testare il codice. Ora, in alcuni casi non importa se il codice ha bug o no. Ad esempio, il codice interno come quello nella domanda spesso presenta un rischio molto basso - basso rischio di errori perché è un codice semplice e perché il costo per correggere i bug è basso. Altri software, come quelli per le apparecchiature mediche, hanno un rischio molto elevato e i bug possono essere costosi.

Per decidere se testare il software - qualsiasi software - è necessario chiedersi se è importante che il codice abbia dei bug. Un bug può causare danni irreparabili o danni costosi da risolvere? Un bug è semplicemente un piccolo inconveniente? Dove si trova il tuo software su quel continuum? Risposta che è molto importante per rispondere se devi testare il tuo codice.

Naturalmente, i test non garantiranno che il software sia privo di errori, ma anche test semplici possono aumentare il tuo livello di sicurezza abbastanza per sapere se puoi dipendere dal codice.

Quindi, nel tuo caso specifico, qual è il costo della ricompilazione dinamica in mancanza? Causerà gli sviluppatori a introdurre potenziali bug perché stanno eseguendo il vecchio codice? Oppure, è solo un piccolo inconveniente perché possono sempre eseguire un passaggio manuale?

    
risposta data 12.01.2015 - 02:51
fonte
2

Direi che ciò dipende da ciò che chiami "funzione di sviluppo".

  • Test unitari o altri test automatici potrebbero essere chiamati "funzioni di sviluppo". Provarli separatamente non ha senso. Infatti li "provi" ogni volta che li esegui.
  • "Strumenti di debug" - forse, se sono importanti per la tua squadra e pensi che qualcuno possa accidentalmente romperli.
  • funzioni che al momento sono attive solo nel tuo ambiente di sviluppo, ma potrebbero diventare funzionalità di produzione in futuro, probabilmente sì.
  • strumenti di generazione del codice: questo dipende da cosa succede con il codice generato. Se esiste un controllo di sintassi per il codice generato (ad esempio da un compilatore) e un controllo semantico, ad esempio mediante test di unità per il codice generato, allora può essere abbastanza sicuro non testare il generatore separatamente . Si potrebbe argomentare che i test unitari per il codice generato sono anche per il test del generatore di codice. Ma in effetti, se un test separato ha senso dipende dalla complessità del generatore, quanto spesso il generatore è soggetto a modifiche e quanto è difficile trovare la causa principale di potenziali bug senza test separati. Anche questa precedente domanda SO ha affrontato la questione di come unit test un generatore di codice.
risposta data 11.01.2015 - 19:02
fonte

Leggi altre domande sui tag