Se non hai test, come fai a sapere se il tuo codice funziona?
Modifica: l'affermazione secondo cui i test non possono dimostrare che il codice funziona non riesce a definire un termine cruciale, vale a dire funziona . Cosa significa che un programma funziona? Se mantieni questo termine vago, non c'è modo di provare o essere sicuro che qualsiasi programma funzioni. Mai.
D'altra parte, è possibile definire le opere come "si comporta secondo una specifica". Ora non puoi solo usare i test per mostrare che il codice funziona, ma i test stessi possono fungere da specifica eseguibile del comportamento del tuo codice. In altre parole, una suite di test ben scritta definisce cosa significa lavorare .
Questo modo di pensare ti costringe anche a riesaminare il significato di un bug . Se il tuo codice supera tutti i test, non ci sono bug nel codice. Se, nonostante ciò, il sistema non si comporta come dovrebbe, allora il suo comportamento non è specificato correttamente. I. e. il bug è nelle specifiche, definito dai test.
Questo approccio allo sviluppo del software separa le specifiche funzionali di un sistema dalla sua implementazione, che, secondo ogni libro di ingegneria del software nel mondo, è un'ottima cosa. Allo stesso tempo, questo approccio garantisce che l'implementazione corrisponda sempre alle specifiche funzionali.