Che cos’è il test end to end: Quadro di test E2E con esempi

Che cos’è il test end-to-end: E2E Testing Framework with Examples

End-to-end testing è una metodologia di test del software per testare il flusso di un’applicazione dall’inizio alla fine. Lo scopo del test end-to-end è quello di simulare lo scenario reale dell’utente e convalidare il sistema sotto test e i suoi componenti per l’integrazione e l’integrità dei dati.

Nessuno vuole essere conosciuto per i suoi errori e la sua negligenza, e lo stesso vale per i tester. Quando ai tester viene assegnata un’applicazione da testare, da quel momento, si assumono la responsabilità e l’applicazione funge anche da piattaforma per mostrare le loro conoscenze pratiche e tecniche di test.

Così, per descriverlo tecnicamente, per assicurarsi che il test sia fatto completamente, è necessario eseguire “End to End testing”.

che cos'è l'end to end testing

In questo tutorial, impareremo cos’è l’End to End Testing, come si fa, perché è necessario, quali sono le matrici usate, come creare un test case specifico end to end e alcuni altri aspetti importanti. Impareremo anche i test di sistema e li confronteremo con i test end-to-end..

Real anche => End to End Training on a Live Project – Free Online QA Training.

Che cos’è il test end-to-end?

processo di test end-to-end

Il test end-to-end è una metodologia di test del software per testare un flusso di applicazioni dall’inizio alla fine. Lo scopo di questo test è quello di simulare lo scenario reale dell’utente e convalidare il sistema sotto test e i suoi componenti per l’integrazione e l’integrità dei dati.

Si esegue dall’inizio alla fine in scenari reali come la comunicazione dell’applicazione con l’hardware, la rete, il database e altre applicazioni.

La ragione principale per eseguire questo test è quella di determinare le varie dipendenze di un’applicazione e di garantire che le informazioni accurate siano comunicate tra i vari componenti del sistema. Di solito viene eseguito dopo il completamento dei test funzionali e di sistema di qualsiasi applicazione.

Prendiamo un esempio di Gmail:

esempio di test end to end

La verifica end to end di un account Gmail includerà i seguenti passi:

  1. Lancio di una pagina di login di Gmail tramite URL.
  2. Entrare nell’account Gmail usando credenziali valide.
  3. Accedere a Inbox. Aprire le email lette e non lette.
  4. Comporre una nuova email, rispondere o inoltrare una email.
  5. Aprire gli elementi inviati e controllare le email.
  6. Controllare le email nella cartella Spam
  7. Eliminare l’applicazione Gmail cliccando su ‘logout’

Strumenti di test end-to-end

Strumento consigliato:

#1) TestCraft

Logo TestCraft nuovo
Si consiglia di utilizzare uno strumento di automazione dei test end-to-end come TestCraft.

TestCraft è una piattaforma di automazione di test Selenium senza codice. La sua rivoluzionaria tecnologia AI e l’esclusiva modellazione visiva permettono di creare ed eseguire i test più velocemente, eliminando i costi di manutenzione dei test.

I tester creano scenari di test completamente automatizzati senza codificare. I clienti trovano i bug più velocemente, rilasciano più frequentemente, si integrano con l’approccio CI/CD e migliorano la qualità complessiva dei loro prodotti digitali. Tutto questo è la creazione di un’esperienza completa di test end-to-end.

=> Visita il sito TestCraft

Come funzionano i test end-to-end?

Per capire un po’ di più, scopriamo come funziona?

Prendiamo un esempio del settore bancario. Pochi di noi devono aver provato le azioni. Quando un titolare di un conto Demat, acquista una qualsiasi azione, una particolare percentuale di un importo deve essere data al broker. Quando l’azionista vende quell’azione, sia che ottenga un profitto o una perdita, una particolare percentuale dell’importo viene di nuovo data al broker. Tutte queste transazioni sono riflesse e gestite in conti. L’intero processo coinvolge il Risk Management.

Quando guardiamo l’esempio di cui sopra, tenendo il test End-to-End in mente, troveremo che l’intero processo include più numeri così come diversi livelli di transazioni. L’intero processo coinvolge molti sistemi che possono essere difficili da testare.

Metodi di test E2E

#1) Test orizzontale:

Questo metodo è usato molto comunemente. Si verifica orizzontalmente attraverso il contesto di più applicazioni. Questo metodo può facilmente verificarsi in una singola applicazione ERP (Enterprise Resource Planning). Prendiamo l’esempio di un’applicazione basata sul web di un sistema di ordini online. L’intero processo includerà i conti, lo stato dell’inventario dei prodotti e i dettagli di spedizione.

#2) Test verticale:

In questo metodo, tutte le transazioni di qualsiasi applicazione sono verificate e valutate dall’inizio alla fine. Ogni singolo strato dell’applicazione viene testato partendo dall’alto verso il basso. Prendiamo un esempio di un’applicazione basata sul web che usa codici HTML per raggiungere i server web. In questi casi, l’API è necessaria per generare codici SQL contro il database. Tutti questi complessi scenari informatici richiedono un’adeguata convalida e test dedicati. Quindi questo metodo è molto più difficile.

‘White Box testing’ così come ‘Black Box Testing’ sono entrambi associati a questo test. O in altre parole, possiamo dire che questa è la combinazione dei benefici di entrambi i test a scatola bianca e a scatola nera. A seconda del tipo di software che si sta sviluppando, a diversi livelli, entrambe le tecniche di test, cioè white box e black box testing, sono utilizzate come e quando richiesto. Fondamentalmente, il test End to End esegue l’approccio funzionale e architetturale per qualsiasi software o programma per convalidare le funzioni del sistema.

I tester amano la verifica End to End perché scrivere i casi di test dal punto di vista dell’utente e in uno scenario del mondo reale, può evitare i due errori comuni, cioè “perdere un bug” e “scrivere casi di test che non verificano gli scenari del mondo reale”. Questo fornisce ai tester un immenso senso di realizzazione.

Di seguito sono elencate alcune linee guida che dovrebbero essere tenute in mente mentre si progettano i casi di test per eseguire questo tipo di test:

  • I casi di test dovrebbero essere progettati dalla prospettiva dell’utente finale.
  • Dovrebbe concentrarsi sul test di alcune caratteristiche esistenti del sistema.
  • Si dovrebbero considerare scenari multipli per creare casi di test multipli.
  • Si dovrebbero creare insiemi diversi di casi di test per concentrarsi su scenari multipli del sistema.

Come eseguiamo qualsiasi caso di test, lo stesso accade con questo test. Se i casi di test sono ‘Pass’, cioè otteniamo l’output previsto, si dice che il sistema ha superato con successo il test End to End. Allo stesso modo, se il sistema non produce l’output desiderato, allora è richiesto un retest di un caso di test tenendo presente le aree di fallimento.

Perché eseguiamo test E2E?

Nello scenario attuale, come mostrato anche nel diagramma sopra, un moderno sistema software comprende la sua interconnessione con più sottosistemi. Questo ha reso i moderni sistemi software molto complicati.

Questi sottosistemi di cui stiamo parlando possono essere all’interno della stessa organizzazione o in molti casi possono essere anche di organizzazioni diverse. Inoltre, questi sottosistemi possono essere in qualche modo simili o diversi dal sistema attuale. Di conseguenza, se c’è un qualsiasi guasto o errore in un qualsiasi sotto-sistema, può influenzare negativamente l’intero sistema software portandolo al collasso.

Questi grandi rischi possono essere evitati e possono essere controllati da questo tipo di test:

  • Mantenere un controllo ed eseguire la verifica del flusso del sistema.
  • Aumentare le aree di copertura dei test di tutti i sottosistemi coinvolti nel sistema software.
  • Rileva eventuali problemi con i sottosistemi e quindi aumenta la produttività dell’intero sistema software.

Di seguito sono menzionate le poche attività che sono incluse nel processo end to end:

  • Uno studio approfondito dei requisiti per eseguire questo test.
  • Preparazione corretta degli ambienti di test.
  • A thorough study of Hardware and Software requirements.
  • Descriptions of all subsystems as well as main software system involved.
  • Enlist the roles and responsibilities for all the systems and subsystems involved.
  • Testing methods used under this testing as well as standards that are followed, its description.
  • Test cases designing as well as tracing requirement matrix.
  • Record or save the input and output data for each system.

E2E Testing Design Framework

End to End Testing-4

We will look into all the 3 categories one by one:

#1) User Functions: Le seguenti azioni dovrebbero essere eseguite come parte della costruzione delle Funzioni Utente:

  • Elenco delle caratteristiche dei sistemi software e dei loro sottosistemi interconnessi.
  • Per ogni funzione, tenere traccia delle azioni eseguite così come dei dati di Input e Output.
  • Trovare le relazioni, se ce ne sono, tra le diverse Funzioni Utente.
  • Trovare la natura delle diverse funzioni utente, cioè se sono indipendenti o sono riusabili.

#2) Condizioni: Le seguenti attività dovrebbero essere eseguite come parte della costruzione delle condizioni basate sulle funzioni utente:

  • Per ogni funzione utente, dovrebbe essere preparato un set di condizioni.
  • Il tempo, le condizioni dei dati e altri fattori che influenzano le funzioni utente possono essere considerati come parametri.

#3) Test Cases: I seguenti fattori dovrebbero essere considerati per la costruzione dei casi di test:

  • Per ogni scenario, uno o più casi di test dovrebbero essere creati per testare ogni funzionalità delle funzioni utente.
  • Ogni singola condizione dovrebbe essere arruolata come un caso di test separato.

Metriche Coinvolte

Passiamo alle prossime importanti attività o metriche coinvolte in questo test:

  1. Stato della preparazione dei casi di test: Questo può essere tracciato sotto forma di grafico per rappresentare il progresso dei casi di test pianificati che sono in preparazione.
  2. Tracciamento settimanale del progresso del test: Questo include la rappresentazione settimanale del progresso dell’esecuzione dei casi di test. Può essere riflesso attraverso la rappresentazione percentuale per un caso di successo, fallimento, eseguito, non eseguito, non valido, ecc: Il rapporto di stato dovrebbe essere preparato su base giornaliera per mostrare lo stato di esecuzione dei test case così come i difetti trovati e registrati in base alla loro gravità. Settimanalmente, la percentuale dei difetti aperti e chiusi dovrebbe essere calcolata. Inoltre, in base alla gravità e alla priorità dei difetti, lo stato dei difetti dovrebbe essere tracciato su base settimanale.
  3. Ambiente di test: Questo tiene traccia della durata dell’ambiente di test assegnata così come il tempo dell’ambiente di test effettivamente utilizzato durante l’esecuzione di questo test.

Abbiamo quasi visto tutti gli aspetti di questo test. Ora differenziamo il “test di sistema” e il “test end to end”. Ma prima di questo lasciate che vi dia un’idea di base del “System testing” in modo che possiamo facilmente differenziare le due forme di test del software.

System testing è la forma di test che include una serie di test diversi il cui scopo è quello di eseguire il test completo del sistema integrato. Il test di sistema è fondamentalmente una forma di test black-box in cui l’attenzione è sul funzionamento esterno dei sistemi software dal punto di vista dell’utente tenendo in considerazione le condizioni del mondo reale.

Il test di sistema comporta:

  • Testare un’applicazione completamente integrata che include il sistema principale.
  • Determinare i componenti che interagiscono tra loro e all’interno del sistema.
  • Verificare l’output desiderato sulla base dell’input fornito.
  • Analizzare l’esperienza dell’utente mentre usa vari aspetti dell’applicazione.

Sopra abbiamo visto la descrizione di base del test di sistema per capirlo. Ora, vedremo le differenze tra “System Testing” e “End to End testing”.

S.No. End to End Testing System Testing
1 Validates both the main Software system as well as all the interconnected Sub-Systems. As per the specifications provided in Requirement document, it just validates the software system.
2 The main emphasis is on verifying the end to end testing process flow. The main emphasis is on verifying and checking features and functionalities of the software system.
3 While performing testing, all the interfaces including the backend processes of the software system is taken under consideration. While performing testing, only the functional and the non- functional areas and their features are considered for testing.
4 End to End testing is executed /performed after the completion of System testing of any software system. System testing is basically performed after the completion of integration testing of software system.
5 Manual testing is mostly preferred for performing end to End testing as these form of testing involves testing of external interfaces also which can be very difficult to automate at times. And will make the whole process very complex. Both manual and automation testing can be performed as a part of System testing.

Conclusion

Hope you learned various aspects of End to End tests like its processes, metrics, and the difference between System testing and End to End testing.

Per qualsiasi rilascio commerciale del software, la verifica End to End gioca un ruolo importante in quanto testa l’intera applicazione in un ambiente che imita esattamente gli utenti del mondo reale come la comunicazione di rete, l’interazione del database, ecc.

La maggior parte dei test End to End viene eseguita manualmente in quanto il costo dell’automazione di tali casi di test è troppo alto per poter essere sostenuto da ogni organizzazione. Questo non è solo vantaggioso per la convalida del sistema, ma può essere considerato utile anche per testare l’integrazione esterna.

Facci sapere se hai domande sul test end-to-end.

Ultimo aggiornamento: 18 febbraio 2021

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.