Τι είναι το Spike Testing στη δοκιμή λογισμικού; Μάθετε με το παράδειγμα
⚡ Έξυπνη Σύνοψη
Το Spike Testing υποβάλλει μια εφαρμογή σε μια ξαφνική, ακραία αύξηση φορτίου και στη συνέχεια την αποσύρει εξίσου απότομα. Στόχος είναι να διαπιστωθεί εάν το σύστημα επιβιώνει από το σοκ και, εξίσου σημαντικό, εάν ανακάμπτει στη συνέχεια.

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

Στόχοι των δοκιμών Spike
Ο στόχος της δοκιμής Spike είναι να δούμε πώς το σύστημα ανταποκρίνεται σε απροσδόκητη άνοδο και πτώση του φορτίου χρήστη. Στη Μηχανική Λογισμικού, η δοκιμή Spike βοηθά στον προσδιορισμό της επιδείνωσης της απόδοσης του συστήματος όταν υπάρχει ξαφνικό υψηλό φορτίο.
Ένας άλλος στόχος του Spike Testing είναι ο προσδιορισμός του χρόνου αποκατάστασης. Ανάμεσα σε δύο διαδοχικές αιχμές φορτίου χρήστη, το σύστημα χρειάζεται λίγο χρόνο για να σταθεροποιηθεί. Αυτός ο χρόνος αποκατάστασης πρέπει να είναι όσο το δυνατόν χαμηλότερος.
Πώς να κάνετε το Spike Testing
Ακολουθούν τα απλά βήματα για να εκτελέσετε τη δοκιμή Spike:
Βήμα 1) Προσδιορίστε τη χωρητικότητα φορτίου
Προσδιορίστε τη μέγιστη χωρητικότητα φορτίου χρήστη της εφαρμογής λογισμικού σας.
Βήμα 2) Προετοιμάστε το περιβάλλον δοκιμής
Προετοιμάστε το Περιβάλλον Δοκιμών και διαμορφώστε το ώστε να καταγράφει τις παραμέτρους απόδοσης.
Βήμα 3) Καθορίστε το αναμενόμενο φορτίο
Εφαρμόστε το αναμενόμενο μέγιστο φορτίο στην Εφαρμογή Λογισμικού σας χρησιμοποιώντας α Εργαλείο δοκιμών απόδοσης της επιλογής σας.
Βήμα 4) Αυξήστε το φορτίο
Αυξήστε γρήγορα το φορτίο στο σύστημα για μια καθορισμένη περίοδο.
Βήμα 5) Επαναφέρετε το Load στο Normal
Μειώστε σταδιακά το φορτίο πίσω στο αρχικό του επίπεδο.
Βήμα 6) Αναλύστε τα αποτελέσματα
Αναλύστε τα γραφήματα απόδοσης και τις μετρήσεις όπως Αποτυχίες, Χρόνος που απαιτείται, Εικονικοί χρήστες κ.λπ.
Παραδείγματα σεναρίων δοκιμών Spike
- Όταν ένα κατάστημα ηλεκτρονικού εμπορίου λανσάρει ειδικές προσφορές με μεγάλες εκπτώσεις, όπως τη Μαύρη Παρασκευή.
- Όταν μια εφαρμογή Ιστού πραγματοποιεί ζωντανή ροή ενός αγαπημένου τηλεοπτικού προγράμματος.
- Όταν μια εκπτωτική πώληση γίνεται σε έναν ιστότοπο καθημερινών συμφωνιών.
- Όταν το συγκεκριμένο περιεχόμενο ενός ιστότοπου γίνεται viral μέσω του Διαδικτύου.
- Ένα νέο σύστημα κυκλοφορεί για παραγωγή και πολλοί χρήστες θέλουν να έχουν πρόσβαση στο σύστημα.
- Μια διακοπή ρεύματος μπορεί να έχει ως αποτέλεσμα όλοι οι χρήστες να χάσουν την πρόσβαση σε ένα σύστημα. Αφού επιλυθεί το πρόβλημα της διακοπής, όλοι οι χρήστες, στη συνέχεια, συνδεθείτε ξανά στο σύστημα ταυτόχρονα.
Σενάρια ανάκτησης σε φορτία Spike
Τρία κύρια σενάρια ανάκτησης που μπορούν να ρυθμιστούν για να προστατεύονται από Spikes είναι:
- Χρησιμοποιήστε πλατφόρμες cloud όπως AWS, Azure για δυναμική αύξηση της χωρητικότητας του διακομιστή παράλληλα με το φόρτο του χρήστη
- Μην επιτρέπετε την πρόσβαση της εφαρμογής σε ορισμένους χρήστες, έτσι ώστε το σύστημα να μην αντιμετωπίζει μεγάλο φορτίο. Αυτό εμποδίζει τα άτομα που υπερβαίνουν το μέγιστο σχεδιασμένο φορτίο να εισέλθουν στο σύστημα. Έτσι προστατεύει το σύστημα από την απειλή υπερβολικού φορτίου.
- Ο διαχειριστής του ιστότοπου επιτρέπει στους χρήστες να εγγραφούν στο σύστημα. Ωστόσο, με προειδοποίηση ότι ενδέχεται να αντιμετωπίσουν αργή απόκριση λόγω μεγάλου φορτίου. Αυτό μπορεί να έχει αρνητικές επιπτώσεις στην απόδοση του συστήματος. Ωστόσο, ο χρήστης θα μπορεί να εργαστεί με το σύστημα.
Πλεονεκτήματα και μειονεκτήματα της δοκιμής Spike
Παρακάτω είναι τα πλεονεκτήματα και τα μειονεκτήματα του Spike Testing:
| Πλεονεκτήματα | Μειονεκτήματα |
|---|---|
| Η απόδοση του λογισμικού πρέπει να διατηρηθεί με οποιοδήποτε κόστος. Ωστόσο, όταν υπάρχει μια ακραία αύξηση στο φορτίο οποιουδήποτε συστήματος, υπάρχουν μεγάλες πιθανότητες για προβλήματα. Το Spike Testing βοηθά στη δοκιμή αυτού του σεναρίου. | Το μόνο μειονέκτημα του Spike Testing είναι ότι είναι μια δαπανηρή διαδικασία δοκιμών. Έτσι, χρειαζόταν τη δημιουργία ειδικών συνθηκών δοκιμής. Ωστόσο, κατά τη μεγαλύτερη διάρκεια, σίγουρα θα δώσει θετική απόδοση επένδυσης (ROI). |
| Στην τυπική μέθοδο δοκιμών, τα σενάρια από κακή έως χειρότερη περίπτωση ενδέχεται να μην αντιμετωπίζονται. Ωστόσο, αν τα αγνοήσετε δεν σημαίνει ότι δεν θα συμβούν ποτέ. Επομένως, κάθε λογισμικό θα πρέπει να είναι έτοιμο για τέτοιες δυνατότητες. Ένα τέτοιο χειρότερο σενάριο είναι η φόρτωση που μπορεί να κριθεί και να ελαχιστοποιηθεί με τη βοήθεια της δοκιμής ακίδων. |
Spike Testing Tools
1) JMeter
The Apache JMeter είναι ένα εργαλείο ελέγχου ακίδων ανοιχτού κώδικα Java. Είναι ειδικά σχεδιασμένο για να φορτώνει τη λειτουργική συμπεριφορά δοκιμής και να μετράει την απόδοση. Αυτό το εργαλείο δοκιμής απόδοσης μπορεί να χρησιμοποιηθεί για την ανάλυση και τη μέτρηση της απόδοσης μιας διαδικτυακής εφαρμογής ή μιας ποικιλίας υπηρεσιών. Σήμερα, χρησιμοποιείται ευρέως για τη λειτουργική δοκιμή, τη δοκιμή διακομιστή βάσης δεδομένων.
2) LoadRunner
Το LoadRunner είναι ένα εργαλείο δοκιμής φορτίου για Windows και Linux, το οποίο επιτρέπει δοκιμές ακίδας ιστού και άλλων εφαρμογών. Βοηθά στον προσδιορισμό της απόδοσης και του αποτελέσματος της εφαρμογής ακόμη και κάτω από το μεγάλο φορτίο.
Πώς ταιριάζει αυτή η δοκιμή στην οικογένεια δοκιμών απόδοσης
Ο έλεγχος απόδοσης είναι ένας γενικός όρος. Οι παρακάτω παραλλαγές διαφέρουν μόνο ως προς το σχήμα του εφαρμοζόμενου φορτίου και τη διάρκεια που αυτό διατηρείται, γι' αυτό και συγχέονται τόσο συχνά μεταξύ τους.
| Τύπος δοκιμής | Μοτίβο φόρτωσης | Ερώτηση που απαντά |
|---|---|---|
| Δοκιμή φόρτωσης | Αναμενόμενο μέγιστο φορτίο, μικρής διάρκειας | Επιτυγχάνει το σύστημα τους στόχους του υπό κανονικές ώρες αιχμής; |
| Έλεγχος πίεσης | Αυξημένη πέραν της χωρητικότητας μέχρι την αστοχία | Πού χαλάει και αποτυγχάνει ομαλά; |
| Δοκιμή ακίδων | Ξαφνική έντονη έξαρση, στη συνέχεια απόσυρση | Επιβιώνει και ανακάμπτει από ένα κυκλοφοριακό σοκ; |
| Δοκιμή αντοχής | Κανονικό φορτίο που διατηρείται για πολλές ώρες | Η απόδοση υποβαθμίζεται με την πάροδο του χρόνου; |
| Δοκιμή εμβάπτισης | Παρατεταμένο φορτίο για μεγάλο χρονικό διάστημα | Υπάρχουν διαρροές μνήμης ή εξάντληση πόρων; |
| Δοκιμή σταθερότητας | Μεταβαλλόμενο φορτίο ανάλογα με τις συνθήκες | Παραμένει το σύστημα αξιόπιστο καθώς αλλάζουν οι συνθήκες; |
| Δοκιμή όγκου | Κανονικοί χρήστες, πολύ μεγάλος όγκος δεδομένων | Τα καταφέρνει καθώς η βάση δεδομένων μεγαλώνει; |
Οι δοκιμές αντοχής και εμποτισμού αντιμετωπίζονται συχνά ως συνώνυμα. Στην κοινή χρήση, και οι δύο είναι: και οι δύο διατηρούν ένα συνεχές φορτίο για μεγάλο χρονικό διάστημα. Όπου οι ομάδες τις διακρίνουν, οι δοκιμές αντοχής επικεντρώνονται στο εάν οι χρόνοι απόκρισης αυξάνονται, ενώ οι δοκιμές soak επικεντρώνονται στην κατανάλωση πόρων, όπως η μνήμη, οι λαβές αρχείων και οι ομάδες σύνδεσης. Η εκτέλεση ενός από αυτά συνήθως σας δίνει τα στοιχεία και για τα δύο.
Βασικές μετρήσεις προς καταγραφή κατά τη διάρκεια της δοκιμής
Μια εκτέλεση απόδοσης είναι τόσο καλή όσο αυτό που καταγράφετε κατά την εκτέλεσή της. Καταγράψτε αυτά τα έξι στον διακομιστή και στον υπολογιστή-πελάτη και, στη συνέχεια, συγκρίνετέ τα με την αρχική τιμή και όχι με μια προαίσθηση.
| Μετρικός | Αυτό που σου λέει | Σημάδι προειδοποίησης |
|---|---|---|
| Μέσος χρόνος απόκρισης | Τυπική εμπειρία χρήστη | Οποιαδήποτε ανοδική απόκλιση κατά μήκος της διαδρομής |
| Χρόνος απόκρισης 95ου εκατοστημορίου | Η εμπειρία των πιο αργών χρηστών | Πολύ πάνω από τον μέσο όρο, που σημαίνει ασυνέπεια |
| Διακίνηση | Αιτήματα που διεκπεραιώνονται ανά δευτερόλεπτο | Πτώση ενώ το φορτίο παραμένει σταθερό |
| Ποσοστό σφάλματος | Ποσοστό αιτημάτων που έχουν αποτύχει ή έχουν λήξει με χρονικό όριο | Οποιαδήποτε αύξηση πάνω από το συμφωνημένο όριο |
| Χρήση CPU και μνήμης | Ελεύθερο περιθώριο πόρων διακομιστή | Μνήμη που ανεβαίνει και δεν επιστρέφει ποτέ |
| Συνδέσεις και νήματα βάσης δεδομένων | Εξάντληση πισίνας | Πλήθος που αυξάνεται σταθερά χωρίς απελευθέρωση |
Διαβάστε τον μέσο όρο και το εκατοστημόριο μαζί. Ένας μέσος χρόνος 800 ms με 95ο εκατοστημόριο 900 ms περιγράφει ένα συνεπές σύστημα. Ο ίδιος μέσος όρος με 95ο εκατοστημόριο 9 δευτερολέπτων σημαίνει ότι ένας χρήστης στους είκοσι περνάει άσχημα και ο μέσος όρος το κρύβει.
Παρακολουθήστε το σχήμα, όχι μόνο την αξία. Σε οποιαδήποτε δοκιμή μακράς διαρκείας, μια επίπεδη γραμμή πόρων αποτελεί επιτυχία και μια αυξανόμενη γραμμή αποτελεί διαρροή, ακόμη και όταν ο απόλυτος αριθμός εξακολουθεί να βρίσκεται άνετα εντός του ορίου τη στιγμή που τελειώνει η εκτέλεση.
Δοκιμές αιχμής: Βασικά σημεία
- δοκιμές λογισμικού είναι ένας τύπος δοκιμής λογισμικού κατά τον οποίο μια εφαρμογή λογισμικού ελέγχεται με ακραίες αυξήσεις και μειώσεις του κυκλοφοριακού φόρτου.
- Η σωστή προσέγγιση για να κάνετε δοκιμές ακίδων είναι η απροσδόκητη αύξηση του αριθμού των χρηστών που ακολουθείται από μια άμεση μείωση του φορτίου.
- Το απροσδόκητο φορτίο είναι το κύριο χαρακτηριστικό της συμφωνίας.
- Παραδείγματα πραγματικών σεναρίων δοκιμών Spike είναι – όταν ένα κατάστημα ηλεκτρονικού εμπορίου λανσάρει ειδικές προσφορές με μεγάλες εκπτώσεις, όπως τη Μαύρη Παρασκευή. Εναλλακτικά, όταν μια εφαρμογή Ιστού πραγματοποιεί ζωντανή ροή ενός αγαπημένου τηλεοπτικού προγράμματος.
- JMeter είναι ένα τέτοιο χρήσιμο εργαλείο για να κάνετε δοκιμές ακίδων.
