Δοκιμή Εμποτισμού σε Λογισμικό: Σημασία & Παραδείγματα

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

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

  • 🕒 Μεγάλη διάρκεια: Ένα ρεαλιστικό φορτίο που διατηρείται για πολλές ώρες ή ημέρες, όχι μια σύντομη έξαρση.
  • 💧 πρωταρχικός Target: Διαρροές μνήμης και οποιοσδήποτε πόρος που έχει εκχωρηθεί αλλά δεν έχει ποτέ αποδεσμευτεί.
  • 📉 Έλεγχος υποβάθμισης: Οι χρόνοι απόκρισης πρέπει να παραμένουν σταθεροί σε όλη τη διάρκεια της εκτέλεσης, όχι απλώς να ξεκινούν καλά.
  • 🗄️ Εστίαση στη βάση δεδομένων: Εδώ εμφανίζονται ομάδες σύνδεσης, ανοιχτοί κέρσορες και αυξανόμενοι πίνακες καταγραφής.
  • Ρεαλισμός Χρονισμού: Συμπεριλάβετε προγραμματισμένες εργασίες και παράθυρα παρτίδας που πραγματοποιούνται κατά την περίοδο απορρόφησης.
  • 📊 Κανόνας ετυμηγορίας: Μια επίπεδη καμπύλη πόρων περνάει· μια σταθερά ανοδική αποτυγχάνει ακόμη και εντός ορίων.

Τι είναι η δοκιμή εμποτισμού

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

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

Η παρακάτω εικόνα απεικονίζει έναν κύκλο δοκιμών που δείχνει σε ποιο στάδιο το Soak Testing (Τύπος δοκιμής απόδοσης) εκτελείται σε μια εφαρμογή.

Δοκιμή εμποτισμού

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

Γιατί να κάνετε δοκιμές εμποτισμού;

Ένα σύστημα μπορεί να συμπεριφέρεται κανονικά όταν χρησιμοποιείται για 2 ώρες, αλλά όταν το ίδιο σύστημα χρησιμοποιείται συνεχώς για 10 ώρες ή περισσότερο από αυτό, τότε μπορεί να αποτύχει ή να συμπεριφέρεται ασυνήθιστα/τυχαία/μπορεί να καταρρεύσει. Για την πρόβλεψη μιας τέτοιας αποτυχίας εκτελείται δοκιμή εμποτισμού.

Πότε να κάνετε το Soak Testing;

Η δοκιμή εμποτισμού πρέπει να γίνεται στα ακόλουθα σενάρια: –

  1. Πριν η κατασκευή αναπτυχθεί στον πελάτη, δηλαδή πριν από την κυκλοφορία οποιασδήποτε εφαρμογής σε μια συγκεκριμένη πλατφόρμα, πρέπει να περάσει από μια επιτυχημένη σειρά δοκιμών φορτίου σε υψηλά ή ισοδύναμα επίπεδα επισκεψιμότητας. Εν συνέχεια διενεργείται δοκιμή εμποτισμού. Μας βοηθά να προσδιορίσουμε τον τρόπο εκτέλεσης μιας συγκεκριμένης εφαρμογής για μεγάλο χρονικό διάστημα. Εάν εντοπιστούν ζητήματα όπως διαρροές μνήμης/καταστροφή μνήμης κατά την περίοδο, δηλαδή όταν είναι στο Soak, τότε θα πρέπει να αναφερθούν αμέσως.
  2. Η καλύτερη στιγμή για να κάνετε μια δοκιμή εμποτισμού είναι τα Σαββατοκύριακα, καθώς μια εφαρμογή πρέπει να είναι σε κατάσταση λειτουργίας για όσο διάστημα μιας ημέρας ή της νύχτας. Εξαρτάται πλήρως από τους περιορισμούς της κατάστασης δοκιμής. Οι δοκιμές εμποτισμού είναι μια από τις πιο σημαντικές απαιτήσεις συμμόρφωσης που πρέπει να τηρούνται πολύ αυστηρά από κάθε εταιρεία.

Soak Testing Strategy

Το Long Session Soak Testing είναι μια στρατηγική όπου ένα σύστημα είναι υπό φορτίο για μεγαλύτερο χρονικό διάστημα.

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

Κάτω από τη Δοκιμή εμποτισμού μεγάλης συνεδρίας, οι δραστηριότητες πολλαπλών ημερών (ας πούμε 30 ημερών) εκτελούνται σε ένα περιορισμένο χρονικό πλαίσιο (ας πούμε 2 ημέρες). Ο αριθμός των συναλλαγών σε αυτό το περιορισμένο χρονικό πλαίσιο θα πρέπει να αντιστοιχεί ή να υπερβαίνει τις συναλλαγές πολλών ημερών. Η εστίαση πρέπει να είναι στον αριθμό των συναλλαγών που υποβάλλονται σε επεξεργασία. Το πιο σημαντικό μέρος του Soak Testing είναι να ελέγξετε τη διαθέσιμη μνήμη στη CPU και την ποσότητα της μνήμης που θα χρησιμοποιηθεί. Πρέπει να καταγράψουμε τη χρήση της μνήμης στην αρχή και στο τέλος μιας δοκιμής εμποτισμού. Αν χρειαστεί, τότε η χρήση μνήμης εγκαταστάσεων όπως π.χ Java Οι εικονικές μηχανές είναι επίσης σημαντικές και πρέπει να παρακολουθούνται.

Παρακάτω είναι μερικοί ακόμη έλεγχοι που πρέπει να γίνουν από οποιονδήποτε χρήστη/ελεγκτή προτού ξεκινήσουν με το Soak Testing:

α) Παρακολούθηση της κατανάλωσης πόρων της βάσης δεδομένων.

β) Παρακολούθηση της κατανάλωσης πόρων διακομιστή (πρώην χρήση CPU).

γ) Η δοκιμή εμποτισμού πρέπει να εκτελείται με ρεαλιστική ταυτόχρονη χρήση του χρήστη.

Χαρακτηριστικά της δοκιμής εμποτισμού

Μια τυπική μέθοδος δοκιμής εμποτισμού πρέπει να έχει τα ακόλουθα χαρακτηριστικά: –

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

Παραδείγματα Δοκιμών Εμποτισμού

  • Στην περίπτωση τραπεζικού τομέα, όταν υπάρχει μεγάλος όγκος δεδομένων από εμπόρους, ο ελεγκτής θα φορτώσει το σύστημα συνεχώς για 70 ώρες έως 150 ώρες για να ελέγξει πώς συμπεριφέρεται η εφαρμογή κατά τη διάρκεια αυτής της περιόδου φόρτωσης.
  • Ας υποθέσουμε ότι υπάρχουν 33,000 συνδέσεις, οι οποίες πρέπει να περάσουν μέσω του συστήματος, αντιπροσωπεύουν επτάμισι ημέρες δραστηριότητας. Σε αυτήν την περίπτωση, ένα 60-70 ώρες δοκιμής εμποτισμού μπορεί να ξεκινήσει μέχρι την Παρασκευή το απόγευμα γύρω στις 6 μ.μ., το οποίο μπορεί να ολοκληρωθεί με Monday το πρωί στις 6 π.μ. Μόνο με μια τέτοια δοκιμή, θα είναι δυνατό να παρατηρηθεί οποιαδήποτε υποβάθμιση της απόδοσης υπό τις ελεγχόμενες συνθήκες.
  • Στην περίπτωση των βιντεοπαιχνιδιών, Κινητό εφαρμογές, κ.λπ. περιλαμβάνουν την παραμονή του παιχνιδιού ή της εφαρμογής σε κατάσταση λειτουργίας για παρατεταμένη χρονική περίοδο, σε διάφορους τρόπους λειτουργίας - όπως ρελαντί, παύση στην οθόνη τίτλου και ούτω καθεξής για να μάθετε εάν μια εφαρμογή μπορεί να χειριστεί το συνεχώς αναμενόμενο φορτίο .

Κοινά ζητήματα που παρατηρήθηκαν κατά τη διάρκεια της δοκιμής εμποτισμού

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

Πώς ταιριάζει αυτή η δοκιμή στην οικογένεια δοκιμών απόδοσης

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

Τύπος δοκιμής Μοτίβο φόρτωσης Ερώτηση που απαντά
Δοκιμή φόρτωσης Αναμενόμενο μέγιστο φορτίο, μικρής διάρκειας Επιτυγχάνει το σύστημα τους στόχους του υπό κανονικές ώρες αιχμής;
Έλεγχος πίεσης Αυξημένη πέραν της χωρητικότητας μέχρι την αστοχία Πού χαλάει και αποτυγχάνει ομαλά;
Δοκιμή ακίδων Ξαφνική έντονη έξαρση, στη συνέχεια απόσυρση Επιβιώνει και ανακάμπτει από ένα κυκλοφοριακό σοκ;
Δοκιμή αντοχής Κανονικό φορτίο που διατηρείται για πολλές ώρες Η απόδοση υποβαθμίζεται με την πάροδο του χρόνου;
Δοκιμή εμβάπτισης Παρατεταμένο φορτίο για μεγάλο χρονικό διάστημα Υπάρχουν διαρροές μνήμης ή εξάντληση πόρων;
Δοκιμή σταθερότητας Μεταβαλλόμενο φορτίο ανάλογα με τις συνθήκες Παραμένει το σύστημα αξιόπιστο καθώς αλλάζουν οι συνθήκες;
Δοκιμή όγκου Κανονικοί χρήστες, πολύ μεγάλος όγκος δεδομένων Τα καταφέρνει καθώς η βάση δεδομένων μεγαλώνει;

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

Βασικές μετρήσεις προς καταγραφή κατά τη διάρκεια της δοκιμής

Μια εκτέλεση απόδοσης είναι τόσο καλή όσο αυτό που καταγράφετε κατά την εκτέλεσή της. Καταγράψτε αυτά τα έξι στον διακομιστή και στον υπολογιστή-πελάτη και, στη συνέχεια, συγκρίνετέ τα με την αρχική τιμή και όχι με μια προαίσθηση.

Μετρικός Αυτό που σου λέει Σημάδι προειδοποίησης
Μέσος χρόνος απόκρισης Τυπική εμπειρία χρήστη Οποιαδήποτε ανοδική απόκλιση κατά μήκος της διαδρομής
Χρόνος απόκρισης 95ου εκατοστημορίου Η εμπειρία των πιο αργών χρηστών Πολύ πάνω από τον μέσο όρο, που σημαίνει ασυνέπεια
Διακίνηση Αιτήματα που διεκπεραιώνονται ανά δευτερόλεπτο Πτώση ενώ το φορτίο παραμένει σταθερό
Ποσοστό σφάλματος Ποσοστό αιτημάτων που έχουν αποτύχει ή έχουν λήξει με χρονικό όριο Οποιαδήποτε αύξηση πάνω από το συμφωνημένο όριο
Χρήση CPU και μνήμης Ελεύθερο περιθώριο πόρων διακομιστή Μνήμη που ανεβαίνει και δεν επιστρέφει ποτέ
Συνδέσεις και νήματα βάσης δεδομένων Εξάντληση πισίνας Πλήθος που αυξάνεται σταθερά χωρίς απελευθέρωση

Διαβάστε τον μέσο όρο και το εκατοστημόριο μαζί. Ένας μέσος χρόνος 800 ms με 95ο εκατοστημόριο 900 ms περιγράφει ένα συνεπές σύστημα. Ο ίδιος μέσος όρος με 95ο εκατοστημόριο 9 δευτερολέπτων σημαίνει ότι ένας χρήστης στους είκοσι περνάει άσχημα και ο μέσος όρος το κρύβει.

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

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

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

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

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

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

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

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