Che cos'è il test del dominio?
Il test del dominio è un processo di test del software in cui l'applicazione viene testata fornendo un numero minimo di input e valutando i suoi output appropriati. L'obiettivo principale del test del dominio è verificare se l'applicazione software accetta input entro un intervallo accettabile e fornisce l'output richiesto.
È una tecnica di test funzionale in cui l'output di un sistema viene testato con un numero minimo di input per garantire che il sistema non accetti valori di input non validi e fuori intervallo. È uno dei più importanti metodi di test White Box. Verifica inoltre che il sistema non debba accettare input, condizioni e indici al di fuori dell'intervallo specificato o valido.
Il test del dominio è diverso per ogni dominio specifico, quindi è necessario disporre di conoscenze specifiche del dominio per testare un sistema software.
In questo tutorial imparerai-
- Pratica più semplice del test del dominio
- Strategia di test del dominio
- Esempio di test del dominio
- Struttura di test del dominio
Pratica più semplice del test del dominio
Nel test del dominio, dividiamo un dominio in sottodomini (classi di equivalenza) e quindi testiamo utilizzando i valori di ciascun sottodominio. Ad esempio, se un sito Web (dominio) è stato fornito per il test, divideremo il sito Web in piccole porzioni (sottodominio) per semplificare il test.
Il dominio potrebbe comportare il test di una qualsiasi variabile di input o di una combinazione di variabili di input.
I professionisti spesso studiano i casi più semplici di test di dominio meno di altri due nomi, "test di confine" e "analisi della classe di equivalenza".
Boundary test - L'analisi del valore limite (BVA) si basa sul test ai confini tra le partizioni. Testeremo sia i valori di input validi che quelli non validi nella partizione / classi.
Test delle classi di equivalenza - L'idea alla base di questa tecnica è dividere (cioè partizionare) un insieme di condizioni di test in gruppi o insiemi che possono essere considerati uguali (cioè il sistema dovrebbe gestirli in modo equivalente), da qui "partizionamento di equivalenza".
Questo modulo semplificato si applica per il test del dominio -
- Solo per test di variabili di input
- Solo se testato a livello di sistema
- Solo se testati uno alla volta
- Solo se testato in modo molto superficiale
Può essere semplificato come di seguito:
Variabile | Classe di equivalenza della classe valida | Classe di equivalenza di classe non valida | Confini e casi speciali | Appunti |
---|---|---|---|---|
X | 0-100 | 0 | ||
100 | ||||
<0 | -1 | |||
> 100 | 101 |
Spiegazione:
- Se un campo accetta intervalli da 0 a 100, il campo non deve accettare -1 e 101 poiché sono voci non valide e oltre i limiti.
- Il campo dovrebbe accettare valori come 0,100 e qualsiasi numero tra di loro.
Costruire tavoli come questi (in pratica)
- Per costruire un'analisi della classe di equivalenza nel tempo, inserire le informazioni in un foglio di calcolo. Inizia elencando le variabili. Aggiungi le informazioni su di loro man mano che le ottieni.
- La tabella dovrebbe eventualmente contenere tutte le variabili. Ciò significa, tutte le variabili di input, tutte le variabili di output e tutte le variabili intermedie che è possibile osservare.
- In pratica, la maggior parte delle tabelle che ho visto sono incomplete. I migliori visualizzati elencano tutte le variabili e aggiungono dettagli per le variabili critiche.
Strategia di test del dominio
Durante il test del dominio, è necessario considerare le seguenti cose,
- Quale dominio stiamo testando?
- Come raggruppare i valori in classi?
- Quali valori delle classi da testare?
- Come determinare il risultato?
Quale dominio stiamo testando?
Qualsiasi dominio che testiamo ha alcune funzionalità di input e una funzionalità di output. Ci saranno alcune variabili di input da inserire e l'output appropriato dovrà essere verificato.
Esempio di test del dominio
- Considera un singolo scenario di test di input:
C = a + b, dove aeb sono variabili di input e C è la variabile di output.
Nell'esempio sopra, non è necessaria la classificazione o è richiesta la combinazione delle variabili.
- Considera i seguenti input multipli e lo scenario di output appropriato:
Si consideri una mostra di giochi per bambini, vengono organizzati 6 concorsi e i biglietti devono essere assegnati in base all'età e al sesso. Il ticketing è uno dei moduli su cui testare l'intera funzionalità della mostra Games.
Secondo lo scenario, abbiamo sei scenari basati sull'età e sulle competizioni:
- Età> 5 e <10 anni, il ragazzo dovrebbe partecipare alla narrazione.
- Età> 5 e <10 anni, la ragazza dovrebbe partecipare al concorso di disegno.
- Età> 10 e <15 anni, il ragazzo dovrebbe partecipare al quiz.
- Età> 10 e <15 anni, la ragazza dovrebbe partecipare alla stesura del saggio.
- Età <5 anni, sia i ragazzi che le ragazze dovrebbero partecipare al concorso Rhymes.
- Età> 15 anni, sia i ragazzi che le ragazze dovrebbero partecipare al concorso di poesia.
Qui l'ingresso sarà Età e Sesso e quindi verrà emesso il biglietto per il concorso. Questo caso di partizione degli input o semplicemente raggruppamento di valori entra in gioco.
Come raggruppare i valori in classi?
Partizionare alcuni valori significa dividerli in sottoinsiemi non sovrapposti.
Come abbiamo discusso in precedenza, esistono due tipi di partizionamento:
- Partizionamento di equivalenza: il partizionamento di equivalenza è una tecnica di test del software che divide i dati di input di un'unità software in partizioni di dati equivalenti da cui è possibile derivare i casi di test. In linea di principio, i casi di test sono progettati per coprire ogni partizione almeno una volta.
- Analisi del valore limite: l'analisi del valore limite è una tecnica di test del software in cui i test sono progettati per includere rappresentanti dei valori limite in un intervallo. L'idea nasce dal confine .
Per l'esempio precedente, stiamo partizionando i valori in un sottoinsieme o in un sottoinsieme. Stiamo partizionando l'età nelle seguenti classi:
- Classe 1: bambini di età compresa tra 5 e 10 anni
- Classe 2: bambini di età inferiore a 5 anni
- Classe 3: bambini di età compresa tra 10 e 15 anni
- Classe 4: bambini di età superiore a 15 anni.
Quali valori delle classi da testare?
I valori raccolti per il test dovrebbero essere valori limite:
- I confini sono rappresentanti delle classi di equivalenza da cui li campioniamo. È più probabile che espongano un errore rispetto agli altri membri della classe, quindi sono rappresentanti migliori.
- Il miglior rappresentante di una classe di equivalenza è un valore compreso nell'intervallo.
Per l'esempio sopra abbiamo le seguenti classi da testare:
Ad esempio per lo scenario n. 1:
- Classe 1: bambini di età compresa tra 5 e 10 anni (età> 5 e <= 10)
Valori limite:
- I valori devono essere uguali o inferiori a 10. Quindi, l'età 10 dovrebbe essere inclusa in questa classe.
- I valori dovrebbero essere maggiori di 5. Pertanto, l'età di 5 anni non dovrebbe essere inclusa in questa classe.
- I valori devono essere uguali o inferiori a 10. Pertanto, l'età di 11 anni non dovrebbe essere inclusa in questa classe.
- I valori dovrebbero essere maggiori di 5. Quindi, l'età di 6 anni dovrebbe essere inclusa in questa classe.
Valori di partizione di equivalenza:
Si fa riferimento alla partizione di equivalenza quando si deve testare una sola condizione da ciascuna partizione. In questo, assumiamo che se una condizione in una partizione funziona, allora tutte le condizioni dovrebbero funzionare. Allo stesso modo, se una condizione in quella partizione non funziona, presumiamo che nessuna delle altre condizioni funzionerà. Per esempio,
(Età> 5 e <= 10)
Poiché i valori da 6 a 10 sono validi, è necessario prelevare uno dei valori tra 6,7,8,9 e 10. Quindi l'età selezionata "8" è un'età di input valida per il gruppo di età compreso tra (Età> 5 e <= 10). Questo tipo di partizione viene definita partizione di equivalenza.
Scenario | Valori limite da prendere | Valori di partizionamento di equivalenza |
---|---|---|
Ragazzo - Età> 5 e <= 10 | Età di input = 6 Età di input = 5 Età di input = 11 Età di input = 10 | Età di input = 8 |
Ragazza - Età> 5 e <= 10 | Età di input = 6 Età di input = 5 Età di input = 11 Età di input = 10 | Età di input = 8 |
Ragazzo - Età> 10 e <= 15 | Input age = 11 Input age = 10 Input age = 15 Input age = 16 | Età di input = 13 |
Ragazza - Età> 10 e <= 15 | Input age = 11 Input age = 10 Input age = 15 Input age = 16 | Età di input = 13 |
Età <= 5 | Età di input = 4 Età di input = 5 | Età di input = 3 |
Età> 15 | Età di input = 15 Età di input = 16 | Età di input = 25 |
Come determiniamo se il programma ha superato o meno il test?
Il passaggio della funzionalità non dipende solo dai risultati degli scenari precedenti. L'input fornito e l'output atteso ci daranno i risultati e questo richiede la conoscenza del dominio.
Determinazione dei risultati dell'esempio:
Quindi, se tutti i casi di test di cui sopra passano, il dominio di emissione dei biglietti nella competizione viene superato. In caso contrario, il dominio fallisce.
Struttura di test del dominio
Di solito, i tester seguono i passaggi seguenti in un test di dominio. Questi possono essere personalizzati / ignorati in base alle nostre esigenze di test.
- Identifica le variabili potenzialmente interessanti.
- Identifica le variabili che puoi analizzare ora e ordinale (dalla più piccola alla più grande e viceversa).
- Creare e identificare i valori limite e i valori delle classi di equivalenza come sopra.
- Identifica le dimensioni secondarie e analizzale ciascuna in modo classico. (Nell'esempio sopra, il sesso è la dimensione secondaria).
- Identificare e testare le variabili che contengono i risultati (variabili di output).
- Valuta come il programma utilizza il valore di questa variabile.
- Identificare ulteriori variabili potenzialmente correlate per i test di combinazione.
- Immagina i rischi che non sono necessariamente associati a una dimensione ovvia.
- Identifica ed elenca le variabili non analizzate. Raccogli informazioni per un'analisi successiva.
- Riassumi la tua analisi con una tabella di rischio / equivalenza.
Sommario:
Il test di dominio, come descritto sopra, richiede la conoscenza di fornire il giusto input per ottenere l'output desiderato. Pertanto, è possibile utilizzarlo solo per piccoli blocchi di codice.