Τι είναι το Dynamic Testing; Τύποι, Τεχνικές & Παράδειγμα

Δυναμική δοκιμή

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

Όλοι γνωρίζουμε ότι η δοκιμή είναι επαλήθευση και επικύρωση και χρειάζονται 2 Vs για να ολοκληρωθεί ο έλεγχος. Από τα 2 V, η επαλήθευση ονομάζεται στατική δοκιμή και η άλλη «V», η επικύρωση είναι γνωστή ως δυναμική δοκιμή.

Παράδειγμα δυναμικής δοκιμής

Ας καταλάβουμε πώς να κάνουμε δυναμικές δοκιμές με ένα παράδειγμα:

Ας υποθέσουμε ότι δοκιμάζουμε μια σελίδα σύνδεσης όπου έχουμε δύο πεδία που λένε «Όνομα χρήστη» και «Κωδικός πρόσβασης» και το όνομα χρήστη περιορίζεται σε Αλφαριθμητικό.

Όταν ο χρήστης εισάγει το όνομα χρήστη ως 'Guru99', το σύστημα αποδέχεται το ίδιο. Όταν όταν ο χρήστης εισάγει ως Guru99@123, τότε η εφαρμογή ρίχνει ένα μήνυμα σφάλματος. Αυτό το αποτέλεσμα δείχνει ότι ο κώδικας λειτουργεί δυναμικά με βάση την είσοδο του χρήστη.

Ο δυναμικός έλεγχος είναι όταν εργάζεστε με το πραγματικό σύστημα παρέχοντας μια είσοδο και συγκρίνοντας την πραγματική συμπεριφορά της εφαρμογής με την αναμενόμενη συμπεριφορά. Με άλλα λόγια, η εργασία με το σύστημα με σκοπό την εύρεση σφαλμάτων.

Με βάση λοιπόν τις παραπάνω δηλώσεις μπορούμε να πούμε ή να συμπεράνουμε ότι η δυναμική δοκιμή είναι μια διαδικασία επικύρωσης εφαρμογών λογισμικού ως τελικού χρήστη σε διαφορετικά περιβάλλοντα για τη δημιουργία του σωστού λογισμικού.

Τι κάνει η δυναμική δοκιμή;

Ο κύριος στόχος των δυναμικών δοκιμών είναι να διασφαλιστεί ότι το λογισμικό λειτουργεί σωστά κατά τη διάρκεια και μετά την εγκατάσταση του λογισμικού εξασφαλίζοντας μια σταθερή εφαρμογή χωρίς σημαντικά ελαττώματα (αυτή η δήλωση γίνεται επειδή κανένα λογισμικό δεν είναι χωρίς σφάλματα, οι δοκιμές μπορούν μόνο να δείξουν την παρουσία ελαττωμάτων και όχι απουσία)

Ο κύριος σκοπός της δυναμικής δοκιμής είναι να διασφαλίσει τη συνέπεια του λογισμικού. ας το συζητήσουμε με ένα παράδειγμα.

Σε μια Τραπεζική Εφαρμογή, βρίσκουμε διαφορετικές οθόνες όπως η Ενότητα Λογαριασμοί μου, Μεταφορά χρημάτων, Bill Pay κ.λπ. Όλες αυτές οι οθόνες περιέχουν πεδίο ποσού που δέχεται ορισμένους χαρακτήρες.

Ας υποθέσουμε ότι το πεδίο Οι λογαριασμοί μου εμφανίζει το ποσό ως 25.000 και Μεταφορά Χρημάτων ως $ 25.000 και οθόνη πληρωμής λογαριασμού ως $ 25000 αν και το ποσό είναι το ίδιο, ο τρόπος εμφάνισης του ποσού δεν είναι ο ίδιος, καθιστώντας το λογισμικό μη συνεκτικό.

Η συνέπεια δεν περιορίζεται μόνο στη λειτουργικότητα, αναφέρεται επίσης σε διαφορετικά πρότυπα όπως η απόδοση, η χρηστικότητα, η συμβατότητα κ.λπ., επομένως καθίσταται πολύ σημαντική η εκτέλεση δυναμικών δοκιμών.

Τύποι δυναμικών δοκιμών

Οι Δυναμικές Δοκιμές ταξινομούνται σε δύο κατηγορίες

  • Δοκιμή λευκού κουτιού
  • Δοκιμή Black Box

Η παρακάτω εικονογραφική αναπαράσταση μας δίνει μια ιδέα για τους τύπους Δυναμικής Δοκιμής, Επίπεδα Δοκιμών κ.λπ.

Ας συζητήσουμε εν συντομία κάθε τύπο δοκιμής και τον επιδιωκόμενο σκοπό

Δοκιμή λευκού κουτιού - Το White Box Testing είναι μια μέθοδος δοκιμής λογισμικού στην οποία η εσωτερική δομή/ σχέδιο είναι γνωστή στον ελεγκτή. Ο κύριος στόχος της δοκιμής του White Box είναι να ελέγξει την απόδοση του συστήματος με βάση τον κώδικα. Εκτελείται κυρίως από τους προγραμματιστές ή τους White Box Testers που έχουν γνώσεις σχετικά με τον προγραμματισμό.

Δοκιμές Black Box - Το Black Box Testing είναι μια μέθοδος δοκιμής στην οποία βρίσκεται η εσωτερική δομή/ κώδικας/ σχεδιασμός ΔΕΝ γνωστή στον ελεγκτή. Ο κύριος στόχος αυτής της δοκιμής είναι η επαλήθευση της λειτουργικότητας του υπό δοκιμή συστήματος και αυτού του τύπου η δοκιμή απαιτεί την εκτέλεση της πλήρους σουίτας δοκιμών και εκτελείται κυρίως από τους Δοκιμαστές, και δεν χρειάζεται καμία γνώση προγραμματισμού.

ο Μαύρο κουτί Οι δοκιμές ταξινομούνται και πάλι σε δύο τύπους.

Αυτοί είναι

  • Λειτουργική δοκιμή
  • Μη Λειτουργικές Δοκιμές

Λειτουργική δοκιμή:

Ο λειτουργικός έλεγχος πραγματοποιείται για να επαληθευτεί ότι όλα τα χαρακτηριστικά που αναπτύσσονται είναι σύμφωνα με τις λειτουργικές προδιαγραφές και εκτελείται με την εκτέλεση των λειτουργικών δοκιμαστικών περιπτώσεων που έχουν γραφτεί από την ομάδα QA, σε φάση λειτουργικής δοκιμής, το σύστημα δοκιμάζεται παρέχοντας είσοδο, επαληθεύοντας την έξοδο και σύγκριση των πραγματικών αποτελεσμάτων με τα αναμενόμενα αποτελέσματα.

Υπάρχουν διαφορετικά επίπεδα λειτουργικής δοκιμής από τα οποία τα πιο σημαντικά είναι

  • Δοκιμή μονάδας - Γενικά η μονάδα είναι ένα μικρό κομμάτι κώδικα που μπορεί να δοκιμαστεί, Δοκιμή μονάδας εκτελείται σε μεμονωμένη μονάδα λογισμικού και εκτελείται από προγραμματιστές
  • Έλεγχος ενσωμάτωσης - Ο έλεγχος ενσωμάτωσης είναι ο έλεγχος που πραγματοποιείται μετά τη δοκιμή μονάδας και εκτελείται συνδυάζοντας όλες τις επιμέρους μονάδες που μπορούν να ελεγχθούν και εκτελούνται είτε από προγραμματιστές είτε από δοκιμαστές
  • Δοκιμή συστήματος - Δοκιμή συστήματος εκτελείται για να διασφαλιστεί εάν το σύστημα λειτουργεί σύμφωνα με τις απαιτήσεις και εκτελείται γενικά όταν το πλήρες σύστημα είναι έτοιμο, εκτελείται από δοκιμαστές όταν το Build ή ο κώδικας αποδεσμεύεται στην ομάδα QA
  • Δοκιμή αποδοχής - Ο έλεγχος αποδοχής πραγματοποιείται για να επαληθευτεί εάν το σύστημα πληροί τις επιχειρηματικές απαιτήσεις και είναι έτοιμο για χρήση ή έτοιμο για ανάπτυξη και γενικά εκτελείται από τους τελικούς χρήστες.

Μη λειτουργικές δοκιμές : Οι μη λειτουργικές δοκιμές είναι μια τεχνική δοκιμής που δεν εστιάζει σε λειτουργικές πτυχές και επικεντρώνεται κυρίως στα μη λειτουργικά χαρακτηριστικά του συστήματος, όπως διαρροές μνήμης, απόδοση ή ευρωστία του συστήματος. Οι μη λειτουργικές δοκιμές πραγματοποιούνται σε όλα τα επίπεδα δοκιμών.

Υπάρχουν πολλές Μη Λειτουργικές Τεχνικές Δοκιμών, από τις οποίες οι πιο σημαντικές είναι

  • Δοκιμή απόδοσης - Δοκιμή απόδοσης εκτελείται για να ελέγξει εάν ο χρόνος απόκρισης του συστήματος είναι φυσιολογικός σύμφωνα με τις απαιτήσεις κάτω από το επιθυμητό φορτίο δικτύου.
  • Δοκιμές ανάκτησης - Οι δοκιμές ανάκτησης είναι μια μέθοδος για να επαληθεύσετε πόσο καλά ένα σύστημα είναι σε θέση να ανακτήσει από σφάλματα και αστοχίες υλικού.
  • Δοκιμή συμβατότητας - Ο έλεγχος συμβατότητας πραγματοποιείται για να επαληθεύσει πώς συμπεριφέρεται το σύστημα σε διαφορετικά περιβάλλοντα.
  • Δοκιμές ασφαλείας - Οι δοκιμές ασφαλείας πραγματοποιούνται για την επαλήθευση της ευρωστίας της εφαρμογής, δηλαδή για να διασφαλιστεί ότι μόνο οι εξουσιοδοτημένοι χρήστες/ρόλοι έχουν πρόσβαση στο σύστημα
  • Δοκιμή χρηστικότητας - Ο έλεγχος χρηστικότητας είναι μια μέθοδος για την επαλήθευση της χρηστικότητας του συστήματος από τους τελικούς χρήστες για να επαληθεύσουν πόσο άνετοι είναι οι χρήστες με το σύστημα.

Τεχνικές Δυναμικής Δοκιμής

Τεχνικές Δυναμικής Δοκιμής σε STLC αποτελείται από διαφορετικά καθήκοντα όπως Ανάλυση απαιτήσεων για τις δοκιμές, Σχεδιασμός δοκιμών, Σχεδιασμός και εφαρμογή δοκιμών, Ρύθμιση περιβάλλοντος δοκιμής, Εκτέλεση θήκης δοκιμής, Αναφορά σφαλμάτων και τέλος Κλείσιμο δοκιμής. Όλες οι εργασίες σε τεχνικές δυναμικής δοκιμής εξαρτώνται από την ολοκλήρωση της προηγούμενης εργασίας στη διαδικασία δοκιμής.

Στο STLC, μπορούμε να πούμε ότι η πραγματική διαδικασία δυναμικής δοκιμής ξεκινά από το Test Case Design, ας συζητήσουμε λεπτομερώς κάθε δραστηριότητα.

Πριν μπείτε στη διαδικασία, ας συζητήσουμε τη στρατηγική που πρέπει να ακολουθηθεί για τη δυναμική δοκιμή.

Η στρατηγική δοκιμών πρέπει να επικεντρώνεται κυρίως στους διαθέσιμους πόρους και στο χρονικό πλαίσιο. Με βάση αυτούς τους παράγοντες, πρέπει να τεκμηριωθεί ο στόχος της δοκιμής, το εύρος των δοκιμών, οι φάσεις ή οι κύκλοι δοκιμών, ο τύπος περιβάλλοντος, οι υποθέσεις ή οι προκλήσεις που μπορεί να αντιμετωπιστούν, οι κίνδυνοι κ.λπ.

Μόλις οριστεί η στρατηγική και γίνει αποδεκτή από τη διοίκηση, τότε ξεκινά ο πραγματικός σχεδιασμός της περίπτωσης δοκιμής διαδικασίας

Τι είναι το Test design and Implementation

Σε αυτή τη φάση εντοπίζουμε,

  • Χαρακτηριστικά προς δοκιμή
  • Εξαγάγετε τις συνθήκες δοκιμής
  • Εξαγάγετε τα στοιχεία κάλυψης
  • Βγάλτε τις θήκες δοκιμής

Ρύθμιση περιβάλλοντος δοκιμής

Πρέπει να διασφαλίσουμε ότι το περιβάλλον δοκιμής θα πρέπει πάντα να είναι παρόμοιο με το περιβάλλον παραγωγής, σε αυτή τη φάση πρέπει να εγκαταστήσουμε την κατασκευή και να διαχειριστούμε τις δοκιμαστικές μηχανές.

Εκτέλεση δοκιμής

Κατά τη διάρκεια αυτής της φάσης, οι δοκιμαστικές περιπτώσεις εκτελούνται στην πραγματικότητα.

Η αναφορά σφαλμάτων καταγράφηκε

Με βάση την εκτέλεση, εάν τα αναμενόμενα και τα πραγματικά αποτελέσματα δεν είναι ίδια, τότε η περίπτωση δοκιμής πρέπει να επισημανθεί ως Αποτυχία και πρέπει να καταγραφεί ένα σφάλμα.

Πλεονεκτήματα της δυναμικής δοκιμής

  • Η δυναμική δοκιμή μπορεί να αποκαλύψει τα ακάλυπτα ελαττώματα που θεωρούνται πολύ δύσκολα ή περίπλοκα και τα οποία δεν μπορούν να καλυφθούν μέσω στατικής ανάλυσης
  • Στο Dynamic Testing, εκτελούμε το λογισμικό από άκρο σε άκρο, εξασφαλίζοντας λογισμικό χωρίς σφάλματα, το οποίο με τη σειρά του αυξάνει την ποιότητα ενός προϊόντος και ενός έργου.
  • Το Dynamic Testing γίνεται ένα βασικό εργαλείο για τον εντοπισμό τυχόν απειλών ασφαλείας

Μειονεκτήματα της δυναμικής δοκιμής

  • Η δυναμική δοκιμή είναι χρονοβόρα επειδή εκτελεί την εφαρμογή/το λογισμικό ή τον κώδικα που απαιτεί τεράστιο αριθμό πόρων
  • Η Δυναμική Δοκιμή αυξάνει το κόστος του έργου/προϊόντος επειδή δεν ξεκινά νωρίς στον κύκλο ζωής του λογισμικού και ως εκ τούτου τυχόν ζητήματα που επιδιορθώνονται σε μεταγενέστερα στάδια μπορεί να οδηγήσουν σε αύξηση του κόστους.

Συμπέρασμα:

Στη Μηχανική Λογισμικού, η Επαλήθευση και η Επικύρωση είναι δύο μέτρα που χρησιμοποιούνται για να ελέγξουν ότι το προϊόν λογισμικού πληροί τις προδιαγραφές απαιτήσεων. Ο στατικός έλεγχος περιλαμβάνει επαλήθευση ενώ ο δυναμικός έλεγχος περιλαμβάνει επικύρωση. Μαζί βοηθούν στην παροχή ενός οικονομικά αποδοτικού Λογισμικού Ποιότητας.

Αυτό το άρθρο συνεισφέρει η Radhika Renamala