Originariamente inviato da chumkiu
Il senso è infatti quello.
"Se non sai fare i test", o in modo meno assolutistico: "Se non li fai perfetti"... Allora il gioco vale la candela? Comunque creare un test ha bisogno di tempo e ci vuole anche un minimo di analisi del test stesso.
Il test non necessariamente deve essere perfetto, il test deve esaudire tutti gli scenari per i quali la funzione/classe/modulo è stata creata, deve mostrare che il comportamento del codice scritto sia quello che ci si aspetti all'interno del dominio di parametri richeisto.

E' vero, effettuare la fase di test richiede tempo; in genere il tempo è (o dovrebbe essere) decisamente superiore al tempo speso per scrivere il codice. Però il test una volta scritto è valido "sempre", quindi oltre a permetterti di scovare potenziali bug nel codice dovrebbe permetterti di avere un certo grado di confidenza che (se il test viene superato) la tua funzione/classe/modulo anche in seguito a modifiche (magari ottimizzazioni) mostra sempre lo stesso comportamento (quello corretto).

Ho specificato che il tizio dell'esempio era un esperto, quindi escludo il fatto che "non li sapesse fare". Era un programmatore Java anche in ambito universitario dove aveva studiato e applicato appunto gli unit test.
Essere universitario, o fare informatica, non significa di conseguenza essere un esperto o comunque un "bravo" programmatore. Io sono un laureato in informatica, non ti esprimo un parere su me stesso ma posso dirti che ho visto laurearsi persone che di informatica non sanno niente.
Inoltre saper programmare non significa saper scrivere dei test per la propria applicazione.

Il concetto è più pratico che teorico perché teoricamente un qualsiasi test in più, è sempre meglio di un test in meno. Non ci piove.

Domanda allora più "succulenta": Voi gli Unit test li usate? se si, sempre? spesso? o solo in pochi casi? e in quali casi?
Risposta breve: non sempre, dipende.
Per piccoli progetti personali non sono solito usare suite di test, preferisco debug in vecchio stile (trascendendo da php).
Invece, per lavoro la fase di test è un obbligo ma la scelta di utilizzare o meno determinati strumenti dipende molto dal tipo di progetto al quale si lavora e sopratutto dal se si lavora in team o meno (non si può pretendere che gli altri programmatori abbiano a che fare con i tuoi bug).

In ogni caso la scelta del tipo di test da utilizzare dipende da tanti fattori.