Τι είναι το Stress Testing στο Software Testing;
Έλεγχος πίεσης
Έλεγχος πίεσης είναι ένας τύπος δοκιμής λογισμικού που επαληθεύει τη σταθερότητα και την αξιοπιστία της εφαρμογής λογισμικού. Ο στόχος του Stress Testing είναι η μέτρηση του λογισμικού σχετικά με την ευρωστία του και τις δυνατότητές του χειρισμού σφαλμάτων σε συνθήκες εξαιρετικά βαριάς φόρτισης και να διασφαλιστεί ότι το λογισμικό δεν καταρρέει σε καταστάσεις κρίσης. Δοκιμάζει ακόμη και πέρα από τα κανονικά σημεία λειτουργίας και αξιολογεί πώς λειτουργεί το λογισμικό κάτω από ακραίες συνθήκες.
Στη Μηχανική Λογισμικού, το Stress Testing είναι επίσης γνωστό ως Τεστ Αντοχής. Στο πλαίσιο του Stress Testing, το AUT υφίσταται πίεση για σύντομο χρονικό διάστημα για να γνωρίζει την αντοχή του. Μια πιο σημαντική χρήση του stress testing είναι ο προσδιορισμός του ορίου στο οποίο σπάει το σύστημα ή το λογισμικό ή το υλικό. Ελέγχει επίσης εάν το σύστημα επιδεικνύει αποτελεσματική διαχείριση σφαλμάτων υπό ακραίες συνθήκες.
Η εφαρμογή υπό δοκιμή θα τονιστεί όταν τα δεδομένα 5 GB αντιγραφούν από τον ιστότοπο και επικολληθούν στο σημειωματάριο. Το Σημειωματάριο είναι υπό πίεση και δίνει το μήνυμα λάθους "Δεν ανταποκρίθηκε".
Ανάγκη για τεστ άγχους
Εξετάστε τα ακόλουθα παραδείγματα σε πραγματικό χρόνο όπου μπορούμε να ανακαλύψουμε τη χρήση του Stress Testing-
- Κατά τη διάρκεια του φεστιβάλ, ένας ιστότοπος ηλεκτρονικών αγορών μπορεί να παρατηρήσει αύξηση στην επισκεψιμότητα ή όταν ανακοινώνει μια πώληση.
- Όταν ένα blog αναφέρεται σε μια κορυφαία εφημερίδα, βιώνει μια ξαφνική αύξηση της επισκεψιμότητας.
Είναι επιτακτική ανάγκη να πραγματοποιήσετε Δοκιμές Καταπόνησης για να αντιμετωπίσετε τέτοιες ασυνήθιστες αιχμές κυκλοφορίας. Η αποτυχία αντιμετώπισης αυτής της ξαφνικής επισκεψιμότητας μπορεί να οδηγήσει σε απώλεια εσόδων και φήμης.
Το stress test είναι επίσης εξαιρετικά πολύτιμο για τους ακόλουθους λόγους:
- Για να ελέγξετε εάν το σύστημα λειτουργεί υπό μη κανονικές συνθήκες.
- Εμφάνιση κατάλληλου μηνύματος σφάλματος όταν το σύστημα είναι υπό πίεση.
- Η αποτυχία του συστήματος υπό ακραίες συνθήκες θα μπορούσε να οδηγήσει σε τεράστια απώλεια εσόδων
- Είναι καλύτερα να είστε προετοιμασμένοι για ακραίες συνθήκες εκτελώντας Stress Testing.
Στόχοι του Stress Testing
Ο στόχος του stress test είναι να αναλύσει τη συμπεριφορά του συστήματος μετά από μια αποτυχία. Για να είναι επιτυχής η δοκιμή ακραίων καταστάσεων, ένα σύστημα θα πρέπει να εμφανίζει ένα κατάλληλο μήνυμα σφάλματος ενώ βρίσκεται υπό ακραίες συνθήκες.
Για τη διεξαγωγή Stress Testing, μερικές φορές, μπορεί να χρησιμοποιηθούν τεράστια σύνολα δεδομένων που μπορεί να χαθούν κατά τη διάρκεια του Stress Testing. Οι υπεύθυνοι δοκιμών δεν πρέπει να χάνουν αυτά τα δεδομένα που σχετίζονται με την ασφάλεια κατά τη διάρκεια της δοκιμής ακραίων καταστάσεων.
Ο κύριος σκοπός του stress test είναι να βεβαιωθεί ότι το σύστημα ανακάμπτει μετά από αστοχία που ονομάζεται ως δυνατότητα ανάκτησης.
Δοκιμή φορτίου εναντίον δοκιμών καταπόνησης
Δοκιμές φορτίου | Έλεγχος πίεσης |
---|---|
Δοκιμές φορτίου είναι η δοκιμή της συμπεριφοράς του συστήματος υπό κανονικές συνθήκες φόρτου εργασίας και απλώς δοκιμάζει ή προσομοιώνει με τον πραγματικό φόρτο εργασίας | Η δοκιμή καταπόνησης είναι για τον έλεγχο της συμπεριφοράς του συστήματος κάτω από ακραίες συνθήκες και πραγματοποιείται μέχρι την αστοχία του συστήματος. |
Η δοκιμή φόρτωσης δεν σπάει το σύστημα | Το stress test προσπαθεί να σπάσει το σύστημα δοκιμάζοντας με συντριπτικά δεδομένα ή πόρους. |
Τύποι Stress Testing
Ακολουθούν οι τύποι προσομοίωσης ακραίων καταστάσεων και εξηγούνται ως εξής:
Κατανεμημένο τεστ άγχους:
Στα κατανεμημένα συστήματα πελάτη-διακομιστή, η δοκιμή γίνεται σε όλους τους πελάτες από τον διακομιστή. Ο ρόλος του stress server είναι να διανέμει ένα σύνολο από stress tests σε όλους τους πελάτες stress και να παρακολουθεί την κατάσταση του πελάτη. Αφού ο πελάτης έρθει σε επαφή με τον διακομιστή, ο διακομιστής προσθέτει το όνομα του πελάτη και ξεκινά την αποστολή δεδομένων για δοκιμή.
Εν τω μεταξύ, οι μηχανές πελάτη στέλνουν σήμα ή καρδιακό παλμό ότι είναι συνδεδεμένο με τον διακομιστή. Εάν ο διακομιστής δεν λαμβάνει σήματα από τον υπολογιστή-πελάτη, πρέπει να διερευνηθεί περαιτέρω για εντοπισμό σφαλμάτων. Από το σχήμα, ένας διακομιστής μπορεί να συνδεθεί με τους 2 πελάτες (Client1 και Client2), αλλά δεν μπορεί να στείλει ή να λάβει σήμα από τον Client 3 & 4.
Το νυχτερινό τρέξιμο είναι η καλύτερη επιλογή για την εκτέλεση αυτών των σεναρίων προσομοίωσης ακραίων καταστάσεων. Οι μεγάλες φάρμες διακομιστών χρειάζονται μια πιο αποτελεσματική μέθοδο για τον προσδιορισμό του ποιοι υπολογιστές είχαν αστοχίες πίεσης που πρέπει να διερευνηθούν.
Δοκιμή καταπόνησης εφαρμογής:
Αυτή η δοκιμή επικεντρώνεται στην εύρεση ελαττωμάτων που σχετίζονται με το κλείδωμα και τον αποκλεισμό δεδομένων, τα προβλήματα δικτύου και τα σημεία συμφόρησης απόδοσης σε μια εφαρμογή.
Συναλλακτικό Stress Test:
Κάνει δοκιμές ακραίων καταστάσεων σε μία ή περισσότερες συναλλαγές μεταξύ δύο ή περισσότερων εφαρμογών. Χρησιμοποιείται για τη βελτιστοποίηση και τη βελτιστοποίηση του συστήματος.
Συστημικό τεστ άγχους:
Πρόκειται για ενσωματωμένο stress test που μπορεί να δοκιμαστεί σε πολλαπλά συστήματα που εκτελούνται στον ίδιο διακομιστή. Χρησιμοποιείται για την εύρεση ελαττωμάτων όπου τα δεδομένα μιας εφαρμογής αποκλείουν μια άλλη εφαρμογή.
Διερευνητικό τεστ άγχους:
Αυτός είναι ένας από τους τύπους προσομοίωσης ακραίων καταστάσεων που χρησιμοποιείται για τον έλεγχο του συστήματος με ασυνήθιστες παραμέτρους ή συνθήκες που είναι απίθανο να συμβούν σε πραγματικό σενάριο. Χρησιμοποιείται για την εύρεση ελαττωμάτων σε απροσδόκητα σενάρια όπως
- Ένας μεγάλος αριθμός χρηστών συνδέθηκε ταυτόχρονα
- Εάν ένας ανιχνευτής ιών ξεκίνησε σε όλα τα μηχανήματα ταυτόχρονα
- Εάν η Βάση Δεδομένων είναι εκτός σύνδεσης όταν γίνεται πρόσβαση σε αυτήν από έναν ιστότοπο,
- Όταν ένας μεγάλος όγκος δεδομένων εισάγεται στη βάση δεδομένων ταυτόχρονα
Πώς να κάνετε τεστ άγχους;
Η διαδικασία Stress Testing μπορεί να γίνει σε 5 βασικά βήματα:
Βήμα 1) Σχεδιασμός του Stress Test: Εδώ συγκεντρώνετε τα δεδομένα του συστήματος, αναλύετε το σύστημα, ορίζετε τους στόχους του stress test
Βήμα 2) Δημιουργήστε σενάρια αυτοματισμού: Σε αυτή τη φάση, δημιουργείτε τα σενάρια αυτοματισμού δοκιμών πίεσης, δημιουργείτε τα δεδομένα δοκιμής για τα σενάρια πίεσης.
Βήμα 3) Εκτέλεση σεναρίου: Σε αυτό το στάδιο, εκτελείτε τα σενάρια αυτοματισμού δοκιμών πίεσης και αποθηκεύετε τα αποτελέσματα άγχους.
Βήμα 4) Ανάλυση αποτελεσμάτων: Σε αυτό το στάδιο, αναλύετε τα αποτελέσματα του Stress Test και εντοπίζετε τα σημεία συμφόρησης.
Βήμα 5) Προσαρμογή και βελτιστοποίηση: Σε αυτό το στάδιο, ρυθμίζετε με ακρίβεια το σύστημα, αλλάζετε διαμορφώσεις, βελτιστοποιείτε τον κώδικα με στόχο την επίτευξη του επιθυμητού σημείου αναφοράς.
Τέλος, εκτελείτε ξανά ολόκληρο τον κύκλο για να διαπιστώσετε ότι οι τροποποιήσεις έχουν δώσει τα επιθυμητά αποτελέσματα. Για παράδειγμα, δεν είναι ασυνήθιστο να χρειαστείτε 3 έως 4 κύκλους της διαδικασίας Stress Testing για να επιτύχετε τους στόχους απόδοσης
Εργαλεία που συνιστώνται για τεστ καταπόνησης
LoadRunner
Το LoadRunner από την HP είναι ένα ευρέως χρησιμοποιούμενο εργαλείο Load Testing. Τα αποτελέσματα δοκιμής φορτίου που διαμορφώνονται από το Loadrunner θεωρούνται ως σημείο αναφοράς.
Τζμέτερ
Το Jmeter είναι ένα εργαλείο δοκιμής ανοιχτού κώδικα. Είναι ένα καθαρό Java εφαρμογή για άγχος και Δοκιμές Απόδοσης. Το Jmeter προορίζεται να καλύψει τύπους δοκιμών όπως φορτίο, λειτουργικό, στρες κ.λπ. Χρειάζεται JDK 5 ή υψηλότερο για να λειτουργήσει.
Stress Tester
Αυτό το εργαλείο παρέχει εκτενή ανάλυση της απόδοσης της εφαρμογής web, παρέχει αποτελέσματα σε γραφική μορφή και είναι εξαιρετικά εύκολο στη χρήση. Δεν απαιτείται σενάριο υψηλού επιπέδου και παρέχει καλή απόδοση επένδυσης.
Neo φορτίο
Αυτό είναι ένα δημοφιλές εργαλείο που διατίθεται στην αγορά για τη δοκιμή του ιστού και Κινητό εφαρμογές. Αυτό το εργαλείο μπορεί να προσομοιώσει χιλιάδες χρήστες προκειμένου να αξιολογήσει την απόδοση της εφαρμογής υπό φόρτωση και να αναλύσει τους χρόνους απόκρισης. Υποστηρίζει επίσης ενσωματωμένη στο Cloud – δοκιμές απόδοσης, φορτίου και καταπόνησης. Είναι εύκολο στη χρήση, οικονομικά αποδοτικό και παρέχει καλή επεκτασιμότητα.
Μετρήσεις για τεστ άγχους
Οι μετρήσεις βοηθούν στην αξιολόγηση της απόδοσης ενός συστήματος και γενικά μελετώνται στο τέλος του Stress Test. Οι μετρήσεις που χρησιμοποιούνται συνήθως είναι -
Μέτρηση Επεκτασιμότητας & Απόδοσης
- Σελίδες ανά δευτερόλεπτο: Μετρά πόσες σελίδες έχουν ζητηθεί / Δευτερόλεπτο
- Παραγωγή: Βασική μέτρηση – Μέγεθος δεδομένων απόκρισης/Δευτερόλεπτο
- Γύροι: Αριθμός φορών που έχουν σχεδιαστεί σενάρια δοκιμών σε σχέση με τον αριθμό των φορών που έχει εκτελέσει ένας πελάτης
Απάντηση Εφαρμογής
- Χρόνος επίσκεψης: Μέσος χρόνος για την ανάκτηση μιας εικόνας ή μιας σελίδας
- Χρόνος για το πρώτο byte: Λαμβάνεται χρόνος για την επιστροφή του πρώτου byte δεδομένων ή πληροφοριών
- Χρόνος σελίδας: Απαιτείται χρόνος για την ανάκτηση όλων των πληροφοριών σε μια σελίδα
Αποτυχίες
- Αποτυχημένες συνδέσεις: Αριθμός αποτυχημένων συνδέσεων που απορρίφθηκαν από τον πελάτη (Αδύναμη Signal)
- Αποτυχημένοι γύροι: Ο αριθμός των γύρων που έλαβε απέτυχε
- Αποτυχημένες επισκέψεις: Αριθμός αποτυχημένων προσπαθειών που έγιναν από το σύστημα (σπασμένοι σύνδεσμοι ή αόρατες εικόνες)
Συμπέρασμα
Ο στόχος του stress test είναι ο έλεγχος του συστήματος κάτω από ακραίες συνθήκες. Παρακολουθεί πόρους συστήματος όπως Μνήμη, επεξεργαστή, δίκτυο κ.λπ., και ελέγχει την ικανότητα του συστήματος να επανέλθει στην κανονική κατάσταση. Ελέγχει εάν το σύστημα εμφανίζει κατάλληλα μηνύματα σφάλματος ενώ βρίσκεται υπό πίεση.
Παράδειγμα Stress Testing
- Ο ιστότοπος ηλεκτρονικού εμπορίου ανακοινώνει εκπτώσεις σε φεστιβάλ
- Ιστοσελίδα ειδήσεων την εποχή ορισμένων σημαντικών γεγονότων
- Ιστότοπος αποτελεσμάτων του Εκπαιδευτικού Συμβουλίου
- Ιστότοποι κοινωνικής δικτύωσης ή ιστολόγια, εφαρμογές κ.λπ