what is thread testing software testing
Questo tutorial spiega cos'è il test dei thread, quando e come eseguirlo, i tipi di test basati sui thread e le sfide affrontate:
Il test dei thread è una tecnica di test del software utilizzata per testare le applicazioni basate su client server.
Il test basato su thread deve essere eseguito nelle fasi iniziali del test di integrazione in modo che le funzioni chiave possano essere testate / verificate per un'attività / programma o thread specifico.
Cosa imparerai:
- Perché il thread test
- Quando e come viene eseguito il thread test
- Tipi di test basati su thread
- Differenza tra thread e processi
- Differenza tra test basati su thread e basati sull'utente
- Conclusione
Perché il thread test
Quando i componenti sono integrati, è necessario verificare se il sistema funzionerà come previsto o meno e tutte le transazioni avverranno secondo il requisito o meno. Quindi il test basato su thread entra per testare lo stesso.
Questo test viene effettuato integrando i thread progressivamente a tutti i livelli a partire dal sottosistema fino al sistema completo ovvero l'intero sistema. Tutte le attività di sistema procedono solo con i thread.
La definizione del thread aiuta a condividere il background funzionale ei dettagli di esecuzione del thread tra gli sviluppatori e gli sviluppatori ai tester.
Informazioni sui thread
Un thread è il flusso di controllo in un processo. È il compito più piccolo del sistema che può essere eseguito.
come restituire array in java
Esempio
Un browser web potrebbe avere uno o più thread che eseguono la visualizzazione. un thread per visualizzare immagini e testo e un altro thread per recuperare i dati. In alcuni casi, deve essere richiesta un'unica applicazione per servire tutti i processi.
La creazione di multi-thread è la soluzione migliore per lo stesso, altrimenti più richieste verranno inviate al server dal client e ci vorrà del tempo per riconoscere le richieste una per una. Il multi-thread aiuterà a rispondere alle richieste contemporaneamente.
Quando e come viene eseguito il thread test
Dovrebbe essere eseguito nella fase iniziale del test di integrazione del sistema.
Il test di integrazione viene eseguito integrando diversi moduli in modo pianificato. Il piano di integrazione viene seguito per lo stesso che specifica l'ordine in cui i moduli verranno integrati per realizzare il sistema completo.
Di seguito sono elencate le tecniche per eseguire il test di integrazione:
- Approccio Big Bang
- Approccio dall 'alto verso il basso
- Approccio dal basso verso l'alto
- Approccio misto
Vediamo in dettaglio ciascuna tecnica.
# 1) Approccio Big Bang
L'approccio del big bang viene utilizzato solo per i piccoli sistemi poiché tutti i moduli sono integrati e testati in un solo passaggio.
Qualsiasi problema riscontrato durante questo approccio è difficile da localizzare poiché il problema può provenire da uno qualsiasi dei moduli integrati. Pertanto, i problemi di debug rilevati sono molto costosi da risolvere con questo approccio.
# 2) Approccio dall'alto verso il basso
L'approccio top-down viene eseguito utilizzando gli stub, ovvero una volta che il modulo di primo livello è stato testato, le subroutine immediate vengono integrate e testate.
Gli stub sono i programmi che simulano l'effetto delle routine di livello inferiore e sono chiamati dalle routine sotto test. Il test dei thread utilizza un approccio dall'alto verso il basso.
# 3) Approccio dal basso verso l'alto
Nell'approccio dal basso verso l'alto, tutti i sottosistemi vengono testati individualmente, quindi viene testato l'intero sistema. Il motivo alla base del test di tutti i sottosistemi separatamente è testare l'interfaccia tra tutti i moduli che fanno parte del sottosistema.
Questa tecnica richiede driver di prova, ovvero il programma che chiama gli altri moduli e fornisce lo stesso output del prodotto reale.
# 4) Test di integrazione mista
Questa tecnica è una combinazione di approcci dall'alto verso il basso e dal basso verso l'alto. Quindi si chiama Mixed Integration Testing.
Punti chiave per eseguire test basati su thread
- Durante l'esecuzione di thread test, thread o piccole funzionalità vengono integrati e testati. Il test eseguito è un test incrementale a livello di sottosistema e quindi come sistema completo.
- Nella fase iniziale stessa, i tester dell'integrazione ottengono una buona idea e conoscenze su cosa testare ulteriormente.
- I tester dell'integrazione devono applicare ed eseguire scenari sia positivi che negativi solo entro i limiti del thread. Devono decidere su un approccio di thread test da seguire per coprire casi eccezionali e anche casi limite.
- La definizione del thread fornita dallo sviluppatore al tester aiuta a testare il thread di conseguenza dai tester dell'integratore. Qualsiasi ulteriore informazione richiesta dal tester può essere risolta nel processo di revisione del thread.
- I processi thread funzionano per i processi di integrazione piuttosto che per il processo di sviluppo end to end.
- Per testare la funzionalità multi-thread, lasciare che più istanze dell'applicazione o del programma da testare siano attive contemporaneamente.
- Esegui il programma multi-thread su hardware diverso.
- Il test dei thread è una forma di test di sessione per cui le sessioni sono formate da thread. Non è necessario che un thread formato sia una sessione.
Tipi di test basati su thread
Vengono eseguiti due tipi di test basati su thread:
- Test a thread singolo
- Test multi-thread
# 1) Test a filo singolo
Il test a thread singolo verifica una transazione alla volta. Il tempo di attesa per il client per ottenere una risposta alla sua richiesta potrebbe essere un po 'più lungo in quanto sarà in grado di servire o rispondere a un cliente alla volta.
Questo test aiuta il tester a comprendere e testare la logica del programma o del codice scritto.
# 2) Test multi-thread
Il test multi-thread verifica diverse transazioni attive contemporaneamente. In questo caso, vengono creati thread separati per le richieste del client. Ogni volta che viene effettuata una richiesta, viene creato un thread per il servizio o risponde alla richiesta.
le 10 migliori app spia per Android
Una transazione che funzionava correttamente nel test a thread singolo può fallire durante il test in multi-thread e può anche interferire con altri thread e funzionalità e impedire che funzionino come previsto.
Un approccio multithread è migliore di un approccio a thread singolo?
Le applicazioni multi-thread sono migliori di quelle a thread singolo in quanto migliorano le prestazioni dell'applicazione. Il multi-threading consente a più risorse di lavorare su un problema / richiesta contemporaneamente.
Sfide durante l'esecuzione di test basati su thread
Durante l'esecuzione di test basati su thread, il tester deve affrontare diverse sfide che influiscono sulle prestazioni, sui tempi e sui costi dei test.
- Scrivere casi di unit test per codice multi-thread è impegnativo.
- Quando il test multi-thread viene eseguito su hardware diverso, varia in base alle dimensioni, alla capacità di archiviazione, alla memoria, ai problemi, ecc.
- Gli scenari di test per thread singolo e thread multipli sono diversi.
- In più thread test, è necessario programmare test riproducibili per unit test.
Vantaggi / svantaggi del multi-threading
Il multi-threading presenta molti vantaggi e svantaggi. In qualità di tester, sapere lo stesso li aiuta a testare e interrompere il processo di test di conseguenza.
Vantaggi
- Il multi-threading aumenta la reattività per l'utente. L'applicazione può consentire l'esecuzione del programma anche se una parte dell'applicazione viene bloccata.
- La condivisione delle risorse è un altro vantaggio poiché i thread condividono le risorse del processo a cui sono correlati oa cui appartengono.
- La creazione di thread è economica in quanto condivide le risorse a cui appartengono.
Svantaggi
- Processo di test complesso
- I risultati sono molto imprevedibili.
- Scrivere un programma diventa più difficile.
- Evento di deadlock.
Cos'è il deadlock
Al termine del multi-threading, il thread entra in uno stato di attesa se la risorsa non è disponibile.
Lo stato di attesa potrebbe non cambiare per il thread poiché la risorsa richiesta è detenuta da altri thread in attesa. Quando si verifica una situazione del genere, si chiama Deadlock.
Differenza tra thread e processi
Comprendiamo le differenze tra thread e processi:
S.No | Filo | Processi |
---|---|---|
7 | I thread non possono essere divisi ulteriormente. | I processi possono avere più thread. |
1 | Il filo è un processo leggero. | Il processo è un processo pesante. |
Due | Se il thread del server viene bloccato, un secondo thread della stessa attività può essere eseguito e completare il processo. | Se il processo del server viene bloccato, altri processi non possono essere eseguiti fino a quando il processo del server bloccato nel tempo non viene sbloccato. |
3 | I thread non isolano, condividono la memoria. | Il processo è isolato. |
4 | La creazione di thread, il cambio di contesto e la terminazione richiedono meno tempo nel thread. | La creazione di thread, il cambio di contesto e la terminazione richiedono più tempo nei processi. |
5 | Il thread si riferisce all'attività specifica di un processo. | Il processo si riferisce all'esecuzione di qualsiasi programma. |
6 | Le risorse utilizzate sono molto poche nel thread. | Le risorse utilizzate nei processi sono maggiori. |
Differenza tra test basati su thread e basati sull'utente
S.No. | Test basati su thread | Test basati sull'uso |
---|---|---|
1 | I thread vengono integrati e testati individualmente. | Il test inizia con classi che non dipendono l'una dall'altra, cioè sono indipendenti. |
Due | Il test di regressione viene eseguito per assicurarsi che nulla venga influenzato. | Una volta eseguito il test delle classi indipendenti, vengono testate le classi dipendenti. I dipendenti sono quelli che dipendono dalle classi indipendenti. Questa serie va avanti fino al momento in cui viene costruito il sistema completo. |
3 | Il test basato su thread integra le classi essenziali per riconoscere l'input o l'evento del sistema. | Il test della base d'uso integra le classi essenziali per rispondere o riconoscere il caso d'uso. |
Domande frequenti
D # 1) Che cos'è il thread test?
Risposta: Il test basato su thread è una metodologia che viene eseguita durante la fase iniziale del test di integrazione. Thread o programmi vengono integrati e testati in modo incrementale in un sottosistema e quindi come un intero sistema.
D # 2) Quale test viene eseguito per primo?
Risposta : Di solito viene eseguito prima il test bottom-up e poi il test top-down.
D # 3) Che cos'è il test top-down?
Risposta: Top-down è una tecnica di test di integrazione in cui il test viene eseguito utilizzando stub, ovvero quando i componenti di livello inferiore non sono ancora pronti per testare l'integrazione, vengono creati stub (moduli temporanei) per ottenere lo stesso output del caso dei moduli effettivi.
Conclusione
Il test di integrazione basato su thread svolge un ruolo importante nel test delle principali funzionalità o dell'attività o thread specifico. Questa metodologia è la migliore per l'architettura basata su server client.
Durante l'esecuzione del test dei thread, il tester deve affrontare molte sfide, tuttavia presenta anche molti vantaggi che lo rendono facile e affidabile da eseguire. Consente ai tester di testare tutte le transazioni e verificare se funziona come previsto e secondo i requisiti.
È impossibile testare tutte le transazioni / eventi per completare il test del thread a causa del quale, è diviso in tipi a thread singolo e multi-thread.
Lettura consigliata
- Scegliere il test del software come carriera
- Alcune interessanti domande di intervista sul test del software
- Il test del software è un compito emotivo?
- Java sincronizzato: cos'è la sincronizzazione dei thread in Java
- Thread Java con metodi e ciclo di vita
- Multithreading in C ++ con esempi
- Multithreading in Java - Tutorial con esempi
- Thread.Sleep () - Metodo Thread Sleep () in Java con esempi