Nello sviluppo del software, qual è la differenza tra test unitari e test di regressione?

Virtualmente tutti i test unitari sono test di regressione, ma non tutti i test di regressione sono test unitari.

I test unitari si riferiscono alla dimensione del sistema sotto test. I test unitari coprono le parti più piccole possibili del codice, come le singole funzioni e metodi. Al contrario, i test dei componenti, i test di integrazione e i test end-to-end coprono sistemi più grandi.

I test di regressione si riferiscono allo scopo del test. I test di regressione verificano se una parte del codice si comporta come è stata testata l'ultima volta. Se si suppone che il sistema sia funzionalmente equivalente, ma il risultato di un test di regressione è cambiato, significa che qualcosa non funziona come previsto.

Non tutti i test automatici sono test di regressione, anche se alcune persone definiscono i test automatici solo come test di regressione. Qualche altra forma di controllo di qualità include: test di qualità / test ad-hoc, dove una persona può controllare se l'output di un sistema è quello che ci si aspetta; o monitoraggio/allerta, dove un sistema emette certe metriche mentre è in funzione (per esempio: uso della memoria, uptime). Se queste metriche raggiungono una certa soglia, allora gli ingegneri indagheranno sul perché.