Glossario · Progettazione dei test
Pairwise testing
Detto anche: all-pairs testing, test a coppie, test pairwise, pairwise
Definizione
Tecnica combinatoria che sceglie un piccolo insieme di test case in cui ogni coppia di valori dei parametri compare insieme almeno una volta.
Il pairwise testing (all-pairs testing, test a coppie) riduce il numero di combinazioni necessarie quando una funzionalità ha diversi parametri. Invece di testare ogni combinazione possibile, sceglie un insieme di test in cui ogni valore di ciascun parametro viene abbinato almeno una volta a ogni valore di ogni altro parametro. L’idea si basa su un’osservazione pratica: la maggior parte dei difetti legati alla configurazione è causata da un singolo parametro o dall’interazione tra due, mentre molti meno richiedono tre o più valori specifici contemporaneamente.
Esempio
Un’app web deve funzionare con queste opzioni:
- Browser: Chrome, Firefox, Safari
- Sistema operativo: Windows, macOS, Linux
- Lingua: inglese, tedesco, giapponese
Tutte le combinazioni sono 3 x 3 x 3 = 27 test. Un insieme pairwise ne richiede solo 9:
| # | Browser | Sistema operativo | Lingua |
|---|---|---|---|
| 1 | Chrome | Windows | Inglese |
| 2 | Chrome | macOS | Tedesco |
| 3 | Chrome | Linux | Giapponese |
| 4 | Firefox | Windows | Tedesco |
| 5 | Firefox | macOS | Giapponese |
| 6 | Firefox | Linux | Inglese |
| 7 | Safari | Windows | Giapponese |
| 8 | Safari | macOS | Inglese |
| 9 | Safari | Linux | Tedesco |
Prendi due colonne qualsiasi: ogni coppia compare. Chrome con Linux è la riga 3, macOS con giapponese è la riga 5, Safari con tedesco è la riga 9. Con più parametri il risparmio cresce rapidamente. Dieci parametri con tre valori ciascuno danno 59.049 combinazioni, mentre un insieme pairwise può coprire tutte le coppie con circa 15-20 test, a seconda del generatore.
Vincoli
I sistemi reali hanno combinazioni impossibili. Safari non è disponibile su Linux, quindi la riga 9 va sostituita; i buoni generatori ti permettono di dichiarare vincoli di questo tipo e poi ricostruiscono l’insieme in modo che ogni coppia valida resti coperta. Tra gli strumenti che generano insiemi pairwise ci sono PICT di Microsoft e la famiglia di script AllPairs.
Quando non affidarsi al pairwise
- Combinazioni notoriamente rischiose. Se conta una specifica combinazione di tre valori (metodo di pagamento, valuta e paese), aggiungila esplicitamente.
- Regole che dipendono da più input insieme. Usa una tabella decisionale per catturare la logica di business; il pairwise serve a coprire configurazioni e opzioni indipendenti.
- Singoli parametri critici. Il pairwise non sostituisce la partizione in classi di equivalenza e l’analisi dei valori limite sui valori di ciascun parametro.
Le varianti di ordine superiore (3-wise, o t-wise in generale) coprono ogni tripla o tupla più grande, al costo di un numero maggiore di test.