Le procedure di testing e analisi non sono automatizzabili (indecidibile), quindi cosa possiamo fare? Possiamo agire in 3 dimensioni:

Software testing and analysis (T&A): è il processo che consiste in tutte le attività del ciclo di vita che hanno a che fare con pianificazione, preparazione e valutazione di prodotti software per determinare se i requisiti sono soddisfatti.

Software Testing

E' una tecnica dinamica: richiede l'esecuzione di codice o di artifatti.

E' caratterizzato dall'approssimazione ottimistica, che costituisce una potenziale inaccuratezza.

Dati di test VS casi di test

I dati di test sono degli ingressi. Sono facili da generare, quello che è meno facile è generare l'uscita corrispondente, dato che non può essere generata automaticamente (problema dell'oracolo).

Un caso di test è la coppia (ingresso, uscita) corrispondente.

Evoluzione delle definizioni di "testing"