what is system integration testing
Che cos'è il test di integrazione del sistema?
Il System Integration Testing (SIT) è il test complessivo dell'intero sistema che è composto da molti sottosistemi. L'obiettivo principale di SIT è garantire che tutte le dipendenze dei moduli software funzionino correttamente e l'integrità dei dati sia preservata tra moduli distinti dell'intero sistema.
SUT (System Under Test) può essere composto da hardware, database, software, una combinazione di hardware e software o un sistema che richiede l'interazione umana (HITL - Human in the Loop Testing).
Dal contesto dell'ingegneria del software e del test del software, SIT può essere considerato come un processo di test che controlla la co-occorrenza del sistema software con altri.
SIT ha un prerequisito in cui più sistemi integrati sottostanti sono già stati sottoposti e hanno superato i test di sistema. SIT verifica quindi le interazioni richieste tra questi sistemi nel loro complesso. I risultati del SIT vengono passati all'UAT (User Acceptance Testing).
Cosa imparerai:
- Necessità di test di integrazione del sistema
- La granularità di SIT
- Come eseguire il test di integrazione del sistema?
- Test di sistema vs test di integrazione del sistema
- Test di integrazione del sistema vs test di accettazione dell'utente
- Esempio SIT
- Tecniche SIT
- Conclusione
- Lettura consigliata
Necessità di test di integrazione del sistema
La funzione principale di SIT è quella di testare le dipendenze tra i diversi componenti del sistema e, quindi, il test di regressione è una parte importante di SIT.
Per i progetti collaborativi, SIT fa parte di STLC (Software Testing lifecycle). In genere, il fornitore del software conduce un ciclo pre-SIT prima che il cliente esegua i propri casi di test SIT.
Nella maggior parte delle organizzazioni che lavorano in progetti IT seguendo il modello di sprint Agile, il team QA conduce un ciclo di SIT prima di ogni rilascio. I difetti riscontrati nel SIT vengono rispediti al team di sviluppo e questi lavorano sulle correzioni.
Il rilascio MVP (Minimum Viable Product) dallo sprint va solo quando viene passato attraverso SIT.
SIT è necessario per esporre i guasti che si verificano quando avviene l'interazione tra i sottosistemi integrati.
Ci sono diversi componenti utilizzati nel sistema e non possono essere testati singolarmente. Anche se l'unità viene testata individualmente, esiste anche la possibilità che possa guastarsi se combinata nel sistema poiché ci sono molti problemi che sorgono quando i sottosistemi interagiscono tra loro.
Pertanto, SIT è molto richiesto per esporre e correggere gli errori prima di distribuire il sistema da parte dell'utente. SIT rileva i difetti in una fase iniziale e risparmia così il tempo e il costo per ripararli successivamente. Ti aiuta anche a ottenere un feedback anticipato sull'accettabilità del modulo.
La granularità di SIT
SIT può essere condotto a tre diversi livelli di granularità:
(i) Test intra-sistema: Si tratta di un test di integrazione di basso livello che mira a fondere i moduli insieme per costruire un sistema unificato.
(ii) Test inter-sistema: Si tratta di test di alto livello che richiedono l'interfacciamento di sistemi testati in modo indipendente.
(iii) Test di Pairwise: Qui vengono testati solo due sottosistemi interconnessi nell'intero sistema alla volta. Questo mira a garantire che i due sottosistemi possano funzionare bene se combinati insieme presumendo che gli altri sottosistemi funzionino già bene.
Come eseguire il test di integrazione del sistema?
Il modo più semplice per eseguire SIT è attraverso il metodo basato sui dati. Richiede un utilizzo minimo di strumenti di test del software.
app che ti consente di spiare altri telefoni
Innanzitutto, lo scambio di dati (importazione ed esportazione dati) avviene tra i componenti del sistema e quindi viene esaminato il comportamento di ciascun campo dati all'interno del singolo livello.
Una volta integrato il software, ci sono tre stati principali del flusso di dati come indicato di seguito:
# 1) Stato dei dati all'interno del livello di integrazione
Il livello di integrazione funge da interfaccia tra l'importazione e l'esportazione dei dati. L'esecuzione di SIT a questo livello richiede alcune conoscenze di base su determinate tecnologie come schema (XSD), XML, WSDL, DTD e EDI.
Le prestazioni dello scambio di dati possono essere esaminate a questo livello attraverso i passaggi seguenti:
- Convalidare le proprietà dei dati all'interno di questo livello rispetto a BRD / FRD / TRD (documento dei requisiti aziendali / documento dei requisiti funzionali / documento dei requisiti tecnici).
- Verifica incrociata la richiesta del servizio Web utilizzando XSD e WSDL.
- Eseguire alcuni unit test e convalidare i mapping e le richieste dei dati.
- Esamina i log del middleware.
# 2) Stato dei dati all'interno del livello del database
L'esecuzione di SIT a questo livello richiede una conoscenza di base di SQL e delle procedure memorizzate.
Le prestazioni dello scambio di dati a questo livello possono essere esaminate attraverso i passaggi seguenti:
- Verificare se tutti i dati dal livello di integrazione sono stati raggiunti correttamente al livello del database ed è stato eseguito il commit.
- Convalida le proprietà della tabella e della colonna rispetto a BRD / FRD / TRD.
- Convalida i vincoli e le regole di convalida dei dati applicate nel database secondo le specifiche aziendali.
- Controllare le procedure memorizzate per eventuali dati di elaborazione.
- Rivedi i log del server.
# 3) Stato dei dati all'interno del livello dell'applicazione
SIT può essere eseguito a questo livello attraverso i passaggi seguenti:
- Controlla se tutti i campi obbligatori sono visibili nell'interfaccia utente.
- Esegui alcuni casi di test positivi e negativi e convalida le proprietà dei dati.
Nota: Possono esserci molte combinazioni corrispondenti all'importazione e all'esportazione dei dati. Dovrai eseguire SIT per le migliori combinazioni considerando il tempo a tua disposizione.
Test di sistema vs test di integrazione del sistema
Differenze tra test di sistema e SIT:
SIT (System Integration Testing) | Test di sistema |
---|---|
SIT è principalmente fatto per verificare come i singoli moduli interagiscono tra loro quando integrati in un sistema nel suo insieme. | Il test del sistema viene eseguito principalmente per verificare se l'intero sistema funziona come previsto con riferimento ai requisiti specificati. |
Viene condotto dopo il test unitario e verrà eseguito ogni volta che un nuovo modulo viene aggiunto al sistema. | Viene condotto al livello finale, ovvero dopo il completamento del test di integrazione e subito prima della consegna del sistema per UAT. |
È un test di basso livello. | È un test di alto livello. |
I casi di test SIT si concentrano sull'interfaccia tra i componenti del sistema. | I casi di test, in questo caso, si concentrano sulla simulazione di scenari di vita reale. |
Test di integrazione del sistema vs test di accettazione dell'utente
Ecco la differenza tra SIT e UAT:
aggiunge un elemento a un array java
SIT (System Integration Testing) | UAT (test di accettazione dell'utente) |
---|---|
Questo test è dal punto di vista dell'interfacciamento tra i moduli. | Questo test è dal punto di vista dei requisiti dell'utente. |
SIT è fatto da sviluppatori e tester. | UAT viene eseguito da clienti e utenti finali. |
Fatto dopo il test dell'unità e prima del test del sistema. | Questo è l'ultimo livello di test e viene eseguito dopo il test del sistema. |
In generale, i problemi riscontrati in SIT sarebbero correlati al flusso di dati, al flusso di controllo, ecc. | I problemi riscontrati in UAT sarebbero generalmente come le funzionalità che non funzionano secondo i requisiti dell'utente. |
L'immagine seguente sui livelli di test renderebbe chiaro il flusso da Unit testing a UAT:
Esempio SIT
Supponiamo che un'azienda stia utilizzando un software per memorizzare i dettagli del cliente.
Questo software ha due schermate nell'interfaccia utente - Schermata 1 e Schermata 2, e ha un database. I dettagli immessi nella schermata 1 e nella schermata 2 vengono inseriti nel database. Al momento, l'azienda è soddisfatta di questo software.
Tuttavia, pochi anni dopo l'azienda scopre che il software non soddisfa i requisiti e che è necessario migliorarlo. Quindi, hanno sviluppato una schermata 3 e un database. Ora, questo sistema con la schermata 3 e un database è integrato con il software precedente / esistente.
Ora, il test eseguito sull'intero sistema dopo l'integrazione è chiamato test di integrazione del sistema. Qui, la coesistenza di un nuovo sistema con uno esistente viene testata per garantire che l'intero sistema integrato funzioni correttamente.
Tecniche SIT
Principalmente, ci sono 4 approcci per fare SIT:
- Approccio dall 'alto verso il basso
- Approccio bottom-up
- Approccio Sandwich
- Approccio Big Bang
L'approccio top-down e l'approccio bottom-up sono una sorta di approcci incrementali. Iniziamo prima la discussione con l'approccio dall'alto verso il basso.
# 1) Approccio dall'alto verso il basso:
Sotto questo, il test inizia con solo il modulo più in alto di un'applicazione, ovvero l'interfaccia utente che chiamiamo come driver di test.
La funzionalità dei moduli sottostanti è simulata con stub. Il modulo superiore è integrato con il modulo di livello inferiore uno per uno e successivamente la funzionalità viene testata.
Una volta completato ogni test, lo stub viene sostituito dal modulo reale. I moduli possono essere integrati sia in modo ampio che in modo approfondito. Il test continua fino alla creazione dell'intera applicazione.
Il vantaggio di questo approccio è che non sono necessari driver e i casi di test possono essere specificati in termini di funzionalità del sistema.
La sfida principale in questo tipo di approccio è la dipendenza dalla disponibilità di funzionalità del modulo di livello inferiore. Ci può essere un ritardo nei test fino a quando i moduli reali non vengono sostituiti con stub. Anche scrivere matrici è difficile.
miglior programma per convertire youtube in mp3
# 2) Approccio dal basso:
Elimina i limiti dell'approccio top-down.
In questo metodo, in primo luogo, i moduli di livello più basso vengono assemblati per formare cluster. Questi cluster fungono da sotto-funzione dell'applicazione. Quindi viene creato un driver per gestire l'input e l'output dello scenario di test. Successivamente, il cluster viene testato.
Una volta che il cluster è stato testato, il driver viene rimosso e il cluster viene combinato con il livello superiore successivo. Questo processo continua finché non viene raggiunta l'intera struttura dell'applicazione.
Non sono necessari stub in questo approccio. Diventa semplificato man mano che l'elaborazione si sposta verso l'alto e la necessità dei conducenti si riduce. Questo approccio è consigliabile per eseguire SIT per sistemi orientati agli oggetti, sistemi in tempo reale e sistemi con esigenze di prestazioni rigorose.
Tuttavia, la limitazione di questo approccio è il sottosistema più importante, ovvero l'interfaccia utente viene testata all'ultimo.
# 3) Approccio Sandwich:
Qui, gli approcci dall'alto verso il basso e dal basso verso l'alto discussi sopra sono combinati insieme.
Il sistema è percepito come se avesse tre livelli: il livello intermedio che è il livello di destinazione, uno sopra il target e uno sotto il target. Il test viene eseguito in entrambe le direzioni e si riunisce al livello target che si trova nel mezzo e questo è illustrato nell'immagine sottostante.
Strategia di test sandwich
Un vantaggio di questo approccio è che lo strato superiore e lo strato inferiore del sistema possono essere testati in parallelo. Tuttavia, il limite di questo approccio è che non verifica in modo esaustivo i singoli sottosistemi prima dell'integrazione.
Per eliminare questa limitazione, abbiamo modificato i test sandwich in cui l'integrazione degli strati superiore, medio e inferiore viene testata in parallelo utilizzando stub e driver.
# 4) Approccio Big Bang:
In questo approccio, l'integrazione viene eseguita quando tutti i moduli dell'applicazione sono completamente pronti. Il test viene eseguito dopo l'integrazione di tutti i moduli per verificare se il sistema integrato funziona o meno.
È difficile trovare la causa principale del problema in questo approccio poiché tutto è integrato in una volta rispetto ai test incrementali. Questo approccio viene generalmente adottato quando è richiesto un solo round di SIT.
Conclusione
In questo articolo, abbiamo appreso cos'è il System Integration Testing (SIT) e perché è importante eseguirlo.
Abbiamo compreso i concetti fondamentali, le tecniche, gli approcci ei metodi coinvolti nell'esecuzione di SIT. Abbiamo anche spiegato come SIT è diverso dall'UAT e dai test di sistema.
Spero ti sia piaciuto questo eccellente articolo !!
Lettura consigliata
- Che cos'è il test dei componenti o il test dei moduli (impara con esempi)
- Che cos'è il test di confronto (impara con esempi)
- Che cos'è il test di integrazione (tutorial con esempio di test di integrazione)
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Le differenze tra test unitari, test di integrazione e test funzionali
- Test funzionale vs test non funzionale
- Integrazione del selenio con JMeter
- Spock per integrazione e test funzionali con selenio