Vi siete mai chiesti, dopo aver sviluppato l'applicazione multi-user (es. web, smart client, ecc.), quanti utenti può reggere la vostra soluzione ? Se un cliente ha 100 utenti quanti server e che tipo di server gli proponete ? E se questi diventano 200 dopo un'anno di attività ? C'è chi usa la logica del pollicione (che però funziona solo per sapere da che parte arriva il vento) e chi invece fa acquistare i server della Nasa...tanto per stare tranquilli.

In realtà esiste la possibilità di fare dei test di perfomance. I test di performance sono generalmente di tre tipi (molti ancora li confondono come un tutt'uno):

Load testing : verifica il comportamento dell'applicazione in condizioni di carico (utenti) normali e di picco. Solitamente definiamo nello SLA (Service Level Agreement) sia le condizioni normali che di picco di utilizzo dell'applicazione in termini di responsività, utilizzo delle risorse, ecc. ecc.. Questo test serve a verificare se con quella combinazione di software e hardware soddisfiamo i requisiti forniti e richiesti dal cliente.

Stress testing : verifica come si comporta l'applicazione in condizioni di carico elevatissimo. Ci serve sostanzialmente per trovare il punto di rottura oltre il quale l'applicazione incomincia a produrre errori di vario genere.

Capacity testing : verifica il livello di scalabilità dell'applicazione. Risponde alla domanda: che cose debbo fare se il numero di utenti raddoppia ? 

Nei prossimi mesi parlerò un pò di questo tipo di testing illustrando come approcciare il problema con i progetti di testing disponibili in Visual Studio Team System 2005.