È un imperativo progettuale.

I test devono essere veloci.

Quanto veloci?

Se prendiamo Microsoft come riferimento, la linea guida per i test L0 (quelli puramente in memoria, senza dipendenze esterne se non la libreria sotto test) è: non più di 60 millisecondi.
Lo dicono loro stessi in questa pagina: Shift left: Make testing fast & reliable

Sai cosa succede quando i test sono lenti?

Non li esegui.

È proprio così. Rimangono lì, in silenzio, a dirti:

“Siamo dei test. Siamo felici che tu ci abbia scritto. Ci eseguirai… un giorno?”

E tu rispondi:

“No, siete troppo lenti.”

Hai mai cancellato un test perché troppo lento?

Se è successo, in quel momento hai perso un’occasione di riflessione. E magari anche un’occasione di refactoring.

Perché quel test era lento?

  • Aveva troppe responsabilità?
  • Non era ben isolato?
  • Faceva uso del file system?
  • Aveva una chiamata di autenticazione o dipendeva da un database?

Ogni test lento è una finestra aperta su un design che può migliorare.

Azioni

Ecco alcune domande che puoi porti già oggi:

  • Quanto durano mediamente i test del tuo progetto?
  • Quali sono i test più lenti? Cosa li rende tali?
  • Hai test che potresti dividere o riscrivere per isolarli meglio?
  • Il tuo team ha un riferimento temporale chiaro per definire un “test veloce”?