what is scalability testing
Εισαγωγή στη δοκιμή κλιμάκωσης:
Το Scalability Testing είναι μια μη λειτουργική μεθοδολογία δοκιμών στην οποία η απόδοση μιας εφαρμογής μετράται από την άποψη της ικανότητάς της να κλιμακώσει ή να μειώσει τον αριθμό των αιτημάτων χρήστη ή άλλα παρόμοια χαρακτηριστικά μέτρησης απόδοσης.
Ο έλεγχος επεκτασιμότητας μπορεί να πραγματοποιηθεί σε επίπεδο υλικού, λογισμικού ή βάσης δεδομένων.
Οι παράμετροι που χρησιμοποιούνται για αυτόν τον έλεγχο διαφέρουν από τη μια εφαρμογή στην άλλη, για μια ιστοσελίδα, μπορεί να είναι ο αριθμός των χρηστών, η χρήση της CPU, η χρήση του δικτύου, ενώ για έναν διακομιστή ιστού θα ήταν ο αριθμός των αιτημάτων που υποβάλλονται σε επεξεργασία.
Αυτό το σεμινάριο θα σας δώσει μια πλήρη επισκόπηση του Έλεγχος επεκτασιμότητας μαζί με τα χαρακτηριστικά του και τα διάφορα βήματα που απαιτούνται για την εκτέλεση της δοκιμής με πρακτικά παραδείγματα για να μπορέσετε να κατανοήσετε καλύτερα την έννοια.
Τι θα μάθετε:
καλύτερο λογισμικό μετατροπής βίντεο για Windows
- Δοκιμή κλιμάκωσης Vs Δοκιμή δοκιμής
- Χαρακτηριστικά δοκιμής κλιμάκωσης
- Βήματα για τον έλεγχο της επεκτασιμότητας μιας εφαρμογής
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Δοκιμή κλιμάκωσης Vs Δοκιμή δοκιμής
Load Testing μετρά την εφαρμογή υπό δοκιμή υπό το μέγιστο φορτίο στο οποίο το σύστημα θα συντριβεί. Ο κύριος σκοπός της δοκιμής φορτίου είναι να προσδιοριστεί το σημείο αιχμής μετά το οποίο οι χρήστες δεν θα μπορούσαν να χρησιμοποιήσουν το σύστημα.
Τόσο το φορτίο όσο και η επεκτασιμότητα εμπίπτουν στη μεθοδολογία Δοκιμή απόδοσης.
Η επεκτασιμότητα διαφέρει από τη δοκιμή φόρτωσης στο γεγονός ότι η δοκιμή κλιμάκωσης μετρά το σύστημα στο ελάχιστο και μέγιστο φορτίο σε όλα τα επίπεδα, συμπεριλαμβανομένων των επιπέδων λογισμικού, υλικού και βάσης δεδομένων. Μόλις εντοπιστεί το μέγιστο φορτίο, οι προγραμματιστές πρέπει να ανταποκριθούν κατάλληλα για να διασφαλίσουν ότι το σύστημα είναι επεκτάσιμο μετά από ένα συγκεκριμένο φορτίο.
Παράδειγμα: Εάν η δοκιμή επεκτασιμότητας καθορίζει το μέγιστο φορτίο να είναι 10.000 χρήστες, τότε για να είναι επεκτάσιμο το σύστημα, οι προγραμματιστές πρέπει να λάβουν μέτρα για παράγοντες όπως η μείωση του χρόνου απόκρισης μετά την επίτευξη του ορίου των 10.000 χρηστών ή η αύξηση του μεγέθους RAM για να φιλοξενήσει τα αυξανόμενα δεδομένα χρήστη.
Η δοκιμή φορτίου περιλαμβάνει την τοποθέτηση ενός μέγιστου φορτίου στις ανεπτυγμένες εφαρμογές ταυτόχρονα, ενώ η δοκιμή κλιμάκωσης συνεπάγεται σταδιακή αύξηση του φορτίου για μια χρονική περίοδο σταδιακά.
Η δοκιμή φόρτωσης καθορίζει το σημείο κατά το οποίο διακόπτεται η εφαρμογή, ενώ η επεκτασιμότητα προσπαθεί να εντοπίσει τον λόγο της διακοπής εφαρμογής και να λάβει μέτρα για την επίλυση του ζητήματος.
Εν ολίγοις, η δοκιμή φόρτωσης βοηθά στον εντοπισμό των προβλημάτων απόδοσης, ενώ η δοκιμή κλιμάκωσης βοηθά στον εντοπισμό του εάν το σύστημα μπορεί να κλιμακώσει τον αυξανόμενο αριθμό χρηστών.
Χαρακτηριστικά δοκιμής κλιμάκωσης
Τα χαρακτηριστικά δοκιμής κλιμάκωσης καθορίζουν τα μέτρα απόδοσης βάσει των οποίων θα πραγματοποιηθεί αυτή η δοκιμή.
Ακολουθούν μερικά από τα κοινά χαρακτηριστικά:
1) Χρόνος απόκρισης:
- Ο χρόνος απόκρισης είναι ο χρόνος μεταξύ του αιτήματος χρήστη και της απόκρισης της εφαρμογής. Αυτός ο έλεγχος πραγματοποιείται για τον προσδιορισμό του χρόνου απόκρισης του διακομιστή κάτω από το ελάχιστο φορτίο, το όριο φορτίου και το μέγιστο φορτίο για τον προσδιορισμό του σημείου στο οποίο η εφαρμογή θα σπάσει.
- Ο χρόνος απόκρισης μπορεί να αυξηθεί ή να μειωθεί με βάση το διαφορετικό φορτίο χρήστη στην εφαρμογή. Στην ιδανική περίπτωση, ο χρόνος απόκρισης μιας εφαρμογής θα μειωνόταν καθώς το φορτίο χρήστη συνεχίζει να αυξάνεται.
- Μια εφαρμογή μπορεί να θεωρηθεί επεκτάσιμη εάν μπορεί να προσφέρει τον ίδιο χρόνο απόκρισης για διάφορα επίπεδα φόρτωσης χρήστη.
- Στην περίπτωση ομαδοποιημένων περιβαλλόντων όπου το φορτίο εφαρμογής κατανέμεται μεταξύ πολλών στοιχείων διακομιστή, η δοκιμή κλιμάκωσης πρέπει να μετρά το βαθμό στον οποίο ο εξισορροπητής φορτίου κατανέμει το φορτίο σε πολλούς διακομιστές. Αυτό θα εξασφαλίσει ότι ο ένας διακομιστής δεν θα υπερφορτωθεί με αιτήματα ενώ ο άλλος διακομιστής βρίσκεται σε αδράνεια περιμένοντας ένα αίτημα για είσοδο.
- Ο χρόνος απόκρισης κάθε στοιχείου διακομιστή πρέπει να μετρηθεί προσεκτικά εάν η εφαρμογή φιλοξενείται σε περιβάλλον συμπλέγματος και ο έλεγχος επεκτασιμότητας πρέπει να διασφαλίζει ότι ο χρόνος απόκρισης κάθε στοιχείου διακομιστή πρέπει να είναι ο ίδιος ανεξάρτητα από την ποσότητα φορτίου που τοποθετείται σε κάθε διακομιστή.
- Παράδειγμα: Ο χρόνος απόκρισης μπορεί να μετρηθεί ως ο χρόνος κατά τον οποίο ο χρήστης εισάγει τη διεύθυνση URL σε ένα πρόγραμμα περιήγησης ιστού μέχρι τη στιγμή που απαιτείται η φόρτωση του περιεχομένου από την ιστοσελίδα. Όσο μικρότερος είναι ο χρόνος απόκρισης, τόσο υψηλότερη θα είναι η απόδοση μιας εφαρμογής.
2) Απόδοση:
- Throughput είναι το μέτρο ενός αριθμού αιτημάτων που υποβάλλονται σε επεξεργασία κατά τη διάρκεια μιας μονάδας από την εφαρμογή.
- Το αποτέλεσμα της απόδοσης μπορεί να διαφέρει από τη μία εφαρμογή στην άλλη. Εάν πρόκειται για διαδικτυακή εφαρμογή, η απόδοση μετράται με βάση τον αριθμό των αιτημάτων χρήστη που υποβάλλονται σε επεξεργασία ανά μονάδα χρόνου και εάν πρόκειται για βάση δεδομένων. η απόδοση μετράται με βάση έναν αριθμό ερωτημάτων που υποβάλλονται σε επεξεργασία κατά τη διάρκεια της μονάδας.
- Μια εφαρμογή θεωρείται επεκτάσιμη εάν μπορεί να προσφέρει την ίδια απόδοση για διάφορα επίπεδα φόρτωσης στις εσωτερικές εφαρμογές, το υλικό και τη βάση δεδομένων.
3) Χρήση CPU:
- Η χρήση CPU είναι ένα μέτρο της χρήσης CPU για την εκτέλεση μιας εργασίας από μια εφαρμογή. Η χρήση του CPU συνήθως μετράται με βάση τη μονάδα MegaHertz.
- Στην ιδανική περίπτωση, όσο πιο βελτιστοποιημένος είναι ο κωδικός εφαρμογής, τόσο λιγότερο θα παρατηρείται η χρήση CPU.
- Για να επιτευχθεί αυτό, πολλοί οργανισμοί χρησιμοποιούν τυπικές πρακτικές προγραμματισμού για την ελαχιστοποίηση της χρήσης CPU.
- Παράδειγμα: Αφαίρεση νεκρού κώδικα στην εφαρμογή και ελαχιστοποίηση της χρήσης του νήματος. Οι μέθοδοι ύπνου είναι μια από τις βέλτιστες πρακτικές προγραμματισμού για την ελαχιστοποίηση της χρήσης CPU.
4) Χρήση μνήμης:
- Η χρήση μνήμης είναι ένα μέτρο της μνήμης που καταναλώνεται για την εκτέλεση μιας εργασίας από μια εφαρμογή.
- Στην ιδανική περίπτωση, η μνήμη μετράται σε όρους byte (MegaBytes, GigaBytes ή Tera Bytes) που χρησιμοποιεί η αναπτυγμένη εφαρμογή προκειμένου να έχει πρόσβαση στη μνήμη τυχαίας προσπέλασης (RAM).
- Η χρήση μνήμης μιας εφαρμογής μπορεί να ελαχιστοποιηθεί ακολουθώντας τις βέλτιστες πρακτικές προγραμματισμού.
- Παραδείγματα βέλτιστων πρακτικών προγραμματισμού δεν θα ήταν η χρήση περιττών βρόχων, η μείωση των επισκέψεων στη βάση δεδομένων, η χρήση της προσωρινής μνήμης, η βελτιστοποίηση της χρήσης ερωτημάτων SQL κ.λπ. Μια εφαρμογή θεωρείται ότι είναι επεκτάσιμη εάν ελαχιστοποιεί τη χρήση της μνήμης σε τη μέγιστη δυνατή έκταση.
- Παράδειγμα: Εάν ο διαθέσιμος χώρος αποθήκευσης για συγκεκριμένο αριθμό χρηστών εξαντληθεί, τότε ο προγραμματιστής θα αναγκαστεί να προσθέσει επιπλέον χώρο αποθήκευσης βάσης δεδομένων για να αντισταθμίσει την απώλεια δεδομένων.
5) Χρήση δικτύου:
- Η χρήση δικτύου είναι το μέγεθος του εύρους ζώνης που καταναλώνεται από μια υπό δοκιμή εφαρμογή.
- Ο στόχος της χρήσης του δικτύου είναι να μειωθεί η συμφόρηση του δικτύου. Η χρήση του δικτύου μετράται σε όρους byte που λαμβάνονται ανά δευτερόλεπτο, καρέ που λαμβάνονται ανά δευτερόλεπτο, τμήματα που λαμβάνονται και αποστέλλονται ανά δευτερόλεπτο κ.λπ.
- Τεχνικές προγραμματισμού όπως η χρήση τεχνικών συμπίεσης μπορούν να βοηθήσουν στη μείωση της συμφόρησης και στην ελαχιστοποίηση της χρήσης του δικτύου. Μια εφαρμογή θεωρείται επεκτάσιμη εάν μπορεί να εκτελέσει με ελάχιστη συμφόρηση δικτύου και να προσφέρει υψηλή απόδοση εφαρμογών.
- Παράδειγμα: Αντί να ακολουθεί έναν μηχανισμό ουράς για την επεξεργασία των αιτημάτων των χρηστών, ένας προγραμματιστής μπορεί να γράψει τον κώδικα για την επεξεργασία των αιτημάτων του χρήστη όταν και όταν το αίτημα φτάσει σε μια βάση δεδομένων.
Εκτός από αυτές τις παραμέτρους, υπάρχουν λίγες άλλες λιγότερο χρησιμοποιούμενες παράμετροι όπως χρόνος απόκρισης αιτήματος διακομιστή, χρόνος εκτέλεσης εργασιών, χρόνος συναλλαγής, χρόνος φόρτωσης ιστοσελίδας, χρόνος λήψης της απόκρισης από τη βάση δεδομένων, χρόνος επανεκκίνησης, χρόνος εκτύπωσης, χρόνος συνεδρίας, μετάβαση οθόνης , συναλλαγές ανά δευτερόλεπτο, επισκέψεις ανά δευτερόλεπτο, αιτήσεις ανά δευτερόλεπτο κ.λπ.
Τα χαρακτηριστικά για δοκιμή επεκτασιμότητας ενδέχεται να διαφέρουν από τη μία εφαρμογή στην άλλη, καθώς το μέτρο απόδοσης για εφαρμογές ιστού ενδέχεται να μην είναι το ίδιο με αυτό της επιφάνειας εργασίας ή της εφαρμογής διακομιστή-πελάτη.
Βήματα για τον έλεγχο της επεκτασιμότητας μιας εφαρμογής
Το κύριο πλεονέκτημα της εκτέλεσης αυτής της δοκιμής σε μια εφαρμογή είναι η κατανόηση της συμπεριφοράς του χρήστη όταν επιτυγχάνεται το μέγιστο φορτίο και οι τρόποι επίλυσής του.
Επίσης, αυτή η δοκιμή επιτρέπει στους δοκιμαστές να εντοπίσουν την υποβάθμιση και τον χρόνο απόκρισης από τον διακομιστή σε σχέση με το φορτίο χρήστη της εφαρμογής. Ως αποτέλεσμα, αυτή η δοκιμή προτιμάται σε διάφορους οργανισμούς παγκοσμίως.
Παρακάτω δίνεται η λίστα βημάτων για τη δοκιμή της επεκτασιμότητας μιας εφαρμογής:
- Δημιουργήστε επαναλαμβανόμενα σενάρια δοκιμής για καθένα από τα χαρακτηριστικά δοκιμής επεκτασιμότητας.
- Ελέγξτε την εφαρμογή για διάφορα επίπεδα φορτίου, όπως χαμηλά, μεσαία και υψηλά φορτία και επαληθεύστε τη συμπεριφορά μιας εφαρμογής.
- Δημιουργήστε ένα δοκιμαστικό περιβάλλον που είναι αρκετά σταθερό για να αντέξει σε ολόκληρο τον κύκλο δοκιμής κλιμάκωσης.
- Διαμορφώστε το υλικό που απαιτείται για να εκτελέσετε αυτόν τον έλεγχο.
- Ορίστε ένα σύνολο εικονικών χρηστών για την επαλήθευση της συμπεριφοράς μιας εφαρμογής υπό διαφορετικό φορτίο χρήστη.
- Επαναλάβετε τα σενάρια δοκιμής για πολλούς χρήστες υπό διαφορετικές συνθήκες εσωτερικών εφαρμογών, αλλαγών υλικού και βάσης δεδομένων.
- Σε περίπτωση ομαδοποιημένου περιβάλλοντος, επικυρώστε εάν ο αντισταθμιστής φορτίου κατευθύνει τα αιτήματα του χρήστη σε πολλούς διακομιστές για να διασφαλίσετε ότι κανένας διακομιστής δεν υπερφορτώνεται από μια σειρά αιτημάτων.
- Εκτελέστε τα σενάρια δοκιμής στο περιβάλλον δοκιμής.
- Αναλύστε τις αναφορές που δημιουργήθηκαν και επαληθεύστε τους τομείς βελτίωσης, εάν υπάρχουν.
συμπέρασμα
Με λίγα λόγια,
=> Η δοκιμή επεκτασιμότητας είναι μια μη λειτουργική μεθοδολογία δοκιμών για την επαλήθευση εάν μια εφαρμογή μπορεί να κλιμακώσει ή να μειώσει τα διάφορα χαρακτηριστικά. Τα χαρακτηριστικά που χρησιμοποιούνται για αυτόν τον έλεγχο θα διαφέρουν από τη μία εφαρμογή στην άλλη.
=> Ο κύριος στόχος αυτής της δοκιμής είναι να προσδιοριστεί πότε μια εφαρμογή αρχίζει να υποβαθμίζεται με μέγιστο φορτίο και να λάβει τα κατάλληλα μέτρα για να διασφαλίσει ότι η αναπτυγμένη εφαρμογή είναι αρκετά επεκτάσιμη ώστε να προσαρμόσει τις αλλαγές στις εσωτερικές εφαρμογές, λογισμικό, υλικό και επίσης τη βάση δεδομένων αλλαγές στο μέλλον.
=> Εάν αυτός ο έλεγχος γίνει σωστά, μπορεί να εντοπιστούν σημαντικά σφάλματα σε σχέση με την απόδοση στο λογισμικό, το υλικό και τη βάση δεδομένων στις αναπτυγμένες εφαρμογές.
=> Ένα σημαντικό μειονέκτημα αυτής της δοκιμής θα ήταν ο περιορισμός αποθήκευσης δεδομένων, με όρια στο μέγεθος της βάσης δεδομένων και στον χώρο αποθήκευσης. Επίσης, οι περιορισμοί εύρους ζώνης δικτύου μπορούν να αποτελέσουν εμπόδιο στη δοκιμή επεκτασιμότητας.
=> Η διαδικασία της δοκιμής επεκτασιμότητας διαφέρει από έναν οργανισμό σε έναν άλλο οργανισμό, καθώς τα χαρακτηριστικά δοκιμής επεκτασιμότητας μιας εφαρμογής θα διαφέρουν από τις άλλες εφαρμογές.
Συνιστώμενη ανάγνωση
- Φόρτωση δοκιμής με HP LoadRunner Tutorials
- Δοκιμή απόδοσης έναντι δοκιμής φορτίου έναντι δοκιμής πίεσης (διαφορά)
- Διαφορά μεταξύ Desktop, Client Server Testing και Web Testing
- Φόρτωση εφαρμογών ιστού, έλεγχος πίεσης και απόδοσης χρησιμοποιώντας WAPT
- Τα καλύτερα εργαλεία δοκιμής λογισμικού 2021 (QA Test Automation Tools)
- Οδηγός δοκιμών ασφάλειας εφαρμογών Ιστού
- Δοκιμή εφαρμογών - Στα βασικά του ελέγχου λογισμικού!
- Εγκατάσταση της εφαρμογής σας στη συσκευή και έναρξη δοκιμών από το Eclipse