Τι είναι το Stress Testing στο Software Testing;
⚡ Έξυπνη Σύνοψη
Η δοκιμή αντοχής σε ακραίες συνθήκες (stress testing) ωθεί μια εφαρμογή πέρα από τα κανονικά όρια λειτουργίας της για να εντοπίσει το σημείο θραύσης, να επιβεβαιώσει ότι οι βλάβες αντιμετωπίζονται ομαλά και να αποδείξει ότι το σύστημα ανακάμπτει ομαλά μόλις αφαιρεθεί το ακραίο φορτίο.

Τι είναι το Stress Testing;
Έλεγχος πίεσης είναι ένας τύπος δοκιμής λογισμικού που επαληθεύει τη σταθερότητα και την αξιοπιστία μιας εφαρμογής λογισμικού. Ο στόχος της δοκιμής ακραίων καταστάσεων είναι να μετρήσει την ανθεκτικότητα και τις δυνατότητες χειρισμού σφαλμάτων του λογισμικού υπό συνθήκες εξαιρετικά μεγάλου φόρτου εργασίας και να διασφαλίσει ότι το λογισμικό δεν θα παρουσιάσει σφάλματα σε καταστάσεις κρίσης. Διεξάγει σκόπιμα δοκιμές πέρα από τα κανονικά σημεία λειτουργίας και αξιολογεί τον τρόπο συμπεριφοράς του λογισμικού υπό ακραίες συνθήκες.
Στο πλαίσιο του Stress Testing, η υπό δοκιμή εφαρμογή (AUT) υφίσταται στρες για μικρό χρονικό διάστημα, ώστε να διαπιστωθεί η αντοχή της. Η πιο σημαντική χρήση του Stress Testing είναι ο προσδιορισμός του ορίου στο οποίο το σύστημα, το λογισμικό ή το υλικό σπάνε. Ελέγχει επίσης εάν το σύστημα επιδεικνύει αποτελεσματική διαχείριση σφαλμάτων μόλις ξεπεραστεί αυτό το όριο.
In Τεχνολογία Λογισμικού, Η δοκιμή αντοχής συχνά αναφέρεται παράλληλα με Τεστ Αντοχής, αλλά τα δύο διαφέρουν: Η δοκιμή αντοχής εφαρμόζει ένα ασυνήθιστα υψηλό φορτίο σε μια σύντομη ριπή για να βρει το σημείο θραύσης, ενώ η δοκιμή αντοχής (εμποτισμού) διατηρεί ένα μέτριο φορτίο για ώρες για να αποκαλύψει τη σταδιακή υποβάθμιση.
Το παρακάτω στιγμιότυπο οθόνης δείχνει ένα μεγάλο μπλοκ δεδομένων που αντιγράφεται από μια ιστοσελίδα.
Η εφαρμογή που δοκιμάζεται δέχεται πίεση όταν 5 GB δεδομένων αντιγράφονται από τον ιστότοπο και επικολλώνται στο Σημειωματάριο. Το Σημειωματάριο δέχεται πίεση και επιστρέφει το μήνυμα σφάλματος "Δεν ανταποκρίνεται", ακριβώς όπως φαίνεται στο επόμενο στιγμιότυπο οθόνης.
Η ίδια αρχή ισχύει απευθείας για συστήματα από την πλευρά του διακομιστή.
Ανάγκη για τεστ άγχους
Εξετάστε τα ακόλουθα παραδείγματα σε πραγματικό χρόνο όπου η χρήση του Stress Testing γίνεται προφανής:
- Κατά τη διάρκεια του φεστιβάλ, ένα ηλεκτρονικό κατάστημαping Ο ιστότοπος ενδέχεται να παρουσιάσει αύξηση στην επισκεψιμότητα ή όταν ανακοινώσει μια πώληση.
- Όταν ένα blog αναφέρεται σε μια κορυφαία εφημερίδα, βιώνει μια ξαφνική αύξηση της επισκεψιμότητας.
Είναι επιτακτική ανάγκη να εκτελεστεί Stress Testing για την αντιμετώπιση τέτοιων ασυνήθιστων αυξήσεων επισκεψιμότητας. Η μη αντιμετώπιση αυτής της ξαφνικής επισκεψιμότητας μπορεί να οδηγήσει σε απώλεια εσόδων και φήμης.
Η δοκιμή αντοχής σε ακραίες καταστάσεις είναι επίσης εξαιρετικά πολύτιμη για τους ακόλουθους λόγους:
- Ελέγχει εάν το σύστημα λειτουργεί υπό μη φυσιολογικές συνθήκες.
- Επιβεβαιώνει ότι εμφανίζεται ένα κατάλληλο μήνυμα σφάλματος ενώ το σύστημα βρίσκεται υπό πίεση.
- Η αστοχία του συστήματος υπό ακραίες συνθήκες θα μπορούσε να οδηγήσει σε τεράστια απώλεια εσόδων.
- Είναι καλύτερο να είστε προετοιμασμένοι για ακραίες συνθήκες εκτελώντας δοκιμές αντοχής εκ των προτέρων.
Η επόμενη ενότητα καθορίζει τι πρέπει να αποδείξει ένα επιτυχημένο Stress Test.
Στόχοι του Stress Testing
Ο στόχος του Stress Testing είναι να αναλύσει τη συμπεριφορά του συστήματος μετά από μια βλάβη. Για να είναι επιτυχές το Stress Testing, ένα σύστημα θα πρέπει να εμφανίζει ένα κατάλληλο μήνυμα σφάλματος ενώ βρίσκεται υπό ακραίες συνθήκες.
Για τη διεξαγωγή Δοκιμών Άκρων, μερικές φορές χρησιμοποιούνται τεράστια σύνολα δεδομένων και αυτά τα δεδομένα ενδέχεται να χαθούν ενώ το σύστημα παρουσιάζει σφάλμα. Οι υπεύθυνοι δοκιμών θα πρέπει να διασφαλίζουν ότι αυτά τα δεδομένα που σχετίζονται με την ασφάλεια δεν θα χαθούν κατά τη διάρκεια των Δοκιμών Άκρων.
Ο κύριος σκοπός των Stress Testing είναι να διασφαλιστεί ότι το σύστημα ανακάμπτει μετά από βλάβη, μια ιδιότητα που ονομάζεται ανακτησιμότητα. Δοκιμή ανάκτησης στη συνέχεια επαληθεύει λεπτομερώς τη διαδικασία αποκατάστασης.
Δοκιμή φορτίου έναντι δοκιμής καταπόνησης
Και οι δύο τεχνικές ανήκουν στην Δοκιμές Απόδοσης οικογένεια, επομένως είναι εύκολο να τα μπερδέψετε. Το παρακάτω διάγραμμα αντιπαραβάλλει τα δύο προφίλ φορτίου.
| Δοκιμές φορτίου | Έλεγχος πίεσης |
|---|---|
| Δοκιμές φορτίου ελέγχει τη συμπεριφορά του συστήματος υπό κανονικές συνθήκες φόρτου εργασίας· προσομοιώνει το πραγματικό αναμενόμενο φόρτο εργασίας. | Η δοκιμή αντοχής σε ακραίες συνθήκες (stress testing) ελέγχει τη συμπεριφορά του συστήματος υπό ακραίες συνθήκες και πραγματοποιείται μέχρι να παρουσιάσει βλάβη το σύστημα. |
| Η δοκιμή φορτίου δεν καταστρέφει το σύστημα. | Το Stress Testing προσπαθεί σκόπιμα να καταστρέψει το σύστημα κατακλύζοντάς το με δεδομένα ή στερώντας του πόρους. |
Σχετικά προφίλ περιλαμβάνουν Δοκιμή ακίδων (μια ξαφνική σύντομη έκρηξη), Δοκιμή όγκου (μεγάλα δεδομένα αντί για πολλούς χρήστες) και Δοκιμή επεκτασιμότητας (περιθώριο ανάπτυξης).
Τύποι Stress Testing
Ακολουθούν οι τύποι Δοκιμών Στρες, εξηγούμενοι ένας κάθε φορά.
Κατανεμημένη δοκιμή αντοχής σε ακραίες καταστάσεις
Σε κατανεμημένα συστήματα client-server, οι δοκιμές πραγματοποιούνται σε όλους τους πελάτες από τον διακομιστή. Ο ρόλος του stress server είναι να διανέμει ένα σύνολο stress tests σε όλους τους stress clients και να track την κατάσταση κάθε πελάτη. Αφού ένας πελάτης επικοινωνήσει με τον διακομιστή, ο διακομιστής προσθέτει το όνομα του πελάτη και αρχίζει να στέλνει δεδομένα για δοκιμή. Το παρακάτω σχήμα δείχνει πώς ο διακομιστής στρες προσεγγίζει ορισμένους πελάτες αλλά όχι άλλους.
Εν τω μεταξύ, οι υπολογιστές-πελάτες στέλνουν ένα σήμα ή παλμό, επιβεβαιώνοντας ότι εξακολουθούν να είναι συνδεδεμένοι με τον διακομιστή. Εάν ο διακομιστής δεν λαμβάνει κανένα σήμα από έναν υπολογιστή-πελάτη, αυτός ο υπολογιστής πρέπει να διερευνηθεί περαιτέρω για εντοπισμό σφαλμάτων. Στο σχήμα, ο διακομιστής μπορεί να συνδεθεί με 2 υπολογιστές-πελάτες (Client1 και Client2), αλλά δεν μπορεί να στείλει ή να λάβει σήμα από τον Client 3 και τον Client 4.
Η καλύτερη επιλογή για αυτά τα σενάρια Stress Testing είναι η εκτέλεση μιας νύχτας. Τα μεγάλα συμπλέγματα διακομιστών χρειάζονται μια πιο αποτελεσματική μέθοδο για να προσδιορίσουν ποιοι υπολογιστές έχουν παρουσιάσει βλάβες λόγω stress που πρέπει να διερευνηθούν.
Δοκιμή καταπόνησης εφαρμογών
Αυτές οι δοκιμές επικεντρώνονται στην εύρεση ελαττωμάτων που σχετίζονται με το κλείδωμα και τον αποκλεισμό δεδομένων, προβλήματα δικτύου και σημεία συμφόρησης στην απόδοση σε μία μόνο εφαρμογή.
Δοκιμές Συναλλακτικού Στρες
Εκτελεί δοκιμές αντοχής σε μία ή περισσότερες συναλλαγές μεταξύ δύο ή περισσότερων εφαρμογών. Χρησιμοποιείται για την βελτιστοποίηση και τη βελτίωση του συστήματος.
Δοκιμές Συστημικού Στρες
Πρόκειται για ολοκληρωμένο Stress Testing που μπορεί να εκτελεστεί σε πολλά συστήματα που μοιράζονται τον ίδιο διακομιστή. Χρησιμοποιείται για τον εντοπισμό ελαττωμάτων όπου μια εφαρμογή μπλοκάρει τα δεδομένα μιας άλλης εφαρμογής.
Εξερευνητική Δοκιμή Στρες
Αυτός είναι ο τύπος δοκιμής ακραίων καταστάσεων που χρησιμοποιείται για τη δοκιμή του συστήματος με ασυνήθιστες παραμέτρους ή συνθήκες που είναι απίθανο να εμφανιστούν σε ένα πραγματικό σενάριο. Χρησιμοποιείται για την εύρεση ελαττωμάτων σε απροσδόκητες καταστάσεις όπως:
- Ένας μεγάλος αριθμός χρηστών συνδέθηκε ταυτόχρονα.
- Ένα πρόγραμμα σάρωσης ιών που ξεκινά σε όλα τα μηχανήματα ταυτόχρονα.
- Μια βάση δεδομένων που απενεργοποιείται κατά την πρόσβαση σε αυτήν από έναν ιστότοπο.
- Ένας μεγάλος όγκος δεδομένων εισάγεται ταυτόχρονα στη βάση δεδομένων.
Όποια παραλλαγή κι αν εφαρμοστεί, η ακολουθία εκτέλεσης παραμένει η ίδια.
Πώς να κάνετε τεστ άγχους;
Η διαδικασία Stress Testing μπορεί να γίνει σε 5 κύρια βήματα:
- Βήμα 1) Σχεδιασμός του Stress Test: Εδώ συλλέγετε τα δεδομένα του συστήματος, αναλύετε το σύστημα και καθορίζετε τους στόχους της δοκιμής αντοχής.
- Βήμα 2) Δημιουργήστε σενάρια αυτοματισμού: Σε αυτήν τη φάση, δημιουργείτε τα σενάρια αυτοματοποίησης των δοκιμών ακραίων καταστάσεων και δημιουργείτε τα δεδομένα δοκιμών για τα σενάρια ακραίων καταστάσεων.
- Βήμα 3) Εκτέλεση σεναρίου: Σε αυτό το στάδιο, εκτελείτε τα σενάρια αυτοματοποίησης δοκιμών αντοχής και αποθηκεύετε τα αποτελέσματα της καταπόνησης.
- Βήμα 4) Ανάλυση αποτελεσμάτων: Σε αυτό το στάδιο, αναλύετε τα αποτελέσματα της δοκιμής αντοχής και εντοπίζετε σημεία συμφόρησης.
- Βήμα 5) Προσαρμογή και Βελτιστοποίηση: Σε αυτό το στάδιο, βελτιστοποιείτε το σύστημα, αλλάζετε τις διαμορφώσεις και βελτιστοποιείτε τον κώδικα με στόχο την επίτευξη του επιθυμητού σημείου αναφοράς.
Τέλος, εκτελείτε ξανά ολόκληρο τον κύκλο για να διαπιστώσετε εάν οι τροποποιήσεις έχουν αποφέρει τα επιθυμητά αποτελέσματα. Για παράδειγμα, δεν είναι ασυνήθιστο να χρειάζονται 3 έως 4 κύκλοι της διαδικασίας Stress Testing πριν επιτευχθούν οι στόχοι απόδοσης, επομένως τα σενάρια συνήθως συντηρούνται παράλληλα με το οπισθοδρόμηση για.
Εργαλεία που συνιστώνται για δοκιμές αντοχής
Τα τέσσερα εργαλεία παρακάτω καλύπτουν τις περισσότερες ανάγκες, από σουίτες για επιχειρήσεις έως μια δωρεάν επιλογή ανοιχτού κώδικα.
LoadRunner
LoadRunner είναι ένα ευρέως χρησιμοποιούμενο εργαλείο δοκιμής φορτίου, που πωλείται τώρα από OpenText σε εκδόσεις Professional, Enterprise και Cloud μετά τη μετάβαση από HP σε Micro Focus OpenTextΤα αποτελέσματα των δοκιμών φόρτωσης που παράγονται από το LoadRunner αντιμετωπίζονται ως σημείο αναφοράς.
JMeter
Apache JMeter είναι ένα εργαλείο δοκιμών ανοιχτού κώδικα. Είναι ένα καθαρό Java εφαρμογή για δοκιμές καταπόνησης και απόδοσης και προορίζεται να καλύψει τύπους δοκιμών όπως φορτίο, λειτουργικότητα και καταπόνηση. Οι τρέχουσες εκδόσεις 5.6.x του Apache JMeter απαιτούν Java 8 ή νεότερη έκδοση, με Java 17 συνιστάται.
Stress Tester
Αυτό το εργαλείο παρέχει εκτενή ανάλυση της απόδοσης των διαδικτυακών εφαρμογών, παρουσιάζει τα αποτελέσματα σε γραφική μορφή και είναι εύκολο στη χρήση. Δεν απαιτείται scripting υψηλού επιπέδου, γεγονός που διατηρεί την απόδοση της επένδυσης στοtracκατάλληλο για μικρότερες ομάδες.
NeoΦορτίο
NeoΦορτίο, τώρα μέρος του Tricentis portfolio, είναι ένα δημοφιλές εργαλείο για τον έλεγχο ιστού και Κινητές εφαρμογέςΜπορεί να προσομοιώσει χιλιάδες χρήστες, προκειμένου να αξιολογήσει την απόδοση των εφαρμογών υπό φόρτο εργασίας και να αναλύσει τους χρόνους απόκρισης. Υποστηρίζει επίσης την απόδοση, το φόρτο εργασίας και τις δοκιμές αντοχής που είναι ενσωματωμένες στο cloud, και κλιμακώνεται καλά.
Περισσότερες επιλογές παρατίθενται στον οδηγό για εργαλεία δοκιμής απόδοσης; όποιο και αν επιλεγεί, η απόδοσή του σημαίνει κάτι μόνο σε σχέση με τις παρακάτω μετρήσεις.
Μετρήσεις για τεστ άγχους
Οι μετρήσεις βοηθούν στην αξιολόγηση της απόδοσης ενός συστήματος και γενικά μελετώνται στο τέλος της Δοκιμής Ακραίας Καταπόνησης. Οι μετρήσεις που χρησιμοποιούνται συνήθως ομαδοποιούνται σε τρεις οικογένειες.
Μέτρηση Επεκτασιμότητας και Απόδοσης
- Σελίδες ανά δευτερόλεπτο: Μετράει τον αριθμό των σελίδων που έχουν ζητηθεί ανά δευτερόλεπτο.
- Διακίνηση: Μια βασική μέτρηση — μέγεθος δεδομένων απόκρισης ανά δευτερόλεπτο.
- Γύροι: Ο αριθμός των φορών που έχουν σχεδιαστεί σενάρια δοκιμών σε σύγκριση με τον αριθμό των φορών που ένας πελάτης τα έχει εκτελέσει.
Απάντηση Εφαρμογής
- Ώρα επιτυχίας: Μέσος χρόνος για την ανάκτηση μιας εικόνας ή μιας σελίδας.
- Χρόνος μέχρι το πρώτο byte: Χρόνος που απαιτείται για την επιστροφή του πρώτου byte δεδομένων ή πληροφοριών.
- Χρόνος σελίδας: Χρόνος που απαιτείται για την ανάκτηση όλων των πληροφοριών σε μια σελίδα.
Αποτυχίες
- Αποτυχημένες συνδέσεις: Αριθμός αποτυχημένων συνδέσεων που απορρίφθηκαν από τον πελάτη (ασθενές σήμα).
- Αποτυχημένοι γύροι: Αριθμός γύρων που αποτυγχάνουν.
- Αποτυχημένες επιτυχίες: Αριθμός αποτυχημένων προσπαθειών από το σύστημα (σπασμένοι σύνδεσμοι ή εικόνες που δεν εμφανίζονται).
Η τελευταία ενότητα παραθέτει τις καταστάσεις που δικαιολογούν συχνότερα μια δοκιμή αντοχής σε ακραίες καταστάσεις.
Παραδείγματα Δοκιμών Στρες
Το Stress Testing κερδίζει τη θέση του κάθε φορά που ένα συμβάν αναμένεται να ωθήσει την επισκεψιμότητα πολύ πέρα από το ημερήσιο βασικό όριο:
- Ένας ιστότοπος ηλεκτρονικού εμπορίου που ανακοινώνει μια πώληση φεστιβάλ.
- Μια ειδησεογραφική ιστοσελίδα την ώρα ενός σημαντικού γεγονότος.
- Εκπαιδευτικό συμβούλιο δημοσιεύει τα αποτελέσματα των εξετάσεων.
- Ιστότοποι κοινωνικής δικτύωσης, ιστολόγια και εφαρμογές για κινητά σε μια στιγμή που έγινε viral.
Σε κάθε περίπτωση, η δοκιμή παρακολουθεί πόρους όπως η μνήμη, ο επεξεργαστής και το δίκτυο, ελέγχει ότι εμφανίζονται τα κατάλληλα μηνύματα σφάλματος υπό πίεση και επιβεβαιώνει ότι το σύστημα επιστρέφει στην κανονικότητα στη συνέχεια. Εντάσσεται στο κύκλος ζωής δοκιμής λογισμικού ως μη λειτουργικός έλεγχος παράλληλα Δοκιμή συστήματος και το ευρύτερο σύνολο των τύποι δοκιμών λογισμικού.

.png)
.png)

