Partizionamento di equivalenza e BVA: meno test, stessa capacità di trovare bug
Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.
Suddividere lo spazio di input in classi e testare i bordi degli intervalli riduce il numero di casi senza perdere efficacia nella scoperta di errori comuni.
Sette numeri coprono un campo Età valido da 18 a 60 inclusi: 17, 18, 19, 30, 59, 60, 61. Tocchi tutte le partizioni, valide e invalide, più i bordi dove si concentrano i difetti. La suite si riduce, la capacità di scovare bug resta la stessa1.
Due tecniche rendono possibile questo taglio: Equivalence Partitioning e Boundary Value Analysis. Si parte dividendo lo spazio degli input in classi trattate allo stesso modo dal sistema. Un campo numerico, per esempio, separa numeri negativi, zero e positivi. Per ogni classe basta un rappresentante, che sta per l’intero gruppo. Poi si mettono sotto pressione i confini: su un intervallo con limiti noti si provano quattro valori, il minimo, il minimo più uno, il massimo meno uno, il massimo. La coppia EP più BVA compatta i test e presidia i punti dove gli errori si annidano più spesso, come gli off-by-one1.
L’esempio dell’Età mostra i passaggi. Il campo accetta 18-60 inclusi. Le partizioni includono range validi e input fuori soglia. EP seleziona un rappresentante per ciascuna classe. BVA aggiunge gli interni a ridosso dei limiti, 19 e 59. Il set finale, 17, 18, 19, 30, 59, 60, 61, copre tutto l’intervallo e i casi invaldi immediatamente adiacenti1.
Quando usarle. In fase di progettazione dei test, prima di eseguire codice. Servono a decidere che cosa testare, non come automatizzare l’esecuzione1.
Regole operative essenziali:
- Annota per ogni caso di test la classe che rappresenta. Il revisore vede subito la copertura e le lacune.
- Scegli il rappresentante di una classe su un confine quando la classe stessa è un intervallo.
- Considera sia partizioni valide sia invalide. I test negativi scoprono con frequenza validazioni mancanti.
- Evita di testare ogni valore della stessa classe. Uno ben scelto basta.
- Tratta i confini come casi prioritari, non come optional1.
Dove più input interagiscono, costruisci una tabella di decisione, poi applica EP e BVA a ogni colonna. La tabella elenca le combinazioni di condizioni, le colonne rappresentano gli input. Per ciascuna colonna, esegui tre passi: definisci le classi di equivalenza, seleziona un rappresentante per classe, aggiungi i quattro valori di confine per gli intervalli. Il risultato è una matrice di scenari compatta, che conserva la copertura dei casi rilevanti1.
Una regola pratica per chiudere il cerchio: se una colonna ha intervalli con limiti inclusivi, scegli come casi base i due estremi e i due adiacenti interni. Se la colonna ha valori discreti non ordinali, definisci partizioni per gruppi omogenei e prendi un solo rappresentante per gruppo. Infine, verifica che nella tabella esistano righe che usano almeno una volta ogni rappresentante e ogni valore di confine, così ogni classe e ogni bordo vengono esercitati in una combinazione significativa1.
Fonti
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici
Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:
- Rilettura. Un passaggio toglie i tic della prosa generata da un modello, come i contrasti costruiti e le frasi che annunciano invece di informare, senza toccare fatti e fonti.
- Fedeltà alle fonti. Un passaggio dedicato toglie ogni affermazione che le fonti non sostengono. Valutazione su questo pezzo: 10/10.
- Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale: superato.
- Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica. Questo articolo ha preso 8,5/10 dopo 1 revisione.
I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.
Per vedere Millebit nelle notizie principali di Google, aggiungilo alle tue fonti preferite. Oppure segui l’edizione di oggi, il feed RSS o La Sintesi.