Cos'è il test del dominio nel test del software? (con esempio)
Cos'è il test del dominio?
Test del dominio è un Software Testing processo 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 l'intervallo accettabile e fornisce l'output richiesto.
È una Test di funzionalità tecnica 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 range. È uno dei più importanti Bianco Box Collaudo metodi. Verifica inoltre che il sistema non debba accettare input, condizioni e indici al di fuori dell'intervallo specificato o valido.
Il test del dominio differisce per ogni dominio specifico, quindi è necessario avere una conoscenza specifica del dominio per testare un sistema software.
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 facilitare il test.
Il dominio potrebbe comportare il test di qualsiasi variabile di input o 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 di classi di equivalenza”.
Test di confine – L’analisi del valore limite (BVA) si basa su test ai confini tra le partizioni. Verificheremo sia i valori di input validi che quelli non validi nella partizione/classi.
Test di classe di equivalenza – L'idea alla base di questa tecnica è quella di 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 il 'partizionamento di equivalenza'.
Questa forma semplificata si applica al test del dominio:
- Solo per i test delle 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 di classe valida | Classe di equivalenza di classe non valida | Confini e casi speciali | Note |
|---|---|---|---|---|
| X | 0-100 | 0 | ||
| 100 | ||||
| <0 | -1 | |||
| > 100 | 101 |
Spiegazione:
- Se un campo accetta intervalli compresi tra 0 e 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 compreso tra loro.
Tavolo da costruzione come questi (in pratica)
- Per costruire un'analisi delle classi di equivalenza nel tempo, inserire le informazioni in un foglio di calcolo. Inizia elencando le variabili. Aggiungi informazioni su di essi 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 qualsiasi variabile intermedia che puoi osservare.
- In pratica, la maggior parte delle tabelle che ho visto sono incomplete. I migliori visti 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 uno scenario di test con un singolo input:
C = a+b, dove aeb sono variabili di input e C è la variabile di output.
Nell'esempio precedente non è necessaria la classificazione né è richiesta la combinazione delle variabili.
- Considera i seguenti input multipli e lo scenario di output appropriato:
Considera una mostra di giochi per bambini, vengono organizzate 6 gare e i biglietti devono essere distribuiti in base all'età e al sesso. La biglietteria è uno dei moduli su cui testare l'intera funzionalità di Games Exhibition.
Secondo lo scenario, abbiamo sei scenari in base all'età e alle competizioni:
- Età >5 e <10, il ragazzo dovrebbe partecipare allo Storytelling.
- Le bambine di età compresa tra 5 e 10 anni devono partecipare al concorso di disegno.
- Età >10 e <15, il ragazzo dovrebbe partecipare al quiz.
- Età> 10 e <15, la ragazza dovrebbe partecipare alla scrittura di saggi.
- Età <5, sia i ragazzi che le ragazze dovrebbero partecipare al Concorso di Rime.
- Età >15 anni, sia i ragazzi che le ragazze dovrebbero partecipare al concorso di poesia.
Qui verranno inseriti Età e Sesso e quindi verrà emesso il biglietto per la competizione. In questo caso entrano in gioco la suddivisione degli input o semplicemente il raggruppamento di valori.
Come raggruppare i valori in classi?
Partizionare alcuni valori significa suddividerli in sottoinsiemi non sovrapposti.
Come abbiamo discusso in precedenza, esistono due tipi di partizionamento:
- Partizionamento per equivalenze – Il partizionamento per equivalenza è a test del software tecnica che divide i dati di input di un'unità software in partizioni di dati equivalenti da cui possono essere derivati casi di test. In linea di principio, i casi di test sono progettati per coprire ciascuna partizione almeno una volta.
- Analisi del valore limite – L'analisi del valore limite è a test del software tecnica in cui i test sono progettati per includere rappresentanti dei valori limite in un intervallo. L'idea nasce da confine.
Per l'esempio precedente, stiamo suddividendo i valori in un sottoinsieme o nel sottoinsieme. Stiamo suddividendo l'età nelle classi seguenti:
- Classe 1: Bambini con fascia di età dai 5 ai 10 anni
- Classe 2: Bambini con fascia di età inferiore a 5 anni
- Classe 3: Ragazzi con fascia d'età dai 10 ai 15 anni
- Classe 4: Bambini con fascia 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 rappresentativi 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 tra l'intervallo.
Per l'esempio precedente abbiamo le seguenti classi da testare:
Ad esempio per lo scenario n. 1:
- Classe 1: Bambini con fascia di età da 5 a 10 (Età >5 e <=10)
Valori limite:
- I valori dovrebbero essere uguali o inferiori a 10. Pertanto, 10 anni dovrebbero essere inclusi in questa classe.
- I valori dovrebbero essere maggiori di 5. Pertanto, i 5 anni non dovrebbero essere inclusi in questa classe.
- I valori dovrebbero 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. Pertanto, l'età di 6 anni dovrebbe essere inclusa in questa classe.
Partizione di equivalenza Valori:
Si fa riferimento alla partizione di equivalenza quando è necessario testare solo una condizione per ciascuna partizione. In questo caso, 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, deve essere scelto uno dei valori tra 6,7,8,9 e 10. Pertanto l'età selezionata "8" è un'età di input valida per la fascia di età compresa tra (Età >5 e <=10). Questo tipo di partizione viene definita partizione di equivalenza.
| Scenario | Valori limite da adottare | Valori di partizionamento di equivalenza |
|---|---|---|
| Ragazzo – Età >5 e <=10 | Età inserita = 6 Età inserita = 5 Età inserita = 11 Età inserita = 10 |
Età inserita = 8 |
| Ragazza – Età >5 e <=10 | Età inserita = 6 Età inserita = 5 Età inserita = 11 Età inserita = 10 |
Età inserita = 8 |
| Ragazzo – Età >10 e <=15 | Età inserita = 11 Età inserita = 10 Età inserita = 15 Età inserita = 16 |
Età inserita = 13 |
| Ragazza – Età >10 e <=15 | Età inserita = 11 Età inserita = 10 Età inserita = 15 Età inserita = 16 |
Età inserita = 13 |
| Età<=5 | Età inserita = 4 Età inserita = 5 |
Età inserita = 3 |
| Età> 15 | Età inserita = 15 Età inserita = 16 |
Età inserita = 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 forniranno i risultati e ciò richiede la conoscenza del dominio.
Determinazione dei risultati dell'esempio:
Pertanto, se tutti i test di cui sopra vengono superati, il dominio dell'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 nel test di un dominio. Questi possono essere personalizzati/saltati in base alle nostre esigenze di test.
- Individuare 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.
- Identificare le dimensioni secondarie e analizzarle in modo classico. (Nell'esempio sopra, il sesso è la dimensione secondaria).
- Identificare e testare le variabili che contengono risultati (variabili di output).
- Valutare come il programma utilizza il valore di questa variabile.
- Identificare ulteriori variabili potenzialmente correlate per i test combinati.
- Immagina rischi che non necessariamente corrispondono a una dimensione ovvia.
- Identificare ed elencare le variabili non analizzate. Raccogliere informazioni per analisi successive.
- Riassumi la tua analisi con una tabella di rischio/equivalenza.
Sintesi
Il test del dominio, come descritto sopra, richiede la conoscenza di come fornire l'input corretto per ottenere l'output desiderato. Pertanto, è possibile utilizzarlo solo per piccole porzioni di codice.


