mercoledì 8 aprile 2015

Il principio di VERITA - Parte III

Nel post precedente ho esaminato il problema dell'Eseguibilità, cioè del non avere condizioni a latere che impediscano l'esecuzione del test ogni volta che viene eseguito.

Ripetibilità

Il terzo elemento è quello della Ripetibilità. In altre parole un test deve potere essere ripetuto un numero indefinito di volte senza che le precedenti esecuzioni possano in alcun modo condizionare l'esecuzione in corso.
Un test Ripetibile produce gli identici risultati ogni volta che viene eseguito. Deve essere quindi isolato rispetto ad ogni contesto che non sia sotto il controllo del programmatore.
Nessun progrmamma, in realtà, opera in isolamento, altrienti sarebbe probabilmente inutile. Ogni programma interagisce con altri sistemi che possono essere database, file, esseri umani, altri programmi.
Per ottenere l'isolamento occorre applicare diversi accorgimenti:
  • se si opera su database, il database va riportato ad uno stato iniziale sempre identico ogni volta che inizia il test. Non sempre è completamente possibile, ma è necessario fare tutto il possibile per evitare che precedenti operazioni CRUD possano inficiare il risultato del test;
  • i sistemi con cui il programma interagisce e che non possono essere condotti ad uno stato iniziale predefinito devono essere "mockati", cioè simulati da oggetti mock che si comportino sempre in modo uguale ogni volta che vengono richiamati;
  • evitare test che possano generare degli "attenti al lupo", cioè falsi positivi (errori che in realtà errori non sono) per colpa di una sottovalutazione delle conseguenze di un cambiamento dell'environment di cui non si è tenuto conto nella progettazione del test;

Nessun commento: