Cos'รจ il test dei moduli? Definizione, esempi
โก Riepilogo intelligente
Il test modulare verifica singoli sottoprogrammi, subroutine, classi e procedure anzichรฉ il programma assemblato, in modo che i difetti emergano all'interno di un piccolo blocco di codice ben compreso, dove rimangono economici da individuare e correggere.
Cos'รจ il test dei moduli?
Test del modulo Il test modulare รจ un tipo di test del software che verifica singoli sottoprogrammi, subroutine, classi o procedure all'interno di un programma. Invece di testare l'intero programma software in una sola volta, il test modulare raccomanda di testare i singoli componenti del programma.
Il test dei moduli รจ in gran parte orientato al modello white box. L'obiettivo del test dei moduli non รจ dimostrare il corretto funzionamento del modulo, bensรฌ la presenza di un errore al suo interno. Questa distinzione รจ fondamentale: un'esecuzione che non rileva alcun problema ha confermato ben poco, mentre un'esecuzione che individua un difetto ha raggiunto il suo scopo.
Il test a livello di modulo consente inoltre di introdurre il parallelismo nel processo di test, poichรฉ offre l'opportunitร di testare piรน moduli simultaneamente anzichรฉ attendere una build completa.
Perchรฉ eseguire il test dei moduli
Si raccomanda di testare i moduli perchรฉ modificano gli aspetti economici del rilevamento dei difetti.
- Aumenta la probabilitร di individuare errori o bug in porzioni piรน piccole di un programma.
- ร possibile testare simultaneamente piรน moduli, pertanto l'approccio supporta i test paralleli.
- La complessitร dei test puรฒ essere gestita facilmente, poichรฉ ogni modulo viene analizzato in modo indipendente.
- Un difetto riscontrato all'interno di un modulo รจ tracRiducibile a una piccola quantitร di codice, quindi i tempi di debug si riducono drasticamente.
Come eseguire il test dei moduli?
Progettare a caso di prova รจ la parte importante del test dei moduli. Durante la progettazione dei casi di test per un test di modulo, un tester deve tenere in considerazione due cose.
- Specifiche del modulo
- Il codice sorgente del modulo
Analizzare la logica del modulo utilizzando uno o piรน dei scatola bianca metodi e quindi integrare questi casi di test applicando scatola nera metodi alla specifica del modulo. I valori realistici contano tanto quanto i percorsi scelti, quindi preparate il dati di test Parallelamente ai casi, piuttosto che successivamente.
Una volta progettati i casi di test, il passo successivo รจ combinare i moduli per il test. Il metodo utilizzato รจ un incrementale non incrementale metodo.
- Metodo non incrementale โ Tutti i moduli vengono testati in modo indipendente. Prima vengono combinati tutti i moduli e poi viene testato l'intero programma.
- Metodo incrementale โ Ogni modulo viene prima testato e poi gradualmente aggiunto alla raccolta di moduli testati. Il processo prevede una ripetizione dei test in modo graduale.
- Nell'ambito dei test incrementali esistono due approcci, dall'alto verso il basso and basso verso l'alto test.
- Per eseguire il modulo con i dati selezionati, รจ necessario un driver che fornisca i dati di test, monitori l'esecuzione e acquisisca i risultati.
La scelta tra i due metodi rappresenta un compromesso tra la complessitร dell'installazione e la capacitร diagnostica.
| Aspetto | Metodo incrementale | Metodo non incrementale |
| pelle mista | Un modulo alla volta, aggiunto a una raccolta testata | Tutti i moduli combinati, quindi testati insieme |
| ร necessario un ponteggio. | Piรน driver e stub, scritti progressivamente | Meno test double, poichรฉ sono presenti moduli reali |
| Isolamento dei problemi | Forte: un punto di errore nel modulo appena aggiunto | Debole: un guasto potrebbe avere origine ovunque |
| piรน adatto a | Costruzioni di grandi dimensioni con molti moduli interagenti | Programmi di piccole dimensioni con pochi moduli e basso accoppiamento |
Driver e stub nei test dei moduli
Il driver menzionato sopra รจ una delle due metร di una coppia. Poichรฉ un modulo in fase di test raramente si trova all'inizio o alla fine della catena di chiamate, i tester sostituiscono con codice fittizio ciรฒ che manca su entrambi i lati.
- Guidatore โ sostituisce il modulo chiamante sopra quello in fase di test. Fornisce i dati di test, invoca il modulo, monitora l'esecuzione e acquisisce i risultati. Il testing bottom-up dipende dai driver, perchรฉ i moduli inferiori sono pronti prima di quelli superiori.
- mozzicone โ sostituisce un modulo chiamato al di sotto di quello in fase di test. Accetta la chiamata e restituisce una risposta fissa e nota in modo che il modulo in fase di test possa completare il suo percorso. Il testing top-down dipende dagli stub, perchรฉ i moduli di livello superiore sono pronti per primi.
Un caso pratico rende concreto l'abbinamento. Se un modulo di calcolo del pagamento รจ terminato mentre la schermata di checkout che lo richiama non lo รจ, un driver fornisce al modulo una serie di totali dell'ordine e registra la risposta. Se anche il servizio di ricerca delle imposte richiamato dal modulo non รจ terminato, uno stub restituisce un'aliquota fiscale fissa in modo che il calcolo venga comunque eseguito. Nessuno dei due componenti di supporto viene rilasciato; entrambi vengono scartati una volta che arrivano i moduli reali, motivo per cui la mancata comprensione dei test double viene elencata in seguito come una sfida ricorrente.
Suggerimenti di esempio per il test dei moduli
Ecco alcuni suggerimenti da tenere in considerazione prima di eseguire i test dei moduli.
- RevEsamina i casi di test prima di utilizzarli.
- Evitare confusione sull'origine delle discrepanze.
- Utilizzare strumenti di test automatizzati.
- Esamina le variabili che dovrebbero rimanere invariate.
- Scambiare i moduli tra i tester per evitare autotest.
- Riutilizzare i casi di test.
Il quinto consiglio ha un peso maggiore di quanto la sua lunghezza possa suggerire. Uno sviluppatore che testa solo il modulo appena scritto ripete gli stessi presupposti che hanno generato il difetto, quindi la rotazione dei moduli tra le persone รจ uno dei modi piรน economici per migliorare la qualitร .
Test unitario e test dei moduli
In molti team i due termini vengono usati in modo intercambiabile, tuttavia l'autore e l'ambito di applicazione differiscono.
| Test del modulo | Test unitari |
| I test dei moduli sono una raccolta di test scritti da un tester dopo che del codice รจ stato scritto da uno sviluppatore | Test unitari sono una raccolta di test scritti da uno sviluppatore durante il processo di sviluppo del software |
| Il test dei moduli puรฒ comportare la combinazione dei test unitari | Il test unitario puรฒ testare le unitร in isolamento |
Test dei moduli vs test dei componenti vs test di integrazione
Il test dei moduli si trova inoltre accanto a due livelli adiacenti che possono essere facilmente confusi con esso. La tabella li distingue in base a ciรฒ che viene testato e a chi lo esegue di norma.
| Aspetto | Test del modulo | Test dei componenti | Test d'integrazione |
| In fase di test | Un sottoprogramma, una classe o una procedura | Un componente autonomo con le sue dipendenze immediate | Le interfacce tra i moduli combinati |
| Proprietario abituale | Il tester, dopo che il codice รจ stato scritto | Tester | Tester di integrazione |
| impalcatura | Driver e stub | Stub per dipendenze esterne | Un numero progressivamente minore di doppi test |
| Difetto esposto | Errore logico all'interno del modulo | Errore di comportamento nel componente | Errore di interfaccia e di passaggio dati |
Nell'uso quotidiano test dei componenti e il test dei moduli sono spesso trattati come la stessa attivitร , mentre test d'integrazione Inizia solo dopo che i singoli moduli sono stati superati autonomamente.
Sfide nel test dei moduli
Queste sono le sfide che i team incontrano piรน spesso quando viene introdotto il test modulare.
- I test non incrementali richiedono piรน lavoro โ combinare tutto prima significa che un singolo errore puรฒ costringere i tester a ricominciare da capo l'intero programma.
- Il test dell'incomprensione raddoppia โ uno stub che restituisce un valore irrealistico produce un'esecuzione positiva che non dimostra nulla.
- I test di debug spesso โ il codice di base presenta dei difetti, e il tempo impiegato per correggere un driver รจ tempo non impiegato per testare il modulo.
- ร necessario comprendere il codice โ l'orientamento a scatola bianca significa che un tester che non sa leggere il modulo non puรฒ progettare casi d'uso significativi per esso.
