Ecco un grafico delle mie esperienze con e senza test unitario. Quanti dei problemi sulla colonna di destra si applicano al tuo progetto?
With Unit Tests Without Unit Tests
----------------- ----------------------------- -----------------------------
Development Code/Test/Refactor Cut and Paste/Hack
Process or Test/Code/Refactor to minimize code change
and avoid complete retest
Module Coupling Limited by continuous Tangled due to need to
refactoring add features with minimal
code change
Program Design Evolving through Refactoring Frozen due to risk of change
Velocity Increasing as higher-level Decreasing as code volume and
over Time functions are factored out coupling increase
Bugs detected Mostly by developer Mostly by QA or Customer
Cost of bugs Lower Higher
Dovresti essere in grado di puntare a casi specifici in cui il volume del codice è stato aumentato inutilmente o l'accoppiamento del modulo è stato aumentato per ridurre al minimo la necessità di ripetere il test. Tuttavia, se non credono di avere un problema e non sono interessati al miglioramento, potrebbe esserci poco da fare. Anche quando la manutenzione continua diventa antieconomica, possono credere che sia semplicemente la fine normale di tutti i progetti software.
Ho avuto successo nel migliorare i test solo quando i dirigenti sapevano che avrebbero dovuto sottoporsi a test, ma non erano sicuri di come farlo economicamente. Quando un'organizzazione non è interessata al miglioramento dei processi, è necessaria una grande pazienza per effettuare il cambiamento. Quanto sei paziente?