Τι είναι το Dynamic Testing; Τύποι, Τεχνικές & Παράδειγμα
⚡ Έξυπνη Σύνοψη
Οι Δυναμικές Δοκιμές εκτελούν την εφαρμογή και παρατηρούν πώς συμπεριφέρεται ο κώδικας που εκτελείται με πραγματικά δεδομένα εισόδου, έτσι ώστε οι δοκιμαστές να μπορούν να επικυρώσουν τη λειτουργικότητα, την απόδοση και τη σταθερότητα που καμία αναθεώρηση εγγράφων δεν μπορεί να αποκαλύψει.
Τι είναι το Dynamic Testing;
Δυναμική δοκιμή είναι μια μέθοδος δοκιμής λογισμικού που χρησιμοποιείται για τον έλεγχο της δυναμικής συμπεριφοράς κώδικα λογισμικού. Ο κύριος σκοπός των δυναμικών δοκιμών είναι η εξέταση της συμπεριφοράς του λογισμικού με δυναμικές μεταβλητές — μεταβλητές που δεν είναι σταθερές — και η εύρεση αδύναμων περιοχών στο περιβάλλον εκτέλεσης λογισμικού. Ο κώδικας πρέπει να εκτελεστεί για να ελεγχθεί η δυναμική συμπεριφορά.
Η δοκιμή είναι επαλήθευση και επικύρωση, και χρειάζονται και τα δύο V για να ολοκληρωθεί η δοκιμή. Η επαλήθευση πραγματοποιείται με στατικές δοκιμές, οι οποίες εξετάζουν τις απαιτήσεις, τα έγγραφα σχεδιασμού και τον κώδικα χωρίς να τα εκτελούν. Η επικύρωση πραγματοποιείται με δυναμικές δοκιμές, οι οποίες εκτελούν την έκδοση και συγκρίνει αυτό που κάνει στην πραγματικότητα η εφαρμογή με αυτό που υποτίθεται ότι πρέπει να κάνει.
Ο παρακάτω πίνακας ξεχωρίζει τα δύο με μια ματιά.
| Άποψη | Στατικές δοκιμές (επαλήθευση) | Δυναμικές δοκιμές (επικύρωση) |
| Code εκτελέστηκε | Οχι | Ναι |
| Τυπικές δραστηριότητες | Revεμπειρίες, περιηγήσεις, επιθεωρήσεις, στατική ανάλυση | Εκτέλεση δοκιμαστικής περίπτωσης σε όλα τα επίπεδα δοκιμών |
| Η ερώτηση απαντήθηκε | Κατασκευάζουμε σωστά το προϊόν; | Κατασκευάζουμε το σωστό προϊόν; |
| Βρέθηκαν ελαττώματα | Ασαφείς απαιτήσεις, παραβιάσεις προτύπων κωδικοποίησης, νεκρός κώδικας | Λάθος έξοδος, διαρροές μνήμης, σφάλματα χρονισμού, αποτυχίες ενσωμάτωσης |
| Ξεκινά | Μόλις υπάρχει ένα τεχνούργημα | Μόλις υπάρξει μια εκτελέσιμη έκδοση |
| Σχετικό κόστος μιας επιδιόρθωσης | Χαμηλότερα, επειδή τα ελαττώματα εντοπίζονται νωρίτερα | Υψηλότερο, επειδή τα ελαττώματα εμφανίζονται αργότερα |
Παράδειγμα δυναμικής δοκιμής
Ένα σύντομο παράδειγμα δείχνει πώς συμπεριφέρεται η δυναμική δοκιμή στην πράξη.
Ας υποθέσουμε ότι δοκιμάζεται μια σελίδα σύνδεσης. Έχει δύο πεδία, Όνομα χρήστη και Κωδικός πρόσβασης, και το Όνομα χρήστη περιορίζεται σε αλφαριθμητικούς χαρακτήρες.
Όταν ο χρήστης εισάγει το όνομα χρήστη ως «Guru99”, το σύστημα το αποδέχεται. Όταν ο χρήστης εισάγει «Guru99@123”, η εφαρμογή εμφανίζει ένα μήνυμα σφάλματος. Αυτό το αποτέλεσμα δείχνει ότι ο κώδικας λειτουργεί δυναμικά με βάση την είσοδο του χρήστη.
Επομένως, οι δυναμικές δοκιμές σημαίνουν εργασία με το πραγματικό σύστημα, παροχή δεδομένων εισόδου και σύγκριση της πραγματικής συμπεριφοράς της εφαρμογής με την αναμενόμενη συμπεριφορά — με άλλα λόγια, εργασία με το σύστημα με σκοπό την εύρεση σφαλμάτων.
Επομένως, ο δυναμικός έλεγχος είναι η διαδικασία επικύρωσης μιας εφαρμογής λογισμικού όπως θα έκανε ένας τελικός χρήστης, υπό διαφορετικά περιβάλλοντα, για να δημιουργήσει το σωστό λογισμικό.
Τι κάνει η δυναμική δοκιμή;
Ο κύριος στόχος των δυναμικών δοκιμών είναι να διασφαλιστεί ότι το λογισμικό λειτουργεί σωστά κατά τη διάρκεια και μετά την εγκατάσταση, παρέχοντας μια σταθερή εφαρμογή χωρίς σημαντικά ελαττώματα. Κανένα λογισμικό δεν είναι εντελώς απαλλαγμένο από σφάλματα και οι δοκιμές μπορούν να δείξουν την παρουσία ελαττωμάτων, αλλά ποτέ την απουσία τους.
Οι δυναμικές δοκιμές διασφαλίζουν επίσης τη συνέπεια σε όλο το λογισμικό, όπως δείχνει αυτό το παράδειγμα.
Σε μια τραπεζική εφαρμογή υπάρχουν αρκετές οθόνες, όπως οι Λογαριασμοί μου, η Μεταφορά Χρημάτων και Bill Πληρωμή. Όλα περιέχουν ένα πεδίο ποσού.
Ας υποθέσουμε ότι το πεδίο "Οι Λογαριασμοί μου" εμφανίζει το ποσό ως 25,000, η "Μεταφορά Χρημάτων" εμφανίζει 25,000 $ και το Bill Η οθόνη πληρωμής εμφανίζει 25000 $. Το ποσό είναι το ίδιο, αλλά ο τρόπος που εμφανίζεται δεν είναι, γεγονός που καθιστά το λογισμικό ασυνεπές.
Η συνέπεια δεν περιορίζεται στη λειτουργικότητα. Καλύπτει επίσης πρότυπα όπως η απόδοση, η χρηστικότητα και η συμβατότητα, γι' αυτό και οι δυναμικές δοκιμές είναι τόσο σημαντικές.
Τύποι δυναμικών δοκιμών
Οι δυναμικές δοκιμές χωρίζονται σε δύο κατηγορίες.
- Λευκό Box Δοκιμές
- Μαύρο Box Δοκιμές
Το παρακάτω διάγραμμα αντιστοιχίζει τις δύο κατηγορίες με τα επίπεδα δοκιμών που τις υποβαθμίζουν.
Κάθε τύπος και ο σκοπός του περιγράφονται παρακάτω.
Λευκό Box Δοκιμές — μια μέθοδος δοκιμής λογισμικού στην οποία η εσωτερική δομή και ο σχεδιασμός είναι γνωστά στον υπεύθυνο δοκιμών. Κύριος στόχος της είναι να ελέγξει την απόδοση του συστήματος με βάση τον κώδικα. Εκτελείται κυρίως από προγραμματιστές ή από δοκιμαστές white box που έχουν γνώσεις προγραμματισμού.
Μαύρο Box Δοκιμές — μια μέθοδος δοκιμών στην οποία η εσωτερική δομή, ο κώδικας και ο σχεδιασμός ΔΕΝ είναι γνωστά στον υπεύθυνο δοκιμών. Κύριος στόχος της είναι η επαλήθευση της λειτουργικότητας του υπό δοκιμή συστήματος. Αυτός ο τύπος δοκιμών απαιτεί την εκτέλεση ολόκληρης της σουίτας δοκιμών, εκτελείται κυρίως από υπεύθυνους δοκιμών και δεν απαιτεί γνώσεις προγραμματισμού.
Οι δοκιμές μαύρου κουτιού ταξινομούνται και πάλι σε δύο τύπους.
- Λειτουργική δοκιμή
- Μη λειτουργικός έλεγχος
Λειτουργική δοκιμή
Λειτουργική δοκιμή εκτελείται για να επαληθευτεί ότι όλα τα χαρακτηριστικά που έχουν αναπτυχθεί ταιριάζουν με τις λειτουργικές προδιαγραφές. Πραγματοποιείται με την εκτέλεση της λειτουργικής περιπτώσεις δοκιμής γραμμένο από την ομάδα διασφάλισης ποιότητας. Σε αυτή τη φάση, το σύστημα δοκιμάζεται παρέχοντας δεδομένα εισόδου, επαληθεύοντας τα αποτελέσματα και συγκρίνοντας τα πραγματικά αποτελέσματα με τα αναμενόμενα.
Υπάρχουν διαφορετικά επίπεδα λειτουργικών δοκιμών, εκ των οποίων τα πιο σημαντικά είναι τα τέσσερα παρακάτω.
- Δοκιμή μονάδας — μια μονάδα είναι ένα μικρό, ελέγξιμο κομμάτι κώδικα. Η δοκιμή μονάδας εκτελείται σε μια μεμονωμένη μονάδα λογισμικού και εκτελείται από προγραμματιστές.
- Δοκιμή ολοκλήρωσης — εκτελείται μετά από δοκιμή μονάδων, συνδυάζοντας τις μεμονωμένες δοκιμαστικές μονάδες. Εκτελείται είτε από προγραμματιστές είτε από δοκιμαστές.
- Δοκιμή συστήματος — εκτελείται για να διασφαλιστεί ότι το σύστημα συμπεριφέρεται σύμφωνα με τις απαιτήσεις. Γενικά, εκτελείται από τους δοκιμαστές, όταν το πλήρες σύστημα είναι έτοιμο, μόλις η έκδοση κυκλοφορήσει στην ομάδα διασφάλισης ποιότητας.
- Δοκιμή αποδοχής — εκτελείται για να επαληθευτεί εάν το σύστημα πληροί τις επιχειρηματικές απαιτήσεις και είναι έτοιμο για χρήση ή ανάπτυξη. Γενικά εκτελείται από τους τελικούς χρήστες.
Μη λειτουργικός έλεγχος
Μη λειτουργική δοκιμή είναι μια τεχνική δοκιμών που δεν εστιάζει σε λειτουργικές πτυχές και αντ' αυτού επικεντρώνεται σε μη λειτουργικά χαρακτηριστικά του συστήματος, όπως διαρροές μνήμης, απόδοση ή ανθεκτικότητα. Οι μη λειτουργικές δοκιμές εκτελούνται σε όλα τα επίπεδα δοκιμών.
Υπάρχουν πολλές τεχνικές μη λειτουργικών δοκιμών, από τις οποίες οι πιο σημαντικές είναι οι πέντε παρακάτω.
- Δοκιμές Απόδοσης — ελέγχει εάν ο χρόνος απόκρισης του συστήματος είναι κανονικός, σύμφωνα με τις απαιτήσεις, υπό το επιθυμητό φορτίο δικτύου.
- Δοκιμή ανάκτησης — επαληθεύει πόσο καλά ανακάμπτει ένα σύστημα από σφάλματα και βλάβες υλικού.
- Δοκιμή συμβατότητας — επαληθεύει τον τρόπο με τον οποίο συμπεριφέρεται το σύστημα σε διαφορετικά περιβάλλοντα.
- Δοκιμή ασφαλείας — επαληθεύει την αξιοπιστία της εφαρμογής, διασφαλίζοντας ότι μόνο εξουσιοδοτημένοι χρήστες και ρόλοι έχουν πρόσβαση στο σύστημα.
- Δοκιμές Ευχρηστίας — επαληθεύει την χρηστικότητα του συστήματος από τους τελικούς χρήστες και το πόσο άνετα αισθάνονται αυτοί οι χρήστες με αυτό.
Τεχνικές Δυναμικών Δοκιμών
Με τους τύπους να έχουν διευθετηθεί, το επόμενο ερώτημα είναι πώς εκτελείται στην πραγματικότητα ένας δυναμικός κύκλος δοκιμών.
Τεχνικές δυναμικών δοκιμών στο STLC αποτελούνται από εργασίες όπως η ανάλυση απαιτήσεων για τις δοκιμές, ο σχεδιασμός δοκιμών, ο σχεδιασμός και η υλοποίηση της δοκιμαστικής περίπτωσης, η ρύθμιση του περιβάλλοντος δοκιμών, η εκτέλεση της δοκιμαστικής περίπτωσης, η αναφορά σφαλμάτων και τέλος το κλείσιμο της δοκιμής. Κάθε εργασία στις δυναμικές δοκιμές εξαρτάται από την ολοκλήρωση της προηγούμενης εργασίας στη διαδικασία δοκιμών.
Εντός του STLC, η πραγματική διαδικασία δυναμικής δοκιμής ξεκινά από τον σχεδιασμό της δοκιμαστικής περίπτωσης. Το παρακάτω διάγραμμα δείχνει την ακολουθία των δραστηριοτήτων, καθεμία από τις οποίες περιγράφεται στη συνέχεια.
Πριν από την έναρξη της διαδικασίας, πρέπει να συμφωνηθεί η στρατηγική που θα ακολουθηθεί για τις δυναμικές δοκιμές.
Μια στρατηγική δοκιμών θα πρέπει να επικεντρώνεται κυρίως στους διαθέσιμους πόρους και στο χρονικό πλαίσιο. Με βάση αυτούς τους δύο παράγοντες, ο στόχος των δοκιμών, το εύρος των δοκιμών, οι φάσεις ή οι κύκλοι των δοκιμών, ο τύπος του περιβάλλοντος, οι υποθέσεις ή οι προκλήσεις που ενδέχεται να αντιμετωπιστούν και οι κίνδυνοι, όλα πρέπει να τεκμηριώνονται.
Μόλις η στρατηγική οριστεί και γίνει αποδεκτή από τη διοίκηση, ξεκινά η πραγματική διαδικασία σχεδιασμού της δοκιμαστικής περίπτωσης.
Σχεδιασμός και υλοποίηση δοκιμών
Σε αυτή τη φάση η ομάδα προσδιορίζει τα ακόλουθα.
- Χαρακτηριστικά προς δοκιμή
- Συνθήκες δοκιμής που προκύπτουν από αυτά τα χαρακτηριστικά
- Στοιχεία κάλυψης που προέρχονται από τις συνθήκες δοκιμής
- Δοκιμαστικές περιπτώσεις που προέρχονται από τα στοιχεία κάλυψης
Μαύρο κουτί τεχνικές σχεδιασμού δοκιμών όπως η διαμέριση ισοδυναμίας, η ανάλυση οριακών τιμών, δοκιμή πίνακα αποφάσεων και δοκιμές μετάβασης κατάστασης είναι αυτά που μετατρέπουν μια συνθήκη δοκιμής σε ένα συγκεκριμένο σύνολο εκτελέσιμων περιπτώσεων.
Ρύθμιση περιβάλλοντος δοκιμής
The περιβάλλον δοκιμής θα πρέπει πάντα να είναι παρόμοιο με το περιβάλλον παραγωγής. Σε αυτή τη φάση εγκαθίσταται η κατασκευή και διαχειρίζονται και διαμορφώνονται οι μηχανές δοκιμών.
Εκτέλεση δοκιμής
Κατά τη διάρκεια αυτής της φάσης, οι δοκιμαστικές περιπτώσεις εκτελούνται στην πραγματικότητα, είτε χειροκίνητα είτε μέσω αυτοματοποίησηκαι τα πραγματικά αποτελέσματα καταγράφονται σε σύγκριση με τα αναμενόμενα αποτελέσματα.
Η αναφορά σφάλματος καταγράφηκε
Με βάση την εκτέλεση, εάν τα αναμενόμενα και τα πραγματικά αποτελέσματα δεν είναι τα ίδια, η δοκιμαστική περίπτωση πρέπει να επισημανθεί ως Αποτυχία και να καταγραφεί ένα σφάλμα. διαχείριση ελαττωμάτων διαδικασία.
Πλεονεκτήματα των Δυναμικών Δοκιμών
- Οι δυναμικές δοκιμές αποκαλύπτουν ελαττώματα που θεωρούνται πολύ δύσκολα ή περίπλοκα για να εντοπιστούν και τα οποία η στατική ανάλυση δεν μπορεί να καλύψει καθόλου.
- Το λογισμικό εκτελείται ολοκληρωμένα, γεγονός που αυξάνει την ποιότητα τόσο του προϊόντος όσο και του έργου.
- Οι δυναμικές δοκιμές είναι ένα ουσιαστικό μέσο για την ανίχνευση απειλών ασφαλείας σε ένα λειτουργικό σύστημα.
- Σφάλματα που αφορούν μόνο το χρόνο εκτέλεσης, όπως διαρροές μνήμης, προβλήματα χρονισμού και αποτυχίες ενσωμάτωσης, εμφανίζονται εδώ και πουθενά αλλού.
Μειονεκτήματα του δυναμικού ελέγχου
- Οι δυναμικές δοκιμές είναι χρονοβόρες, επειδή η εκτέλεση της εφαρμογής ή του κώδικα απαιτεί μεγάλο αριθμό πόρων.
- Αυξάνει το κόστος του έργου, επειδή δεν ξεκινά νωρίς στον κύκλο ζωής του λογισμικού και τα προβλήματα που διορθώνονται σε μεταγενέστερα στάδια κοστίζουν περισσότερο για την επιδιόρθωσή τους.
- Ένα περιβάλλον παραγωγής και ρεαλιστικά δεδομένα δοκιμών είναι προαπαιτούμενα και η δημιουργία και η συντήρηση και των δύο απαιτούν προσπάθεια.


