Il retesting è un processo di validazione di una specifica funzione la cui funzionalità ha fallito durante il test precedente. Si effettua per verificare se i casi di test segnalati con alcuni bug durante il tempo di esecuzione sono stati risolti.
Nel ciclo di vita dello sviluppo del software, gli elementi cruciali principali sono il test della funzionalità del software, delle prestazioni, della sicurezza e di altri aspetti, che comporta il controllo del software per eventuali errori. Tuttavia, la sfida principale è validare il funzionamento del software in linea con il pubblico target. È fondamentale garantire l’efficacia e la affidabilità del software sviluppato, e qui il retesting si inserisce come salvatore.
L’obiettivo primario del test del software è identificare l’errore o i bug nell’applicazione software. Gli ingegneri del test sono responsabili di determinare questi e segnalare al team di sviluppo per una valutazione successiva. In seguito, tali problemi vengono risolti e inviati all’ingegnere del test per una re-verifica.
I retest garantiscono che non si verifichino ulteriori problemi durante il rilascio del software. Un tale processo può essere eseguito manualmente utilizzando un set specifico di casi di test. Indipendentemente dalla complessità coinvolta nei retest, dovremmo considerare questo come la parte fondamentale del test del software per fornire prodotti di alta qualità.
Che cos’è il Retesting?
Dovresti essere consapevole del fatto che trovare bug durante il test del software è il ruolo del test engineer. Tra tali compiti, sono responsabili di risolvere e inviare l’errore o il problema di nuovo ai sviluppatori, assicurandosi che risolvano tale errore o problema. Ecco che arriva il retesting. Comprendiamolo più chiaramente.
Nello sviluppo del software, il retesting è il processo di validazione di un build fornito dai programmatori per garantire che l’errore sia stato risolto. In termini semplici, immagina di testare un software che è “Build Number 1” e se si verifica un errore, la sua ID è, ad esempio, A1. Successivamente, il tester testa tale errore e viene chiamato “Build Number 2”.
In altre parole, l’errore identificato in Build Number 1 viene testato nuovamente in Build Number 2 per verificare se il programmatore ha risolto l’errore. Il tester qui retesta i casi falliti per validare la correzione apportata dai programmatori.
Fa parte del ciclo di vita dei difetti dove il test dei casi di test falliti viene eseguito, che erano non funzionali al momento del test precedente e sono stati risolti dai programmatori.
Segui questi punti per ottenere maggiori informazioni sul processo di retest:
- I casi di test falliti corrispondenti ai bug segnalati vengono retestati.
- Un altro nome per il retesting è il testing di conferma.
- Per l’errore segnalato nel nuovo build, dovrebbero essere utilizzati dati di test e processi simili per validare la sua riproducibilità.
A comprehensive example of the retest process will help you get a clearer picture.
Perché è importante il retesting?
Il retesting, essendo parte del ciclo di vita del test del software, racchiude diverse significanze relative alla consegna efficace del prodotto. Inesorabilmente, è la parte principale del processo standard di test del software. Ma, in aggiunta, conferisce al prodotto un ulteriore strato di garanzia, verificando le sue prestazioni tecniche e funzionali prima della sua pubblicazione agli utenti finali.
Le aziende dovrebbero garantire applicazioni digitali di alta qualità in questo mercato di sviluppo software altamente competitivo. Ciò richiede nessun compromesso sulla qualità del prodotto finale.
Le piattaforme di test automatizzato possono spesso aiutarti a ottenere un miglior ROI per il tuo prodotto rilasciato. Tuttavia, un re-test dà maggiore fiducia verificando ogni bug. Rispetto al processo di test iniziale, non aggiunge costi extra alle risorse di test né richiede molto tempo. Si sa che viene eseguito nello stesso ambiente con dati simili relativi ai casi di test falliti.
Inoltre, il processo di re-test affronta problemi specifici o bug segnalati in moduli specifici dell’applicazione. Pertanto, non è necessario impostare un nuovo ambiente di test e dedicare più sforzi per verificare la qualità del prodotto con test end-to-end.
Esempio di Re-testing
Sebbene l’esempio sopra spiegato possa aiutarti a ottenere informazioni superficiali, di seguito affronteremo un esempio simile, con una visione più profonda del suo processo.
Scenario
Come parte del processo di sviluppo software, viene rilasciato Build 2.0. Durante i suoi test, il team ha identificato e rilasciato un difetto (diciamo, Defect 2.0.1). Un difetto simile, Defect 2.0.1, deve essere testato in Build 2.1 (nel caso in cui questo difetto sia indicato nelle Note sulla versione di Build 2.1) per assicurarsi che il difetto sia stato risolto.
Processo di Esecuzione
Secondo il Ciclo di Vita dei Bug, una volta registrato il bug, viene immediatamente condiviso o segnalato al team di sviluppo. Successivamente, il suo stato viene contrassegnato come “Nuovo”. A questo punto, spetta al team di sviluppo accettare o rifiutare il bug.
In caso di accettazione del bug, il developer lo risolverà e poi lo rilascerà nella fase successiva. Il suo stato sarà contrassegnato come “Pronto per il QA”. Al momento, i tester validano il bug per determinare la sua soluzione. Pertanto, si può affermare che il retest è un test pianificato.
Il tester utilizza gli stessi casi di test e i dati di test nel precedente build. Se non viene trovato alcun bug, il suo stato sarà contrassegnato come “Corretto”. Al contrario, lo stato rimane “Non Corretto”. Successivamente, il Documento di Ritesto dei Defect viene condiviso con il team di sviluppo.
Per avere una buona comprensione dei ritesti, è necessario conoscere le loro caratteristiche principali. Ciò non solo aiuterà a diversificare il test, ma anche a ampliare le dimensioni per la costruzione della qualità del software.
Caratteristiche del Ritesting
Un’esperienza utente di alto livello nel testing software segue un processo iterativo. Per questo, mantenere informazioni sulle principali caratteristiche di un processo di retest consente una migliore consegna dell’applicazione.
Di seguito sono elencate le sue caratteristiche principali:
- Viene implementato nello stesso documento del precedente e nei processi del nuovo build.
- L’esecuzione avviene quando casi di test specifici sono considerati falliti.
- Si verifica quando un software completo richiede ritesti per validare la sua qualità.
- È impossibile automatizzare i casi di test che vengono ri-testati.
- Il processo di ri-testazione dipende dalla squadra di sviluppo, che è responsabile dell’accettazione o del rifiuto del bug.
- Vengono considerate dettagli granulari per l’aspetto modificato della funzionalità dal tester.
Quando si dovrebbe eseguire il ri-testing?
Come tester, è importante decidere quando si dovrebbe effettuare un ri-test. La risposta a questa domanda è semplice. Innanzitutto, è necessario considerare le dimensioni e le caratteristiche del progetto che richiedono test.
Ad esempio, il ri-testing diventa normale se un’organizzazione possiede una vasta gamma di prodotti distribuiti attraverso vari prodotti. La ragione è la necessità di rilasciare tempestivamente l’applicazione software, poiché ciò può anche influenzare altre parti dei sistemi in modi diversi.
Ci sono diversi scenari in cui possiamo utilizzare il ri-testing come processo. Alcuni di essi sono spiegati di seguito:
Alla Detezione del Bug Rifiutato
Può accadere molte volte quando il bug segnalato dal tester viene rifiutato dal developer e contrassegnato come “Non Riproducibile”. In tali casi, si effettua un ri-test per lo stesso bug per informare il developer che il problema è riproducibile e valido.
Necessità di Correzione del Bug Evidente nelle Note di Rilascio
Nel processo di sviluppo del software, quando la squadra di sviluppo rilascia una nuova build, prevale il ri-testing. Qui, il tester testa i bug precedentemente segnalati per assicurarsi della loro correzione.
Richiesta del Cliente
La qualità del software è una preoccupazione principale per ogni organizzazione. Per garantirla, un cliente potrebbe richiedere di eseguire un nuovo test per determinati casi d’uso per verificare la qualità del prodotto.
Altri scenari
È importante notare che ogni volta che un bug viene risolto, vengono creati ulteriori casi di test dai sviluppatori. Ciò indica che dovrebbero essere dedicati più tempi alla scrittura dei casi di test piuttosto che alla loro risoluzione. Tuttavia, anche se si ha fiducia nel proprio codebase, è comunque vitale ripetere i test su parti cruciali dell’applicazione in occasione di ogni rilascio.
Ad esempio, una nuova funzionalità può causare comportamenti imprevisti e sfide nel rilevare i bug al primo tentativo. Potrebbe essere possibile solo quando tali problemi diventano evidenti durante i test o in base ai feedback degli utenti. Questa situazione richiede di eseguire un “retesting” per superare lo scetticismo verso i bug recentemente identificati.
Vantaggi del Retesting
La qualità di un’applicazione software dipende dal successo del processo di retest. Assicura la stabilità dell’applicazione nel ciclo di vita dello sviluppo software.
Alcuni dei suoi principali vantaggi sono evidenziati di seguito:
- Verifica se il bug è stato risolto o meno.
- Migliora la qualità del prodotto e dell’applicazione sviluppata.
- Garantisce che il funzionamento dell’applicazione o del prodotto sia secondo le aspettative dell’utente.
- Involucro meno tempo nella risoluzione dei bug poiché l’issue specificata viene indirizzata.
- Funziona con gli stessi dati e processi con una nuova build per il suo funzionamento.
- Non richiede l’impostazione di un nuovo ambiente di test.
Nonostante presenti diversi vantaggi, il processo di ritesto presenta anche alcuni svantaggi. Comprendiamo questo dalla sezione sottostante.
Svantaggi del Ritesto
A retest process also has some drawbacks, which can hamper or create challenges in the testing process. Knowing such limitations will help you address those while retesting to avoid any issues.
Comprendiamo quali sono:
- Richiede una nuova build per l’autenticazione dei difetti.
- I casi di prova dei ritesti possono essere recuperati solo quando viene avviato.
- Non è possibile automatizzare i casi di prova per il ritesto.
- Il ritesto dei casi di prova falliti richiede tempo e sforzi aggiuntivi.
- I ritesti non possono essere garantiti come parte del processo di testing tranne nei casi in cui viene identificato o corretto un bug.
Risolvendo gli svantaggi dei ritesti, si può dire che un ritesto può essere impegnativo per alcuni tester. Soprattutto il nuovo tester spesso cerca un modo alternativo per risolvere il problema. Qui, ciò che li confonde è il termine testing di regressione. Tuttavia, il testing di regressione e il ritesto presentano differenze significative.
Qual è la differenza tra Testing di Regressione e Ritesto?
Se sei nuovo nel testing del software, potresti pensare che i termini “ritesto” e “testing di regressione” siano simili. Tuttavia, è un dato di fatto che entrambi sono diversi, sebbene correlati. Esploreremo in questa sezione come il processo di ritesto è distinto dal testing di regressione.
Innanzitutto, regression e retesting fanno parte della validazione del software nel processo di sviluppo del software. Il retest viene svolto principalmente alla fine di una specifica fase di sviluppo. In altre parole, quando si vuole assicurare che un prodotto funzionante non sia pieno di bug riscontrati in precedenti test, si procede con un retest. Al contrario, il test di regressione può essere eseguito in qualsiasi fase di sviluppo per garantire il corretto funzionamento di un aspetto specifico del codice.
In alcune situazioni, i tester possono eseguire retest semplicemente leggendo le precedenti uscite di test o rapporti per verificare eventuali problemi e le loro soluzioni. Un’indagine approfondita può anche essere condotta controllando individualmente i casi precedenti per assicurarsi che siano gestiti. Tuttavia, il test di regressione viene principalmente svolto attraverso un piano di test e la sua esecuzione su ogni versione dell’applicazione, iniziando dalla più recente. In tale approccio, è necessario garantire che ogni modifica all’applicazione venga testata in modo appropriato.
Di seguito sono riportati alcuni punti chiave sulle differenze tra i processi di regressione e retest:
Component | Regression Testing | Retesting |
---|---|---|
Purpose | It is executed to check the impact of the code level changes, which often require retests. | It is done to ensure changes executed in the software that doesn’t lead to regressions. |
Method | It is executed with the use of automation testing tools. | It is done manually as it checks for particular defects |
Target | It is done to check existing bugs in the software. | Retest verifies the functionality of the software. |
Time involved | It is more time-consuming because extensive research is needed in previous software versions. | It is less time-consuming because a specific defect is only retested. |
Focus | It aims to check if the functionality of prior versions is maintained corresponding to the update or change to the application. | It does not focus on the functionality of previous versions. Instead, it aims to ensure the restoration of functionality following a bug fix. |
Comprendere i test di regressione e il retest con un esempio
La differenza tra regressione e retesting può essere spiegata con l’esempio seguente.
Supponiamo che ci sia un problema nella pagina di accesso di un’applicazione web bancaria dove i clienti non possono accedere ai loro dettagli dell’account. Anche se sono stati invitati a provare a effettuare nuovamente l’accesso, non sono riusciti a effettuare l’accesso al loro account. Il team di supporto ha esaminato il problema e ha garantito che una cosa del genere non accadesse più.
Il team di sviluppo ha apportato modifiche a livello di codice per garantire l’accesso riuscito alla pagina dell’account in ogni browser. Tuttavia, il test qui non coinvolge solo una pagina di accesso, ma garantisce anche che le modifiche al codice non influiscano su altre funzionalità delle applicazioni web bancarie. Qui, il test effettuato verificherà l’applicazione per modifiche. Questo si chiama test di regressione.
Ricontrollando il problema corrispondente alla modifica effettuata, il team di test ha provato a accedere alla pagina, ma non è riuscito. Il team di supporto ha comunicato con lo sviluppatore coinvolto e ha spiegato il problema. Tuttavia, lo sviluppatore ci ha informato che avevano risolto il problema. Il team QA testa il funzionamento dell’applicazione web per verificare se il problema è risolto, chiamato ri-test.
Quindi, un ri-test è essenziale nel processo di test del software ed è un prerequisito per garantire il suo funzionamento.
Abbiamo affrontato l’importanza del processo di ri-test, che dà un’idea della sua relazione con il test del software. Innanzitutto, comprendiamo alcuni dei suoi tipici utilizzi nel test del software. Ecco alcune delle applicazioni dei ri-test nel test del software:
- Applicato per correggere eventuali errori specifici o bug, che richiedono verifica.
- Controlla il funzionamento dell’intero sistema per validare la funzionalità finale.
- Verifica la qualità di una particolare parte del sistema.
Fasi di Ri-test
Il processo di ri-test prevede un approccio manuale. Considera anche le fasi principali per testare l’applicazione software.
Di seguito sono elencate le fasi coinvolte in un processo di ri-test:
1. Selezione dei Casi di Test
La selezione dei test è un approccio in cui specifici casi di test dall’insieme dei test vengono eseguiti per verificare se la correzione degli errori nel software è stata effettuata o meno. Generalmente, i casi di test sono distinti in riutilizzabili e obsoleti, dove i casi di test riutilizzabili vengono utilizzati per eseguire il re-test.
2. Applicazione dei Casi di Test
L’obiettivo principale del processo di re-test è confrontare l’output atteso dei casi di test. Pertanto, devono essere applicati i casi di test con risultati pre-eseguiti standard.
3. Stima del Tempo
Nell’identificazione dei casi di test, i tester dovrebbero considerare il tempo totale di esecuzione coinvolto nei re-test. Fattori come l’analisi dei casi di test possono aggiungere tempo extra.
4. Tracciamento dei Moduli
In situazioni di fallimento dei casi di test, è una sfida importante identificare i moduli corrispondenti per l’errore. Pertanto, la parte del software è divisa in diversi moduli individuali.
Per fare ciò, vengono implementati piccoli casi di test per specifici moduli individuali. I moduli che non mostrano risultati attesi sono contrassegnati come moduli difettosi. In questo modo, il tracciamento dei moduli difettosi viene completato.
5. Re-test del Modulo
Re-testare il modulo difettoso fino a quando non viene risolto.
6. Reintegrazione del Modulo
Dopo la risoluzione del modulo difettoso, l’integrazione completa dei casi di test viene applicata al software. Inoltre, viene controllata la funzionalità del software.
Come Eseguire il Ritesto?
Il ritesto dell’applicazione software può essere effettuato solo attraverso un approccio manuale. Come evidenziato nella sezione precedente, il motivo principale è che si concentra solo sulla specifica falla. Pertanto, è appropriato per l’approccio di test manuale poiché può essere fatto in modo accurato piuttosto che utilizzando il metodo automatico.
Per eseguire un ritesto, il team di test dovrebbe avere una buona conoscenza dello stato attuale dell’applicazione software. Questa conoscenza del funzionamento del software e di come renderlo efficace correggendo i bug agevola l’approccio manuale.
Il tester esegue manualmente i casi di test per validare le modifiche apportate all’applicazione. Si fa per assicurarsi che tali modifiche non causino ulteriori difetti e che i casi falliti identificati siano eliminati nella nuova versione. È possibile eseguire ritesti manuali dopo aver apportato modifiche al software, risolto i difetti e completato il ciclo di test del software.
È possibile seguire i seguenti passaggi per eseguire un ritesto manuale:
- Determinare le modifiche apportate all’applicazione software e l’area che richiede ritesti.
- Rivedere e aggiornare i casi di test che richiedono ritesti in linea con le modifiche.
- I casi di test sviluppati dovrebbero essere eseguiti manualmente.
- Analizzare l’output effettivo con il risultato atteso per valutare che le modifiche non causino nuovi difetti.
- Se viene identificato un difetto, documentarlo e segnalarlo al team di sviluppo.
- Ripetere il processo di ritesto manuale fino a quando tutti i difetti sono risolti.
Tuttavia, potresti chiederti perché il ritest non possa essere effettuato attraverso un approccio automatico. Ci sono diverse ragioni per questo. Prendiamo un’idea dal paragrafo sottostante:
L’automatizzazione del ritest non è possibile?
Non è possibile ritestare un’applicazione con un approccio automatico. Alcune ragioni comuni sono evidenziate di seguito:
- Complessità: Alcuni dei casi falliti possono essere dovuti alla complessità del software. Pertanto, tali casi falliti sono difficili da automatizzare.
- Risultato imprevisto: Le modifiche apportate nel software possono dare risultati imprevisti. I casi falliti in tali situazioni richiedono test manuali per verificare il risultato.
- Costo e risorse: Automatizzare il processo di ritest può essere costoso poiché questo comporta l’uso di hardware e software aggiuntivi. È problematico giustificare il costo di piccole modifiche nel software.
- Restrizione temporale: L’automatizzazione del processo di ritest comporta un enorme investimento di tempo, e poiché potrebbe esserci pressione per una release tempestiva, un approccio manuale è la migliore opzione.
Cose da considerare durante il ritest
A questo punto, abbiamo capito l’importanza di un processo di ritest e come eseguirlo. Tuttavia, la presenza di considerazioni valide nei ritest richiede attenzione. Di seguito sono riportati alcuni punti che devono essere presi in considerazione.
- Il processo di ritest richiede la formazione di una nuova build del software quando il problema è risolto in base al primo report.
- Esiste la possibilità che il software inviato per i ritesti possa subire modifiche al livello del codice. Pertanto, è essenziale condurre test di regressione prima della pubblicazione dell’applicazione.
- La copertura e l’ambito dei ritesti possono essere conosciuti solo dopo aver risolto il problema. Di conseguenza, l’automazione non può essere eseguita per i ritesti come per la regressione.
- Il tempo di sviluppo dell’applicazione potrebbe aumentare se i problemi riscontrati nei ritesti continuano a persistere. È necessaria un’analisi più approfondita e strategica per indagare la causa principale.
Tuttavia, nonostante le sfide incontrate nel processo di ritesto, l’organizzazione deve concentrarsi sulle metodologie di test in modo coscienzioso. Ciò potrebbe essere meglio fatto eseguendo i ritesti in cloud. Esaminiamo questo aspetto in dettaglio.
Come Eseguire il Ritesto in Cloud?
L’automatizzazione del processo di ritesto non è sempre fattibile e il test manuale è richiesto per garantire la qualità del software. Tuttavia, potrebbe risultare dispendioso in termini di tempo in alcuni casi e non è un processo scalabile. Le piattaforme di test cloud aiutano a superare le sfide relative all’infrastruttura di test.
Source:
https://dzone.com/articles/retesting-tutorial-a-comprehensive-guide-with-exam