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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Το Dynamic Testing ταξινομείται σε δύο κατηγορίες

  • Άσπρο Box Δοκιμές
  • Μαύρη Box Δοκιμές

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

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

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

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

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

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

Είναι

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

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

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

Υπάρχουν διαφορετικά Επίπεδα Λειτουργικών Δοκιμών από τα οποία είναι τα πιο σημαντικά

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

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

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

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

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

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

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

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

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

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

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

Τι είναι ο σχεδιασμός και η εφαρμογή δοκιμής

Σε αυτή τη φάση προσδιορίζουμε τα

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

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

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

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

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

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

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

Πλεονεκτήματα των Δυναμικών Δοκιμών

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

Μειονεκτήματα του δυναμικού ελέγχου

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

Συμπέρασμα

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