Τι είναι το Soak Testing; Ορισμός, Έννοια, Παραδείγματα
Δοκιμή εμποτισμού
Δοκιμή εμποτισμού είναι ένας τύπος μη λειτουργικής δοκιμής που χρησιμοποιείται για τη μέτρηση της απόδοσης μιας εφαρμογής λογισμικού κάτω από τεράστιο όγκο φορτίου για εκτεταμένη χρονική περίοδο. Ο στόχος της δοκιμής Soak είναι να διασφαλίσει εάν η εφαρμογή λογισμικού διατηρεί υψηλό όγκο χρήσης και να ελέγξει τι θα συμβεί εκτός των προσδοκιών σχεδιασμού της.
Η παρακάτω εικόνα απεικονίζει έναν κύκλο δοκιμών που δείχνει σε ποιο στάδιο το Soak Testing (Τύπος δοκιμής απόδοσης) εκτελείται σε μια εφαρμογή.
Σε αυτό το είδος δοκιμών, αυτό που βασικά παρακολουθείται είναι η χρήση της μνήμης από μια εφαρμογή σε ένα σύστημα. Δοκιμάζει σε επίπεδο συστήματος, για να διαπιστώσει εάν το σύστημα θα αντέξει έναν πολύ μεγάλο όγκο χρήσης και για να δει τι θα συμβεί εκτός των προσδοκιών σχεδιασμού του.
Γιατί να κάνετε δοκιμές εμποτισμού;
Ένα σύστημα μπορεί να συμπεριφέρεται κανονικά όταν χρησιμοποιείται για 2 ώρες, αλλά όταν το ίδιο σύστημα χρησιμοποιείται συνεχώς για 10 ώρες ή περισσότερο από αυτό, τότε μπορεί να αποτύχει ή να συμπεριφέρεται ασυνήθιστα/τυχαία/μπορεί να καταρρεύσει. Για την πρόβλεψη μιας τέτοιας αποτυχίας εκτελείται δοκιμή εμποτισμού.
Πότε να κάνετε το Soak Testing;
Η δοκιμή εμποτισμού πρέπει να γίνεται στα ακόλουθα σενάρια: –
- Πριν η κατασκευή αναπτυχθεί στον πελάτη, δηλαδή πριν από την κυκλοφορία οποιασδήποτε εφαρμογής σε μια συγκεκριμένη πλατφόρμα, πρέπει να περάσει από μια επιτυχημένη σειρά δοκιμών φορτίου σε υψηλά ή ισοδύναμα επίπεδα επισκεψιμότητας. Εν συνέχεια διενεργείται δοκιμή εμποτισμού. Μας βοηθά να προσδιορίσουμε τον τρόπο εκτέλεσης μιας συγκεκριμένης εφαρμογής για μεγάλο χρονικό διάστημα. Εάν εντοπιστούν ζητήματα όπως διαρροές μνήμης/καταστροφή μνήμης κατά την περίοδο, δηλαδή όταν είναι στο Soak, τότε θα πρέπει να αναφερθούν αμέσως.
- Η καλύτερη στιγμή για να κάνετε μια δοκιμή εμποτισμού είναι τα Σαββατοκύριακα, καθώς μια εφαρμογή πρέπει να είναι σε κατάσταση λειτουργίας για όσο διάστημα μιας ημέρας ή της νύχτας. Εξαρτάται πλήρως από τους περιορισμούς της κατάστασης δοκιμής. Οι δοκιμές εμποτισμού είναι μια από τις πιο σημαντικές απαιτήσεις συμμόρφωσης που πρέπει να τηρούνται πολύ αυστηρά από κάθε εταιρεία.
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 π.μ. Μόνο με μια τέτοια δοκιμή, θα είναι δυνατό να παρατηρηθεί οποιαδήποτε υποβάθμιση της απόδοσης υπό τις ελεγχόμενες συνθήκες.
- Στην περίπτωση των βιντεοπαιχνιδιών, Κινητό εφαρμογές, κ.λπ. περιλαμβάνουν την παραμονή του παιχνιδιού ή της εφαρμογής σε κατάσταση λειτουργίας για παρατεταμένη χρονική περίοδο, σε διάφορους τρόπους λειτουργίας - όπως ρελαντί, παύση στην οθόνη τίτλου και ούτω καθεξής για να μάθετε εάν μια εφαρμογή μπορεί να χειριστεί το συνεχώς αναμενόμενο φορτίο .
Κοινά ζητήματα που παρατηρήθηκαν κατά τη διάρκεια της δοκιμής εμποτισμού
- Εκχώρηση μνήμης (διαρροές μνήμης που θα οδηγούσαν τελικά σε κρίση μνήμης ή σφάλματα στρογγυλοποίησης που εκδηλώνονται μόνο με την πάροδο του χρόνου).
- Χρήση πόρων βάσης δεδομένων (Αποτυχία κλεισίματος των δρομέων της βάσης δεδομένων υπό ορισμένες συνθήκες που θα οδηγούσαν τελικά σε διακοπή λειτουργίας ολόκληρου του συστήματος).
- Μπορεί επίσης να οδηγήσει σε υποβάθμιση της απόδοσης, δηλαδή να διασφαλιστεί ότι ο χρόνος απόκρισης μετά από μια μακρά περίοδο συνεχούς δραστηριότητας είναι τόσο καλός όσο ήταν στην αρχή της δοκιμής.
- Αποτυχία κλεισίματος των συνδέσεων μεταξύ των επιπέδων ενός συστήματος πολλαπλών επιπέδων υπό ορισμένες συνθήκες που θα μπορούσαν να σταματήσουν ορισμένες ή όλες τις μονάδες του συστήματος.
- Η σταδιακή υποβάθμιση του χρόνου απόκρισης ορισμένων λειτουργιών καθώς οι εσωτερικές δομές δεδομένων γίνονται λιγότερο αποτελεσματικές κατά τη διάρκεια μιας μακράς δοκιμής.
Σύνοψη
- In Τεχνολογία Λογισμικού, Γίνεται δοκιμή εμποτισμού για να καθοριστεί εάν η υπό δοκιμή εφαρμογή μπορεί να αντέξει το συνεχές φορτίο.
- Είναι ένα είδος δοκιμής απόδοσης.
- Βοηθά το σύστημα να καθορίσει αν θα αντέξει σε πολύ μεγάλο όγκο χρήσης
- Σε αυτό το είδος δοκιμών, αυτό που βασικά παρακολουθείται είναι η χρήση της μνήμης από μια εφαρμογή σε ένα σύστημα
- Οι έλεγχοι που πρέπει να γίνουν από οποιονδήποτε χρήστη/ελεγκτή πριν ξεκινήσουν με το Soak Testing περιλαμβάνουν
- Παρακολούθηση της κατανάλωσης πόρων της βάσης δεδομένων.
- Παρακολουθήστε την κατανάλωση πόρων διακομιστή (πρώην χρήση CPU).
- Η δοκιμή εμποτισμού πρέπει να εκτελείται με ρεαλιστική ταυτόχρονη χρήση του χρήστη.