Cos'รจ il test di recupero? con l'esempio
โก Riepilogo intelligente
Il test di ripristino verifica che il software sia in grado di riprendere il normale funzionamento dopo un arresto anomalo, un'interruzione di rete o un guasto hardware, ripristinando il sistema a un punto di funzionamento noto e rielaborando le transazioni fino al momento del guasto.
Che cosa sono i test di recupero?
Test di recupero Il test di ripristino รจ una tecnica di test del software che verifica la capacitร del software di riprendersi da guasti quali crash del software o dell'hardware e guasti di rete. Lo scopo del test di ripristino รจ determinare se le operazioni del software possono continuare dopo un disastro o una perdita di integritร . Il test di ripristino prevede il ripristino del software a un punto in cui l'integritร era nota e la rielaborazione delle transazioni fino al punto del guasto.
Nell'ingegneria del software, il test di recuperabilitร รจ un tipo di test non funzionali โ copre aspetti non legati a una funzione specifica o a un'azione dell'utente, come la scalabilitร o la sicurezza. Viene eseguito da tester professionisti e, prima dell'esecuzione, vengono conservati in luoghi sicuri adeguati dati di backup.
Esempio di test di recupero
Due scenari illustrano la tecnica nella sua forma piรน semplice. In ciascuno di essi, si provoca deliberatamente un errore e si osserva l'applicazione mentre riprende a funzionare.
- Interruzione di rete: Mentre un'applicazione sta ricevendo dati dalla rete, scollegare il cavo di connessione. Dopo un po' di tempo, ricollegarlo e verificare se l'applicazione รจ in grado di continuare a ricevere dati dal punto in cui la connessione รจ stata interrotta.
- Ripristino della sessione: Riavvia il sistema mentre un browser ha un certo numero di sessioni aperte e verifica se il browser le recupera tutte.
L'illustrazione sottostante presenta lo stesso concetto in forma visiva.
Il tempo necessario per il recupero dipende da:
- Il numero di punti di riavvio
- Il volume dei dati contenuti nell'applicazione
- Formazione e competenze delle persone che conducono attivitร di recupero e strumenti disponibili per il recupero
In caso di guasti multipli, i test di ripristino dovrebbero essere eseguiti in modo strutturato anzichรฉ tutti in una volta, ovvero prima su un segmento e poi su un altro.
Ciclo di vita del processo di recupero
Prima di progettare i casi di test, รจ utile capire dove interviene un test di ripristino. Il ciclo di vita del processo di ripristino si articola in cinque fasi:
- Operazione normale
- Evento del disastro
- Interruzione e fallimento dell'operazione
- Eliminazione del disastro attraverso il processo di recupero
- Ricostruzione di tutti i processi e le informazioni, riportando l'intero sistema al normale funzionamento.
Il diagramma di flusso sottostante mostra queste cinque fasi in sequenza.
Analizziamo nel dettaglio questi cinque passaggi:
- Operazione normale. Un sistema composto da hardware, software e firmware, integrati per raggiungere un obiettivo comune, svolge la funzione per cui รจ stato progettato senza interruzioni entro un periodo di tempo prestabilito.
- Evento catastrofico. Un'interruzione puรฒ verificarsi a causa di un malfunzionamento del software, dovuto a cause quali un errore di input, un arresto anomalo causato da un guasto hardware o danni derivanti da incendio, furto o impatto.
- Interruzione e fallimento. Questa รจ la fase piรน dolorosa, che comporta perdite economiche, rottura dei rapporti, opportunitร mancate, perdita di ore lavorative e, inevitabilmente, perdite finanziarie e di reputazione. Un piano di ripristino d'emergenza riduce al minimo questa fase.
- Sgombero post-disastro. Se sono giร in atto un piano di backup e processi di mitigazione del rischio, il ripristino richiede molto meno tempo e impegno. Un team dedicato, con ruoli definiti in anticipo per ciascun membro, chiarisce le responsabilitร e previene lunghi periodi di interruzione.
- Ricostruzione. Questa operazione potrebbe richiedere piรน sessioni per ricostruire tutte le cartelle e i file di configurazione. Per un ripristino corretto sono necessari una documentazione adeguata e un processo di ricostruzione ben definito.
Strategia di restauro
Il team di ripristino dovrebbe avere una propria strategia per recuperare codice e dati importanti al fine di riportare le operazioni alla normalitร . Tale strategia รจ specifica per ogni organizzazione, in base alla criticitร dei sistemi che gestisce, e per i sistemi critici si riduce a una serie di scelte:
- Un singolo backup o piรน di uno
- Backup multipli in un unico posto o in posti diversi.
- Backup online o backup offline
- I backup vengono eseguiti automaticamente in base a una policy oppure attivati โโmanualmente.
- Un team di restauro indipendente o il team di sviluppo che esegue i lavori
Ogni scelta comporta un fattore di costo e piรน backup possono consumare piรน risorse fisiche o richiedere un team indipendente. Anche la dipendenza รจ importante: le aziende sono esposte attraverso il codice e i dati che mantengono con un unico fornitore e un'ampia scala AWS L'interruzione del servizio ha ripetutamente messo offline contemporaneamente noti servizi di consumo. In questi casi, la capacitร di ripristino indipendente รจ fondamentale.
Come eseguire i test di recupero
Una volta definita la strategia, la domanda successiva riguarda la configurazione del test stesso. Durante l'esecuzione dei test di ripristino, รจ necessario tenere in considerazione i seguenti punti.
- Creare un ambiente di test che riproduca il piรน fedelmente possibile le condizioni di implementazione reali: interfaccia, protocollo, firmware, hardware e software devono corrispondere a quelli di produzione.
- Sebbene i test esaustivi possano richiedere tempo e comportare costi elevati, รจ comunque opportuno eseguire una configurazione identica e un controllo completo.
- Se possibile, esegui un test sull'hardware su cui verrร effettuato il ripristino finale, soprattutto se il ripristino avviene su una macchina diversa da quella che ha creato il backup.
- Alcuni sistemi di backup prevedono che il disco rigido abbia esattamente le stesse dimensioni di quello da cui รจ stato eseguito il backup.
- Gestire l'obsolescenza: la tecnologia delle unitร avanza rapidamente e una vecchia unitร potrebbe non essere compatibile con una nuova. Il ripristino a un macchina virtuale ร utile perchรฉ il software di virtualizzazione puรฒ emulare l'hardware esistente, comprese le dimensioni dei dischi.
- Anche i sistemi di backup online sono soggetti a test. La maggior parte dei fornitori protegge gli utenti dai problemi relativi ai supporti di memorizzazione tramite sistemi di archiviazione a tolleranza di errore, pertanto i guasti si manifestano in un secondo momento.
- Sebbene i sistemi di backup online siano estremamente affidabili, รจ necessario testare la fase di ripristino per verificare che non vi siano problemi di recupero, sicurezza o crittografia.
Poichรฉ il recupero viene eseguito dall'inizio alla fine, queste corse sono solitamente programmate insieme test di sistema piuttosto che a livello di unitร .
Procedura di collaudo dopo il restauro
Il ripristino dei dati รจ solo metร del lavoro; la copia ripristinata deve ancora essere dimostrata utilizzabile. La maggior parte delle grandi aziende si affida a revisori esterni per condurre periodicamente esercitazioni di ripristino. Un piano completo di disaster recovery รจ costoso da mantenere e testare, quindi le organizzazioni piรน piccole spesso si affidano a backup e archiviazione esterna.
Dopo il ripristino di cartelle e file, i seguenti controlli confermano che il recupero รจ avvenuto correttamente:
- Rinominare la cartella del documento danneggiato in modo che la copia ripristinata non possa essere confusa con essa.
- Conta i file nelle cartelle ripristinate e confronta il conteggio con quello della cartella originale.
- Apri alcuni file con l'applicazione che li utilizza normalmente e verifica che i dati possano essere visualizzati e aggiornati come di consueto.
- Apri diversi file di vario tipo: immagini, MP3e documenti, alcuni grandi e altri piccoli.
- Utilizza le utilitร di confronto di file e directory che piรน sistemi operativi fornire.


