Cos'è il test di array ortogonali? (Esempio)
⚡ Riepilogo intelligente
Il test con array ortogonali è una tecnica a scatola nera che utilizza array statistici per costruire un set di test compatto, coprendo ogni coppia di valori di input con un numero di casi di test di gran lunga inferiore rispetto a quanto richiesto dal test esaustivo delle combinazioni.

Test di array ortogonali
Test di array ortogonali (OAT) Il test con array ortogonali è una tecnica di test del software che utilizza array ortogonali per creare casi di test. Si tratta di un approccio di test statistico, particolarmente utile quando il sistema da testare accetta un gran numero di input di dati. Il test con array ortogonali massimizza la copertura dei test accoppiando e combinando gli input, in modo che il sistema venga testato con un numero relativamente inferiore di casi di test e tempi di esecuzione ridotti.
Ad esempio, quando si deve verificare un biglietto del treno, è necessario controllare fattori come il numero di passeggeri, il numero del biglietto, il numero del posto e il numero del treno. Testare ogni fattore singolarmente è un'operazione complessa. È più efficiente che l'ingegnere QA combini diversi input e li testi in un'unica sessione. In questi casi, è possibile utilizzare il metodo di test con array ortogonali.
Questo tipo di accoppiamento o combinazione di input per risparmiare tempo è chiamato test a coppie e la tecnica OATS è un modo per produrre un set di test a coppie. Poiché la tecnica funziona esclusivamente a partire dai valori di input e dai risultati attesi, senza alcuna visione del codice interno, appartiene alla test della scatola nera famiglia.
Perché OAT (Orthogonal Array Testing)?
Nello scenario attuale, fornire al cliente un prodotto software di qualità è diventato una sfida a causa della complessità del codice.
Nel metodo convenzionale, le suite di test includono casi di test derivati da ogni combinazione di valori di input e precondizioni. Di conseguenza, è necessario coprire un numero n di casi di test.
Ma in uno scenario reale, i tester non avranno il tempo di eseguire tutti i casi di test per individuare i difetti, poiché ci sono altre attività, come la documentazione, i suggerimenti e il feedback del cliente, che devono essere integrate nella fase di test.
Pertanto, i responsabili dei test hanno voluto ottimizzare il numero e la qualità dei casi di test per garantire il massimo Copertura di prova con il minimo sforzo. Questo sforzo è chiamato ottimizzazione dei casi di test.
- Metodo sistematico e statistico per testare le interazioni a coppie.
- I punti di interazione e integrazione rappresentano una delle principali fonti di difetti.
- Eseguire una serie di casi di test ben definiti e concisi che abbiano una buona probabilità di individuare la maggior parte (ma non tutti) dei bug.
- L'approccio ortogonale garantisce la copertura a coppie di tutte le variabili.
Questa tecnica si affianca quindi agli altri metodi di riduzione degli input già utilizzati dal team. Partizionamento di equivalenza e analisi dei valori limite Gli array ortogonali decidono quali valori vale la pena testare per un singolo campo; gli array ortogonali decidono quali di questi valori devono essere testati insieme.
Come viene rappresentato il test degli array ortogonali
Una matrice ortogonale viene descritta da una formula concisa piuttosto che dal suo contenuto. Il diagramma seguente mostra come le tre grandezze presenti in tale formula siano correlate alla forma della matrice.
- Corse (N) – Numero di righe nell'array, che corrisponde al numero di casi di test che verranno generati.
- Fattori (K) – Numero di colonne nell'array, che si traduce nel numero massimo di variabili che possono essere gestite.
- Livelli (V) – Numero massimo di valori che possono essere assunti per un singolo fattore.
Un singolo fattore ha in genere da 2 a 3 input da testare. Il numero massimo di input determina i livelli.
Leggi il nome dell'array da sinistra a destra. In L9(34) il 9 è il conteggio delle corse, il 3 è il numero di livelli che ogni fattore può assumere e l'apice 4 è il numero di fattori. Lo stesso articolo usa L4(23), che consiste in quattro prove per tre fattori, ciascuno con due livelli.
Due proprietà rendono un array ortogonale, ed entrambe devono essere soddisfatte affinché il conteggio delle sequenze possa essere considerato affidabile:
- Equilibrio: Ciascun livello di un fattore compare lo stesso numero di volte nella propria colonna.
- Completezza a coppie: Per due colonne qualsiasi, ogni combinazione di un livello da ciascuna colonna appare lo stesso numero di volte.
Se la seconda proprietà non è soddisfatta, la tabella è semplicemente un set di test abbreviato, non una matrice ortogonale, e la garanzia a coppie che giustifica la riduzione non è più valida.
Come eseguire test su array ortogonali: esempi
- Identificare la variabile indipendente per lo scenario.
- Trova l'array più piccolo con il numero di esecuzioni.
- Mappare i fattori sull'array.
- Scegli i valori per eventuali livelli “rimanenti”.
- Trascrivi le corse in casi testaggiungendo eventuali combinazioni particolarmente sospette che non vengono generate.
I due esempi svolti riportati di seguito applicano questi cinque passaggi, prima a un piccolo problema a due livelli e poi a uno più grande a tre livelli.
esempio 1
Una pagina web è composta da tre sezioni distinte (superiore, centrale e inferiore) che possono essere mostrate o nascoste singolarmente all'utente.
- N. di fattori = 3 (in alto, al centro, in basso)
- N. di livelli (visibilità) = 2 (nascosto o mostrato)
- Tipo di array = L4(23)
(4 è il numero di esecuzioni raggiunte dopo la creazione dell'array OAT)
Se optiamo per la tecnica convenzionale di modificare una sezione alla volta, abbiamo bisogno di casi di test come 2 x 3 = 6 casi di test.
| Test di Casi | Scenari | Valori da testare |
|---|---|---|
| Prova #1 | HIDDEN | Top |
| Prova #2 | MOSTRATO | Top |
| Prova #3 | HIDDEN | Slip |
| Prova #4 | MOSTRATO | Slip |
| Prova #5 | HIDDEN | In mezzo |
| Prova #6 | MOSTRATO | In mezzo |
Quelle sei corse variano una sezione alla volta e non mettono mai due sezioni nello stato scelto contemporaneamente. Testare ogni combinazione invece richiederebbe 23 = 8 corse.
Se optiamo per il test OAT abbiamo bisogno di 4 casi di test come mostrato di seguito:
| Test di Casi | TOP | In mezzo | Slip |
|---|---|---|---|
| Prova #1 | nascosto | nascosto | nascosto |
| Prova #2 | nascosto | Visibile | Visibile |
| Prova #3 | Visibile | nascosto | Visibile |
| Prova #4 | Visibile | Visibile | nascosto |
Controllando due colonne qualsiasi di quella tabella, tutte e quattro le coppie Nascosto/Visibile compaiono esattamente una volta, il che rappresenta la proprietà di ortogonalità nella sua forma più semplice.
esempio 2
La funzionalità di un microprocessore deve essere testata:
- Temperatura: 100°C, 150°C e 200°C.
- Pressione: 2 psi, 5 psi e 8 psi
- Doping Importo: 4%, 6% e 8%
- Velocità di deposizione: 0.1 mg/s, 0.2 mg/s e 0.3 mg/s
Utilizzando il metodo convenzionale abbiamo bisogno di 34 = 81 casi di test per coprire tutti gli input. Lavoriamo invece con il metodo OATS:
Numero di fattori = 4 (temperatura, pressione, doping importo e tasso di deposito)
Livelli = 3 livelli per fattore (la temperatura ha 3 livelli – 100°C, 150°C e 200°C – e analogamente anche gli altri fattori hanno 3 livelli ciascuno)
Crea un array come di seguito:
1. Colonne con il N. di fattori
| Caso di prova n. | La temperatura | Pressione | Doping quantità | Tasso di deposito |
|---|
2. Inserire un numero di righe pari al numero di livelli per fattore. Ad esempio, la temperatura ha 3 livelli. Quindi, inserire 3 righe per ogni livello di temperatura,
| Caso di prova n. | La temperatura | Pressione | Doping quantità | Tasso di deposito |
|---|---|---|---|---|
| 1 | 100C | |||
| 2 | 100C | |||
| 3 | 100C | |||
| 4 | 150C | |||
| 5 | 150C | |||
| 6 | 150C | |||
| 7 | 200C | |||
| 8 | 200C | |||
| 9 | 200C |
3. Ora dividi la pressione, faiping importo e tassi di deposizione nelle colonne.
Ad esempio: inserire 2 psi per temperature di 100°C, 150°C e 200°C, allo stesso modo inserire doping importo del 4% per 100°C, 150°C e 200°C e così via.
| Caso di prova n. | La temperatura | Pressione | Doping quantità | Tasso di deposito |
|---|---|---|---|---|
| 1 | 100C | 2 psi | 4% | 0.1 mg/s |
| 2 | 100C | 5 psi | 6% | 0.2 mg/s |
| 3 | 100C | 8 psi | 8% | 0.3 mg/s |
| 4 | 150C | 2 psi | 4% | 0.1 mg/s |
| 5 | 150C | 5 psi | 6% | 0.2 mg/s |
| 6 | 150C | 8 psi | 8% | 0.3 mg/s |
| 7 | 200C | 2 psi | 4% | 0.1 mg/s |
| 8 | 200C | 5 psi | 6% | 0.2 mg/s |
| 9 | 200C | 8 psi | 8% | 0.3 mg/s |
Quindi, negli OA, abbiamo bisogno di 9 casi test da coprire.
Nota di accuratezza: riempiendo le restanti tre colonne direttamente verso il basso, come fa il passaggio 3, ripete la stessa pressione, faiping e la deposizione tripla all'interno di ogni blocco di temperatura. Pressione e fareping La quantità si muove quindi insieme e coppie come 2 psi con il 6% non compaiono mai, quindi le nove righe sopra sono un set di test ridotto piuttosto che una vera matrice ortogonale. L'L9 bilanciato(34L'array sottostante mantiene le stesse nove sequenze coprendo tutte e nove le coppie di livelli tra ogni due fattori.
| Caso di prova n. | La temperatura | Pressione | Doping quantità | Tasso di deposito |
|---|---|---|---|---|
| 1 | 100C | 2 psi | 4% | 0.1 mg/s |
| 2 | 100C | 5 psi | 6% | 0.2 mg/s |
| 3 | 100C | 8 psi | 8% | 0.3 mg/s |
| 4 | 150C | 2 psi | 6% | 0.3 mg/s |
| 5 | 150C | 5 psi | 8% | 0.1 mg/s |
| 6 | 150C | 8 psi | 4% | 0.2 mg/s |
| 7 | 200C | 2 psi | 8% | 0.2 mg/s |
| 8 | 200C | 5 psi | 4% | 0.3 mg/s |
| 9 | 200C | 8 psi | 6% | 0.1 mg/s |
Test con array ortogonali vs test a coppie (tutte le coppie)
In molti team i due termini vengono usati in modo intercambiabile, eppure non sono identici. Entrambi mirano a coprire coppie di valori, ma differiscono per il grado di rigore con cui viene vincolata la tabella risultante.
| Aspetto | Test di array ortogonali | Test a coppie (tutte le coppie) |
|---|---|---|
| Struttura sottostante | Matrice ortogonale, mutuata dalla progettazione degli esperimenti | Array di copertura, generato da un algoritmo di ricerca |
| Regola di copertura | Ogni coppia appare un numero uguale di volte | Ogni coppia appare almeno una volta |
| Fattori con livelli disuguali | Richiede un array a livelli misti, che potrebbe non esistere per la forma richiesta | Gestito direttamente dal generatore |
| Conteggio tipico delle corse | Uguale o leggermente superiore, a causa del requisito di equilibrio | Uguale o inferiore per gli stessi input |
| Vincoli tra i valori | Difficile da esprimere all'interno dell'array | Supportato dalla maggior parte dei generatori moderni |
In pratica, una matrice ortogonale bilanciata è il modello didattico più chiaro e la scelta più sicura quando i fattori condividono lo stesso conteggio di livello, mentre una matrice di copertura è ciò che la maggior parte degli strumenti produce per progetti reali con input goffi e disuguali. Entrambi sono complementari a test della tabella decisionale and test di transizione di statoche si concentrano su regole e sequenze aziendali piuttosto che su combinazioni di valori.
Strumenti di test per array ortogonali
Costruire un array manualmente è pratico solo per i piccoli esempi sopra riportati. Oltre quattro o cinque fattori, i team utilizzano un generatore, e lo strumento decide per loro il conteggio delle run.
- FOTO: un generatore di riga di comando open-source da MicrosoftI parametri e i relativi valori sono scritti in un file modello di testo semplice e lo strumento stampa l'insieme delle combinazioni. Sono supportati vincoli e sottomodelli, il che è importante quando determinate coppie di valori non sono valide. Vedi il Archivio PICT.
- ATTI: uno strumento di ricerca del NIST che genera array di copertura per una copertura da due a sei vie e pubblica anche una libreria di array pre-calcolati. È disponibile da Progetto di test combinatorio del NIST.
- Piattaforme combinatorie commerciali: Gli strumenti ospitati aggiungono requisiti tracFacilità, risultati attesi ed esportazione in un sistema di gestione dei test, adatto a team più numerosi che necessitano di una traccia di controllo.
- Librerie di array pubblicate: Gli array standard come L4, L8, L9, L16 e L18 sono tabulati e possono essere copiati direttamente quando il numero di fattori e livelli corrisponde.
Qualunque strumento produca la tabella, le righe generate devono comunque essere trasformate in casi eseguibili con dati reali e risultati attesi, e quindi pianificate come qualsiasi altra suite all'interno tecniche di test del software già in uso nel progetto.
Vantaggi del test con matrici ortogonali
- Garantisce il test delle combinazioni a coppie di tutte le variabili selezionate.
- riduce il numero di casi di test.
- Crea un numero inferiore di casi di test che coprono comunque l'interazione di ogni coppia di variabili.
- È possibile gestire una combinazione complessa di variabili.
- È più semplice da generare e meno soggetto a errori rispetto ai set di test creati manualmente.
- È utile per Test d'integrazionee altrettanto utile per test di configurazionedove le combinazioni di browser, sistemi operativi e dispositivi si moltiplicano rapidamente.
- Migliora la produttività grazie alla riduzione dei cicli e dei tempi di prova.
Il risparmio composto durante test di regressione, perché una suite bilanciata più piccola è abbastanza economica da poter essere rieseguita a ogni ciclo, mentre una suite di combinazioni esaustiva viene solitamente eseguita una sola volta e poi abbandonata silenziosamente.
Svantaggi del test con matrici ortogonali
- Con l'aumentare degli input di dati, aumenta la complessità della progettazione dei casi di test. Di conseguenza, aumentano lo sforzo manuale e il tempo impiegato, e i tester devono passare a Test di automazione.
- La copertura a coppie non è una copertura completa. Un difetto che si manifesta solo quando tre valori specifici si presentano contemporaneamente può passare inosservato attraverso l'array.
- I fattori con un numero diverso di livelli non si mappano in modo pulito su una matrice standard, quindi è necessario una matrice a livelli misti o un generatore di matrici di copertura.
- La scelta dei livelli è una questione di giudizio. Se un valore importante viene omesso dal modello di input, nessun array può recuperarlo.
- I vincoli tra i valori, come ad esempio un metodo di pagamento valido solo in un determinato paese, sono difficili da esprimere e solitamente generano righe non valide che devono essere rimosse manualmente.
Nessuna di queste limitazioni esclude la tecnica; ne definiscono semplicemente i confini. Gli array ortogonali riducono il problema della combinazione, mentre l'analisi del rischio e test di dominio decidere quali fattori meritano di essere inclusi nel modello fin dall'inizio.
Errori o errori durante l'esecuzione dell'OAT
- Concentrare gli sforzi di test sull'area sbagliata dell'applicazione.
- Scegliere i parametri sbagliati da combinare.
- Utilizzo di test con array ortogonali in cui il set di input è sufficientemente piccolo da consentire test esaustivi.
- Applicazione manuale del test degli array ortogonali su un modello sufficientemente grande da richiedere un generatore.
- Affidarsi esclusivamente ai test con array ortogonali per applicazioni ad alto rischio, dove è richiesta una copertura più approfondita.
L'ultimo elemento è quello che causa più danni nella pratica. Su una funzionalità critica per la sicurezza o finanziaria, il set pairwise è un pavimento piuttosto che un soffitto, ed è normalmente integrato con casi mirati a test di sistema livello e con il piano più ampio descritto in tipi di test del software.

