Test end-to-end
End To End Testing è un metodo di test del software che convalida l'intero software dall'inizio alla fine insieme alla sua integrazione con interfacce esterne. Lo scopo del test end-to-end è testare l'intero software per le dipendenze, l'integrità dei dati e la comunicazione con altri sistemi, interfacce e database per esercitare una produzione completa come uno scenario.
Insieme al sistema software, convalida anche l'elaborazione batch / dati da altri sistemi a monte / a valle. Da qui il nome "End-to-End" . Il test end-to-end viene solitamente eseguito dopo il test funzionale e di sistema. Utilizza la produzione effettiva come i dati e l'ambiente di test per simulare le impostazioni in tempo reale. Il test end-to-end è anche chiamato test a catena .
Perché testare end to end?
Il test end-to-end verifica il flusso completo del sistema e aumenta la fiducia rilevando i problemi e aumentando la copertura dei test dei sottosistemi. I sistemi software moderni sono complessi e interconnessi con più sottosistemi che possono differire dai sistemi attuali. L'intero sistema può collassare in caso di guasto di qualsiasi sottosistema che rappresenta un rischio maggiore che può essere evitato mediante test end-to-end.
Processo di test end-to-end:
Il diagramma seguente offre una panoramica del processo di test End to End.
Le principali attività coinvolte nel test End to End sono:
- Studio dei requisiti di test end to end
- Configurazione dell'ambiente di test e requisiti hardware / software
- Descrivi tutti i sistemi e i relativi processi dei sottosistemi.
- Descrizione dei ruoli e delle responsabilità per tutti i sistemi
- Metodologia e standard di prova
- Monitoraggio dei requisiti end-to-end e progettazione dei casi di test
- Dati di input e output per ogni sistema
Come creare casi di test end-to-end?
Il framework End to End Testing Design è composto da tre parti
- Costruisci funzioni utente
- Condizioni di costruzione
- Crea casi di test
Costruisci funzioni utente
Le seguenti attività dovrebbero essere svolte come parte delle funzioni utente di compilazione:
- Elenca le caratteristiche del sistema e dei loro componenti interconnessi
- Elenca i dati di input, l'azione e i dati di output per ciascuna caratteristica o funzione
- Identifica le relazioni tra le funzioni
- Determina se la funzione può essere riutilizzabile o indipendente
Per esempio -Considerare uno scenario in cui si effettua il login nel vostro conto in banca e trasferire i soldi a un altro account da qualche altra banca (3 ° sub-sistema dei partiti)
- Accedi al sistema bancario
- Verifica l'importo del saldo nel conto
- Trasferire una certa quantità dal tuo conto a qualche altro conto bancario (3 ° partito sotto-sistema)
- Controlla il saldo del tuo account più recente
- Esci dall'applicazione
Condizioni di compilazione basate sulla funzione utente
Le seguenti attività vengono eseguite come parte delle condizioni di costruzione:
- Creazione di un insieme di condizioni per ciascuna funzione utente definita
- Le condizioni includono sequenza, tempistica e condizioni dei dati
Ad esempio -Controllo di più condizioni come
Pagina di login
- Nome utente e password non validi
- Controllo con nome utente e password validi
- Controllo della sicurezza della password
- Controllo dei messaggi di errore
Importo del saldo
- Verificare il saldo corrente dopo 24 ore. (Se il bonifico viene inviato a una banca diversa)
- Verificare il messaggio di errore se l'importo del trasferimento è maggiore dell'importo del saldo corrente
Costruisci uno scenario di test
Creazione dello scenario di test per la funzione utente definita
In questo caso,
- Accedi al sistema
- Verifica dell'importo del saldo bancario
- Trasferisci l'importo del saldo bancario
Crea più casi di test
Crea uno o più casi di test per ogni scenario definito. I casi di test possono includere ciascuna condizione come un singolo caso di test.
Metriche per i test end-to-end:
Di seguito sono riportate alcune delle molte metriche utilizzate per i test end-to-end.
- Stato di preparazione dello scenario di test : fornisce l'avanzamento della preparazione dello scenario di test rispetto a quello pianificato
- Avanzamento test settimanale: fornisce dettagli settimanali sulla percentuale di completamento del test: non riuscito, non eseguito ed eseguito rispetto ai test di esecuzione pianificati.
- Stato e dettagli dei difetti : fornisce la percentuale di difetti aperti e chiusi entro la settimana. Inoltre, distribuzione settimanale dei difetti basata su gravità e priorità
- Disponibilità dell'ambiente: numero totale di ore "up" / numero totale di ore pianificate al giorno per il test
Test end-to-end vs test di sistema
Test end-to-end | Test di sistema |
---|---|
Convalida il sistema software così come i sottosistemi interconnessi | Convalida solo il sistema software secondo le specifiche dei requisiti. |
Controlla il flusso completo del processo end-to-end. | Controlla le funzionalità e le caratteristiche del sistema. |
Tutte le interfacce, i sistemi di backend saranno presi in considerazione per il test | Verranno presi in considerazione test funzionali e non funzionali |
Viene eseguito una volta completato il test del sistema. | Viene eseguito dopo il test di integrazione. |
Il test end to end implica il controllo delle interfacce esterne che possono essere complesse da automatizzare. Quindi è preferibile il test manuale. | Sia Manuale che Automazione possono essere eseguiti per il test del sistema |
Conclusione
Nell'ingegneria del software, il test end to end è il processo che verifica un sistema software insieme ai suoi sottosistemi. La sfida più grande in questo test è avere una conoscenza sufficiente dell'intero sistema e di un sottosistema interconnesso.