Τι είναι το Recovery Testing; με Παράδειγμα

⚡ Έξυπνη Σύνοψη

Οι δοκιμές αποκατάστασης επαληθεύουν ότι το λογισμικό μπορεί να επαναφέρει την κανονική λειτουργία μετά από μια διακοπή λειτουργίας, μια διακοπή δικτύου ή μια βλάβη υλικού, επαναφέροντας το σύστημα σε ένα γνωστό καλό σημείο και επεξεργάζοντας ξανά τις συναλλαγές μέχρι την αποτυχία.

  • 🔁 Τι αποδεικνύει: Operaοι καταστάσεις συνεχίζονται μετά από μια καταστροφή, όχι μόνο ότι υπάρχει ένα αρχείο αντιγράφου ασφαλείας.
  • 🧩 Πού βρίσκεται: Μια μη λειτουργική τεχνική, που εκτελείται από εκπαιδευμένους δοκιμαστές σε ασφαλή αντίγραφα ασφαλείας δεδομένων.
  • Παράγοντες που επηρεάζουν τον χρόνο αποκατάστασης: Σημεία επανεκκίνησης, όγκος δεδομένων και οι δεξιότητες και τα εργαλεία της ομάδας ανάκτησης.
  • 🔄 Σχήμα διαδικασίας: Κανονική λειτουργία, καταστροφή, αναστάτωση, ανάκαμψη και μετά ανασυγκρότηση πίσω στην κανονικότητα.
  • 💾 Επιλογές στρατηγικής: Μεμονωμένα ή πολλαπλά αντίγραφα ασφαλείας, μία ή περισσότερες τοποθεσίες, online ή offline, αυτόματα ή χειροκίνητα.
  • Μετά την επαναφορά: Μετρήστε αρχεία σε σχέση με τον αρχικό φάκελο, ανοίξτε διάφορους τύπους και συγκρίνετε καταλόγους με βοηθητικά προγράμματα συστήματος.

Τι είναι η δοκιμή αποκατάστασης στις δοκιμές λογισμικού με παράδειγμα

Τι είναι το Recovery Testing;

Δοκιμή ανάκτησης είναι μια τεχνική δοκιμής λογισμικού που επαληθεύει την ικανότητα του λογισμικού να ανακάμπτει από βλάβες, όπως κολλήματα λογισμικού ή υλικού και βλάβες δικτύου. Ο σκοπός των δοκιμών αποκατάστασης είναι να προσδιοριστεί εάν οι λειτουργίες του λογισμικού μπορούν να συνεχιστούν μετά από μια καταστροφή ή απώλεια ακεραιότητας. Οι δοκιμές αποκατάστασης περιλαμβάνουν την επαναφορά του λογισμικού στο σημείο όπου ήταν γνωστή η ακεραιότητα και την επανεπεξεργασία των συναλλαγών μέχρι το σημείο αποτυχίας.

Στη μηχανική λογισμικού, ο έλεγχος ανακτησιμότητας είναι ένας τύπος μη λειτουργικές δοκιμές — καλύπτει πτυχές που δεν συνδέονται με συγκεκριμένη λειτουργία ή ενέργεια χρήστη, όπως η επεκτασιμότητα ή η ασφάλεια. Πραγματοποιείται από επαγγελματίες δοκιμαστές και φυλάσσονται εκ των προτέρων επαρκή αντίγραφα ασφαλείας των δεδομένων σε ασφαλείς τοποθεσίες.

Παράδειγμα δοκιμής ανάκτησης

Δύο σενάρια παρουσιάζουν την τεχνική στην απλούστερη μορφή της. Σε κάθε ένα από αυτά, μια αποτυχία επιβάλλεται σκόπιμα και στη συνέχεια η εφαρμογή παρακολουθείται καθώς συνεχίζει.

  • Διακοπή δικτύου: Ενώ μια εφαρμογή λαμβάνει δεδομένα από το δίκτυο, αποσυνδέστε το καλώδιο σύνδεσης. Μετά από λίγο, συνδέστε το ξανά και αναλύστε την ικανότητα της εφαρμογής να συνεχίσει να λαμβάνει δεδομένα από το σημείο στο οποίο διακόπηκε η σύνδεση.
  • Επαναφορά συνεδρίας: Επανεκκινήστε το σύστημα ενώ ένα πρόγραμμα περιήγησης έχει ανοιχτό έναν ορισμένο αριθμό συνεδριών και ελέγξτε αν το πρόγραμμα περιήγησης τις ανακτά όλες.

Η παρακάτω εικόνα παρουσιάζει την ίδια ιδέα σε οπτική μορφή.

Έννοια δοκιμής αποκατάστασης που δείχνει ένα σύστημα που αποτυγχάνει και στη συνέχεια αποκαθίσταται σε κανονική λειτουργία

Ο χρόνος που απαιτείται για την αποκατάσταση εξαρτάται από:

  • Ο αριθμός των σημείων επανεκκίνησης
  • Ο όγκος δεδομένων που διατηρεί η εφαρμογή
  • Εκπαίδευση και δεξιότητες των ατόμων που διεξάγουν δραστηριότητες αποκατάστασης, καθώς και τα διαθέσιμα εργαλεία για την αποκατάσταση

Όταν υπάρχουν αρκετές αποτυχίες, οι δοκιμές αποκατάστασης θα πρέπει να γίνονται με δομημένο τρόπο και όχι όλες μαζί — να διεξάγονται για ένα τμήμα και μετά για ένα άλλο.

Κύκλος ζωής της διαδικασίας ανάκτησης

Πριν από τον σχεδιασμό περιπτώσεων δοκιμών, είναι χρήσιμο να δούμε πού παρεμβαίνει μια δοκιμή ανάκτησης. Ο κύκλος ζωής της διαδικασίας ανάκτησης έχει πέντε βήματα:

  1. Κανονική λειτουργία
  2. Συμβάν καταστροφής
  3. Διακοπή και αποτυχία της λειτουργίας
  4. Εκκαθάριση καταστροφών μέσω της διαδικασίας ανάκαμψης
  5. Ανασυγκρότηση όλων των διαδικασιών και πληροφοριών, επαναφέροντας ολόκληρο το σύστημα σε κανονική λειτουργία

Το παρακάτω διάγραμμα ροής δείχνει αυτά τα πέντε στάδια με τη σειρά.

Διάγραμμα ροής κύκλου ζωής της διαδικασίας αποκατάστασης που καλύπτει την κανονική λειτουργία, την καταστροφή, τη διακοπή, την αποκατάσταση και την ανασυγκρότηση

Ας συζητήσουμε αυτά τα πέντε βήματα λεπτομερώς:

  1. Κανονική λειτουργία. Ένα σύστημα υλικού, λογισμικού και υλικολογισμικού, ενσωματωμένο για την επίτευξη ενός κοινού στόχου, εκτελεί την σχεδιασμένη εργασία του χωρίς διακοπή εντός μιας καθορισμένης χρονικής περιόδου.
  2. Επέλευση καταστροφής. Μπορεί να προκύψει διακοπή λόγω δυσλειτουργίας του λογισμικού, από αιτίες όπως δυσλειτουργία που προκαλείται από είσοδο, σφάλμα που προκαλείται από βλάβη υλικού ή ζημιά από πυρκαγιά, κλοπή ή απεργία.
  3. Διαταραχή και αποτυχία. Αυτή είναι η πιο επώδυνη φάση, που οδηγεί σε επιχειρηματικές απώλειες, διαλυμένες σχέσεις, χαμένες ευκαιρίες, χαμένες εργατοώρες και, αναπόφευκτα, οικονομικές απώλειες και απώλειες καλής θέλησης. Ένα σχέδιο ανάκαμψης από καταστροφές διατηρεί αυτή τη φάση στο ελάχιστο δυνατό.
  4. Εκκαθάριση από καταστροφές. Εάν υπάρχει ήδη ένα εφεδρικό σχέδιο και διαδικασίες μετριασμού κινδύνου, η ανάκαμψη κοστίζει πολύ λιγότερο χρόνο και προσπάθεια. Μια καθορισμένη ομάδα, με τον ρόλο κάθε ατόμου να έχει καθοριστεί εκ των προτέρων, καθορίζει την ευθύνη και αποτρέπει μια μακρά περίοδο διακοπής.
  5. Ανοικοδόμηση. Αυτό μπορεί να περιλαμβάνει πολλαπλές συνεδρίες λειτουργίας για την αναδημιουργία όλων των φακέλων μαζί με τα αρχεία διαμόρφωσης. Για τη σωστή ανάκτηση απαιτείται η κατάλληλη τεκμηρίωση και μια καθορισμένη διαδικασία αναδημιουργίας.

Στρατηγική Αποκατάστασης

Η ομάδα ανάκτησης θα πρέπει να έχει τη δική της στρατηγική για την ανάκτηση σημαντικού κώδικα και δεδομένων, ώστε να επαναφέρει τις λειτουργίες στην κανονικότητα. Αυτή η στρατηγική είναι μοναδική για κάθε οργανισμό, με βάση την κρισιμότητα των συστημάτων που χειρίζεται, και για τα κρίσιμα συστήματα καταλήγει σε ένα σύνολο επιλογών:

  1. Ένα μόνο αντίγραφο ασφαλείας ή περισσότερα από ένα
  2. Πολλαπλά αντίγραφα ασφαλείας σε ένα μέρος ή σε διαφορετικά μέρη
  3. Αντίγραφα ασφαλείας online ή αντίγραφα ασφαλείας εκτός σύνδεσης
  4. Τα αντίγραφα ασφαλείας εκτελούνται αυτόματα βάσει πολιτικής ή ενεργοποιούνται χειροκίνητα
  5. Μια ανεξάρτητη ομάδα αποκατάστασης ή η ομάδα ανάπτυξης που εκτελεί την εργασία

Κάθε επιλογή έχει έναν παράγοντα κόστους και τα πολλαπλά αντίγραφα ασφαλείας ενδέχεται να καταναλώνουν περισσότερους φυσικούς πόρους ή να χρειάζονται μια ανεξάρτητη ομάδα. Η εξάρτηση έχει επίσης σημασία: οι εταιρείες εκτίθενται μέσω του κώδικα και των δεδομένων που διατηρούν σε έναν μόνο πάροχο και σε μια μεγάλης κλίμακας AWS Η διακοπή ρεύματος έχει επανειλημμένα θέσει εκτός λειτουργίας γνωστές υπηρεσίες καταναλωτών την ίδια στιγμή. Η δυνατότητα ανεξάρτητης αποκατάστασης είναι ζωτικής σημασίας σε τέτοιες περιπτώσεις.

Πώς να κάνετε τη δοκιμή ανάκτησης

Αφού καθοριστεί η στρατηγική, το επόμενο ερώτημα είναι πώς έχει ρυθμιστεί η ίδια η δοκιμή. Τα ακόλουθα σημεία θα πρέπει να ληφθούν υπόψη κατά την εκτέλεση δοκιμών ανάκτησης.

  • Δημιουργήστε ένα δοκιμαστικό πεδίο όσο το δυνατόν πιο κοντά στις πραγματικές συνθήκες ανάπτυξης: η διασύνδεση, το πρωτόκολλο, το υλικολογισμικό, το υλικό και το λογισμικό θα πρέπει να ταιριάζουν με την παραγωγή.
  • Παρόλο που οι εξαντλητικές δοκιμές μπορεί να είναι χρονοβόρες και δαπανηρές, θα πρέπει να εκτελεστεί μια πανομοιότυπη διαμόρφωση και ένας πλήρης έλεγχος.
  • Εάν είναι δυνατόν, δοκιμάστε το υλικό στο οποίο θα γίνει τελικά η επαναφορά — ειδικά κατά την επαναφορά σε διαφορετικό μηχάνημα από αυτόν που δημιούργησε το αντίγραφο ασφαλείας.
  • Ορισμένα συστήματα δημιουργίας αντιγράφων ασφαλείας αναμένουν ότι ο σκληρός δίσκος θα έχει ακριβώς το ίδιο μέγεθος με αυτόν από τον οποίο ελήφθη το αντίγραφο ασφαλείας.
  • Διαχείριση απαξίωσης: η τεχνολογία των μονάδων δίσκου εξελίσσεται γρήγορα και μια παλιά μονάδα δίσκου ενδέχεται να μην είναι συμβατή με μια καινούργια. Επαναφορά σε εικονική μηχανή βοηθάει, καθώς το λογισμικό εικονικοποίησης μπορεί να μιμηθεί το υπάρχον υλικό, συμπεριλαμβανομένων των μεγεθών δίσκων.
  • Τα συστήματα online δημιουργίας αντιγράφων ασφαλείας δεν αποτελούν εξαίρεση στις δοκιμές. Οι περισσότεροι πάροχοι προστατεύουν τους χρήστες από προβλήματα πολυμέσων μέσω αποθήκευσης ανεκτικού σε σφάλματα, επομένως οι βλάβες εμφανίζονται αργά.
  • Παρόλο που τα συστήματα δημιουργίας αντιγράφων ασφαλείας στο διαδίκτυο είναι εξαιρετικά αξιόπιστα, η πλευρά επαναφοράς πρέπει να δοκιμαστεί για να επιβεβαιωθεί ότι δεν υπάρχουν προβλήματα με την ανάκτηση, την ασφάλεια ή την κρυπτογράφηση.

Επειδή η αποκατάσταση ασκείται από άκρο σε άκρο, αυτές οι διαδρομές συνήθως προγραμματίζονται παράλληλα δοκιμή συστήματος παρά σε επίπεδο μονάδας.

Διαδικασία δοκιμής μετά την αποκατάσταση

Η επαναφορά των δεδομένων είναι μόνο η μισή διαδικασία. Το αποκατεστημένο αντίγραφο πρέπει ακόμη να αποδειχθεί ότι είναι χρησιμοποιήσιμο. Οι περισσότερες μεγάλες εταιρείες διαθέτουν ανεξάρτητους ελεγκτές που εκτελούν περιοδικά ασκήσεις αποκατάστασης. Ένα ολοκληρωμένο σχέδιο αποκατάστασης από καταστροφή είναι δαπανηρό στη συντήρηση και τη δοκιμή, επομένως οι μικρότεροι οργανισμοί συχνά βασίζονται σε αντίγραφα ασφαλείας και αποθήκευση εκτός εγκαταστάσεων.

Μετά την επαναφορά των φακέλων και των αρχείων, οι ακόλουθοι έλεγχοι επιβεβαιώνουν ότι ανακτήθηκαν σωστά:

  • Μετονομάστε τον φάκελο του κατεστραμμένου εγγράφου, ώστε το αποκατεστημένο αντίγραφο να μην μπορεί να συγχέεται με αυτόν.
  • Μετρήστε τα αρχεία στους ανακτημένους φακέλους και αντιστοιχίστε αυτόν τον αριθμό με τον αρχικό φάκελο.
  • Ανοίξτε μερικά αρχεία με την εφαρμογή που τα χρησιμοποιεί κανονικά και επιβεβαιώστε ότι τα δεδομένα μπορούν να περιηγηθούν και να ενημερωθούν ως συνήθως.
  • Ανοίξτε πολλά αρχεία διαφορετικών τύπων — εικόνες, MP3και έγγραφα, άλλα μεγάλα και άλλα μικρά.
  • Χρησιμοποιήστε τα βοηθητικά προγράμματα σύγκρισης αρχείων και καταλόγων που τα περισσότερα λειτουργικά συστήματα προμηθεύω.

Συχνές Ερωτήσεις

Η δοκιμή ανακατεύθυνσης (failover testing) ελέγχει εάν η κυκλοφορία μεταβαίνει ομαλά σε έναν κόμβο αναμονής. Η δοκιμή ανάκτησης προχωρά περαιτέρω και ρωτά εάν η αρχική υπηρεσία, τα δεδομένα της και οι συναλλαγές της κατά τη διάρκεια της πτήσης επιστρέφουν στη σωστή κατάσταση.

Το RTO είναι ο χρόνος που επιτρέπεται για την επαναφορά μιας υπηρεσίας. Το RPO είναι η αποδεκτή απώλεια δεδομένων. Μια δοκιμή ανάκτησης μετρά τόσο: τον χρόνο επαναφοράς για το RTO όσο και τη σύγκριση των ανακτημένων δεδομένων με την τελευταία γνωστή-καλή κατάσταση για το RPO.

Τρεις παραλλαγές επαναλαμβάνονται: αποκατάσταση μετά από καταστροφή για διακοπές λειτουργίας σε ολόκληρο τον ιστότοπο, αποκατάσταση βάσης δεδομένων για κατεστραμμένα αποθηκευτικά δεδομένα και αποκατάσταση περιβάλλοντος για προβληματικές ρυθμίσεις ή εξαρτήσεις. Κάθε μία χρησιμοποιεί τον ίδιο κύκλο ζωής με διαφορετικό έναυσμα σφάλματος.

Τα μοντέλα μηχανικής μάθησης κατατάσσουν τις υπηρεσίες με βάση το ιστορικό συμβάντων και το βάθος των εξαρτήσεων, έτσι ώστε οι πιο επικίνδυνες διαδρομές επαναφοράς να εκτελούνται πρώτες. Η ανίχνευση ανωμαλιών στα αρχεία καταγραφής επαναφοράς επισημαίνει επίσης εκτελέσεις που ολοκληρώθηκαν αλλά παρήγαγαν ελλιπή δεδομένα.

GitHub Copilot Συντάσσει βοηθούς εισαγωγής σφαλμάτων, σενάρια επαναφοράς και ισχυρισμούς μετά την επαναφορά γρήγορα. Ο δοκιμαστής εξακολουθεί να αποφασίζει ποια αποτυχία θα επιβάλει και πώς θα μοιάζει μια σωστή κατάσταση ανάκτησης, καθώς και τα δύο ακολουθούν επιχειρηματικούς κανόνες.

Οι ετήσιες ασκήσεις είναι συνηθισμένες, με τριμηνιαίες ασκήσεις για κρίσιμα συστήματα. Οποιαδήποτε αλλαγή στο εργαλείο δημιουργίας αντιγράφων ασφαλείας, στην πλατφόρμα αποθήκευσης ή στην αρχιτεκτονική θα πρέπει να ενεργοποιεί μια νέα εκτέλεση, καθώς μια μη δοκιμασμένη αλλαγή ακυρώνει σιωπηλά το προηγούμενο αποτέλεσμα.

Επιβάλλει πραγματικές αποτυχίες, επομένως επικαλύπτεται με καταστροφικές δοκιμές, αλλά ο στόχος είναι η αποκατάσταση και όχι η θραύση. Εκτελέστε το σε απομονωμένο δοκιμαστικό χώρο, όχι σε σχέση με δεδομένα παραγωγής σε πραγματικό χρόνο.

Καταγράψτε την εγχυμένη αστοχία, τους χρόνους έναρξης και λήξης, το μετρούμενο RTO και RPO, τα βήματα που χρειάστηκαν χειροκίνητη παρέμβαση και κάθε απόκλιση που εντοπίστηκε στα δεδομένα που αποκαταστάθηκαν. Προσθέστε διορθωτικές ενέργειες και την ημερομηνία επανάληψης της δοκιμής.

Συνοψίστε αυτήν την ανάρτηση με: