Cosa sono e differenza tra stub e driver nel testing software

Cosa sono e differenza tra stub e driver nel testing software

Introduzione

Nel ciclo di vita del test del software, ci sono numerosi componenti che svolgono un ruolo importante nel rendere il processo di test accurato e senza problemi. Ogni elemento relativo ai test si sforza di migliorare la sua qualità e aiuta a fornire risultati e servizi accurati e attesi che sono conformi alle specifiche definite. Stub e driver sono due di questi elementi utilizzati nel processo di test del software, che agiscono come una sostituzione temporanea di un modulo. Questi sono parte integrante del processo di test del software e dello sviluppo generale del software. Pertanto, per aiutarti a comprendere il significato di stub e driver nel test del software, ecco una discussione elaborata sullo stesso.

Cosa si intende per stub e driver?

Nel campo del test del software, il termine stub e driver si riferisce alla replica dei moduli, che funge da sostituto del modulo non sviluppato o mancante. Gli stub e le unità sono specificamente sviluppati per soddisfare i requisiti necessari dei moduli non disponibili e sono estremamente utili per ottenere i risultati attesi.

Stub e driver sono due tipi di test harness, ovvero una raccolta di software e test configurati insieme per testare un’unità di un programma stimolando una varietà di condizioni e monitorando costantemente i suoi output e il suo comportamento. Stub e driver vengono utilizzati rispettivamente nei test di integrazione top-down e bottom-up e vengono creati principalmente a scopo di test.

Cosa sono e differenza tra stub e driver nel testing software

Definizione di stub

Gli stub vengono utilizzati per testare i moduli e vengono creati dal team di tester durante il processo di test di integrazione top-down. Con l’assistenza di questi stub di test i tester sono in grado di stimolare il comportamento dei moduli di livello inferiore non ancora integrati con il software. Inoltre, aiuta a stimolare l’attività dei componenti mancanti.

Tipi di stub

Esistono fondamentalmente quattro tipi di stub utilizzati nell’approccio top-down del test di integrazione, che sono menzionati di seguito:

  • Visualizza il messaggio di traccia.
  • Vengono visualizzati i valori del parametro.
  • Restituisce i valori utilizzati dai moduli.
  • Restituisce i valori selezionati dai parametri che sono stati utilizzati dai moduli in fase di test.

Definizione di driver

I driver, come gli stub, vengono utilizzati dai tester del software per soddisfare i requisiti di componenti e moduli mancanti o incompleti. Questi sono generalmente complessi degli stub e vengono sviluppati durante l’ approccio Bottom-Up del test di integrazione. I driver possono essere utilizzati per testare i livelli inferiori del codice, quando il livello superiore dei codici o dei moduli non è sviluppato. I driver agiscono come pseudo codici che vengono utilizzati principalmente quando i moduli stub sono pronti, ma i moduli primari non sono pronti.

Esempio di stub e driver

Considera un esempio di un’applicazione web, che consiste di 4 moduli, ovvero Modulo-AModulo-BModulo-C e Modulo-D. Ciascuno dei seguenti moduli è responsabile di alcune attività o funzionalità specifiche, come sotto:

Considera un esempio di un’applicazione web, che consiste di 4 moduli, ovvero Modulo-A, Modulo-B, Modulo-C e Modulo-D. Ciascuno dei seguenti moduli è responsabile di alcune attività o funzionalità specifiche, come sotto

  1. Modulo-A – Pagina di accesso dell’applicazione web.
  2. Modulo-B – Home page dell’applicazione web.
  3. Modulo-C – Impostazioni di stampa.
  4. Modulo-D – Pagina di disconnessione.
  5. i moduli A, B, C e D coinvolgono le interdipendenze di ogni modulo rispetto agli altri.

È sempre preferibile eseguire il test, in parallelo, al processo di sviluppo. Pertanto, implica che i successivi test debbano essere eseguiti, immediatamente dopo lo sviluppo di ciascun modulo.

Il Modulo-A sarà testato non appena si svilupperà. Tuttavia, per eseguire e convalidare le procedure di test in relazione al modulo-A, si sollecita la necessità del modulo-B, che non è ancora sviluppato. La funzionalità attesa della pagina di login (modulo-A) potrebbe essere convalidata, solo se è diretta alla home page (modulo-B), in base agli input validi e corretti.

Tuttavia, in caso di non disponibilità del Modulo-B, non sarà possibile testare il modulo-A. Questi tipi di circostanze, introduce gli stub e i driver nel processo di test del software. Un modulo fittizio, che rappresenta la funzionalità o caratteristica di base del modulo-B, è in fase di sviluppo e, successivamente, viene integrato con il modulo-A, per eseguire i test in modo efficiente.

Allo stesso modo, stub e driver vengono utilizzati per soddisfare i requisiti di altri moduli, come

Pagina di disconnessione (Modulo-D), deve essere indirizzata alla pagina di accesso (Modulo-A), dopo essere usciti con successo dall’applicazione. In caso di indisponibilità del Modulo-A, stub e driver funzioneranno in sostituzione dello stesso, al fine di eseguire il test del modulo-D.

Perché sono necessari stub e driver?

Tuttavia, l’importanza di stub e driver è immensa durante il test del software, ma la sua rilevanza e il requisito terminano una volta creato il modulo equivalente. Poiché agiscono come una sostituzione temporanea dei moduli, questo ruolo nel test culmina una volta generato l’output finale. Pertanto, questi pseudo moduli o stub e driver vengono utilizzati principalmente per i seguenti motivi:

  • Comunemente utilizzato nel porting, nell’elaborazione distribuita e nello sviluppo software generale.
  • Utilizzato per soddisfare i requisiti necessari per i moduli non disponibili.
  • Sono necessari quando il sistema deve interagire con sistemi esterni.
  • Stub e driver vengono utilizzati per testare i moduli.
  • Gli stub vengono utilizzati per testare la funzionalità dei moduli, mentre i driver vengono utilizzati quando il modulo principale non è pronto.

Stub e driver sono uguali?

Sì, fondamentalmente le caratteristiche e lo scopo di stub e driver sono gli stessi. Entrambi funzionano come sostituto del modulo mancante o non disponibile. Tuttavia, la differenza tra loro può essere visualizzata durante il test di integrazione.

  • Gli stub vengono comunemente chiamati “programmi chiamati” e vengono utilizzati nell’approccio dall’alto in basso del test di integrazione, mentre i driver sono “programma chiamante” e vengono utilizzati nel test di integrazione dal basso verso l’alto.
  • Gli stub sono simili ai componenti, che sono in prova, in una forma molto semplice e di base, mentre il driver viene utilizzato per invocare il componente che deve essere testato.
  • Gli stub, di solito, sono considerati per i moduli di basso livello, mentre i driver rappresentano i moduli di alto livello.

Differenze principali tra stub e driver

  • Stubs and Drivers funziona come un sostituto per il modulo mancante o non disponibile.
  • Sono sviluppati appositamente, per ogni modulo, avendo funzionalità differenti.
  • In generale, sviluppatori e unit tester sono coinvolti nello sviluppo di stub e driver.
  • Sebbene fornisce facilità di esecuzione dei singoli componenti, senza preoccuparsi della disponibilità di altri moduli, ma è un processo che richiede tempo, poiché richiede lo sviluppo di un dummy per ogni modulo mancante.
  • Il loro utilizzo più comune può essere visto nei test incrementali di integrazione, dove gli stub vengono utilizzati nell’approccio dall’alto in basso e i driver in un approccio dal basso verso l’alto.

Conclusioni

Per concludere possiamo dire che, il processo di test del software non può essere completato con componenti e moduli incompleti. Pertanto, per garantire l’accuratezza e l’efficacia dei test, è fondamentale creare stub e driver che soddisfino i requisiti di moduli incompleti o non sviluppati e agiscano come pseudo moduli o codici che vengono richiesti per testare la funzionalità dei moduli principali. In breve, non c’è dubbio che stub e driver siano parte integrante del processo di test del software.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *