Δυναμική δοκιμή
Το Dynamic Testing είναι μια μέθοδος δοκιμής λογισμικού που χρησιμοποιείται για τη δοκιμή της δυναμικής συμπεριφοράς του κώδικα λογισμικού. Ο κύριος σκοπός της δυναμικής δοκιμής είναι να δοκιμάσετε τη συμπεριφορά του λογισμικού με δυναμικές μεταβλητές ή μεταβλητές που δεν είναι σταθερές και να βρείτε αδύναμες περιοχές στο περιβάλλον εκτέλεσης λογισμικού. Ο κωδικός πρέπει να εκτελεστεί για να δοκιμαστεί η δυναμική συμπεριφορά.
Όλοι γνωρίζουμε ότι η Δοκιμή είναι επαλήθευση και επικύρωση και χρειάζονται 2 Vs για να ολοκληρωθεί η δοκιμή. Από τα 2 Vs, η επαλήθευση ονομάζεται στατική δοκιμή και η άλλη "V", η επικύρωση είναι γνωστή ως δυναμική δοκιμή.
Δυναμικό παράδειγμα δοκιμών
Ας καταλάβουμε πώς να κάνουμε δυναμικές δοκιμές με ένα παράδειγμα:
Ας υποθέσουμε ότι δοκιμάζουμε μια σελίδα σύνδεσης όπου έχουμε δύο πεδία που λένε "Όνομα χρήστη" και "Κωδικός πρόσβασης" και το όνομα χρήστη περιορίζεται σε αλφαριθμητικό.
Όταν ο χρήστης εισάγει το όνομα χρήστη ως "Guru99", το σύστημα αποδέχεται το ίδιο. Όπου όταν ο χρήστης εισέρχεται ως Guru99 @ 123 τότε η εφαρμογή ρίχνει ένα μήνυμα σφάλματος. Αυτό το αποτέλεσμα δείχνει ότι ο κώδικας ενεργεί δυναμικά με βάση την είσοδο του χρήστη.
Η δυναμική δοκιμή είναι όταν εργάζεστε με το πραγματικό σύστημα παρέχοντας μια είσοδο και συγκρίνοντας την πραγματική συμπεριφορά της εφαρμογής με την αναμενόμενη συμπεριφορά. Με άλλα λόγια, η συνεργασία με το σύστημα με σκοπό την εύρεση σφαλμάτων.
Με βάση τις παραπάνω δηλώσεις μπορούμε να πούμε ή να συμπεράνουμε ότι η δυναμική δοκιμή είναι μια διαδικασία επικύρωσης εφαρμογών λογισμικού ως τελικού χρήστη σε διαφορετικά περιβάλλοντα για τη δημιουργία του σωστού λογισμικού.
Τι κάνει η δυναμική δοκιμή;
Ο κύριος στόχος των δυναμικών δοκιμών είναι να διασφαλίσει ότι το λογισμικό λειτουργεί σωστά κατά τη διάρκεια και μετά την εγκατάσταση του λογισμικού διασφαλίζοντας μια σταθερή εφαρμογή χωρίς σημαντικές ατέλειες (αυτή η δήλωση γίνεται επειδή κανένα λογισμικό δεν είναι λάθος, οι δοκιμές μπορούν μόνο να δείξουν την παρουσία ελαττωμάτων και όχι απουσία)
Ο κύριος σκοπός της δυναμικής δοκιμής είναι να διασφαλίσει τη συνέπεια στο λογισμικό ας το συζητήσουμε με ένα παράδειγμα.
Σε μια τραπεζική εφαρμογή, βρίσκουμε διαφορετικές οθόνες όπως η ενότητα "Οι λογαριασμοί μου", η μεταφορά χρημάτων, η πληρωμή λογαριασμών κ.λπ. ... Όλες αυτές οι οθόνες περιέχουν πεδίο ποσού που δέχεται ορισμένους χαρακτήρες.
Ας υποθέσουμε ότι το πεδίο Οι λογαριασμοί μου εμφανίζει το ποσό των 25.000 και η Μεταφορά χρημάτων ως 25.000 $ και η οθόνη πληρωμής του λογαριασμού ως 25000 $ αν και το ποσό είναι το ίδιο, ο τρόπος εμφάνισης δεν είναι ο ίδιος, καθιστώντας το λογισμικό μη συνεκτικό.
Η συνέπεια δεν περιορίζεται μόνο στη λειτουργικότητα, αλλά επίσης αναφέρεται σε διαφορετικά πρότυπα, όπως απόδοση, χρηστικότητα, συμβατότητα κ.λπ., ως εκ τούτου καθίσταται πολύ σημαντικό να εκτελέσετε δυναμικές δοκιμές.
Τύποι δυναμικών δοκιμών
Το Dynamic Testing ταξινομείται σε δύο κατηγορίες
- Δοκιμή λευκού κουτιού
- Δοκιμή μαύρου κουτιού
Η παρακάτω εικονική αναπαράσταση μας δίνει μια ιδέα για τους τύπους δυναμικής δοκιμής, τα επίπεδα δοκιμών κ.λπ.
Ας συζητήσουμε εν συντομία κάθε τύπο δοκιμών και είναι ο σκοπός του
White Box Testing - White Box Testing είναι μια μέθοδος δοκιμής λογισμικού στην οποία η εσωτερική δομή / σχέδιο είναι γνωστή στον ελεγκτή. Ο κύριος στόχος της δοκιμής White Box είναι να ελέγξει την απόδοση του συστήματος βάσει του κώδικα. Πραγματοποιείται κυρίως από τους προγραμματιστές ή τους λευκούς δοκιμαστές που έχουν γνώση του προγραμματισμού.
Black Box Testing - Το Black Box Testing είναι μια μέθοδος δοκιμής κατά την οποία η εσωτερική δομή / κώδικας / σχεδιασμός ΔΕΝ είναι γνωστή στον ελεγκτή. Ο κύριος στόχος αυτής της δοκιμής για την επαλήθευση της λειτουργικότητας του υπό δοκιμή συστήματος και αυτού του τύπου δοκιμών απαιτεί την εκτέλεση της πλήρους δοκιμαστικής σουίτας και εκτελείται κυρίως από τους Εξεταστές, και δεν υπάρχει ανάγκη γνώσης προγραμματισμού.
Το Black Box Testing ταξινομείται και πάλι σε δύο τύπους.
Αυτοί είναι
- Λειτουργική δοκιμή
- Μη λειτουργικές δοκιμές
Λειτουργική δοκιμή:
Η λειτουργική δοκιμή πραγματοποιείται για να επαληθευτεί ότι όλα τα χαρακτηριστικά που αναπτύχθηκαν είναι σύμφωνα με τις λειτουργικές προδιαγραφές και εκτελείται εκτελώντας τις λειτουργικές δοκιμαστικές περιπτώσεις που γράφτηκαν από την ομάδα QA, σε φάση λειτουργικής δοκιμής, το σύστημα δοκιμάζεται παρέχοντας είσοδο, επιβεβαιώνοντας την έξοδο και σύγκριση των πραγματικών αποτελεσμάτων με τα αναμενόμενα αποτελέσματα.
Υπάρχουν διαφορετικά επίπεδα λειτουργικής δοκιμής από τα οποία είναι τα πιο σημαντικά
- Δοκιμή μονάδας - Γενικά η μονάδα είναι ένα μικρό κομμάτι κώδικα που μπορεί να ελεγχθεί, η δοκιμή μονάδας πραγματοποιείται σε μεμονωμένη μονάδα λογισμικού και εκτελείται από προγραμματιστές
- Έλεγχος ενοποίησης - Ο έλεγχος ολοκλήρωσης είναι ο έλεγχος που πραγματοποιείται μετά τη δοκιμή μονάδας και πραγματοποιείται συνδυάζοντας όλες τις μεμονωμένες μονάδες που μπορούν να δοκιμαστούν και εκτελούνται είτε από προγραμματιστές είτε από υπεύθυνους δοκιμών
- Δοκιμή συστήματος - Ο έλεγχος συστήματος εκτελείται για να διασφαλιστεί εάν το σύστημα αποδίδει σύμφωνα με τις απαιτήσεις και εκτελείται γενικά όταν το πλήρες σύστημα είναι έτοιμο, εκτελείται από δοκιμαστές όταν το Build ή ο κωδικός κυκλοφορήσει στην ομάδα QA
- Έλεγχος αποδοχής - Ο έλεγχος αποδοχής πραγματοποιείται για να εξακριβωθεί εάν το σύστημα πληροί τις επιχειρηματικές απαιτήσεις και είναι έτοιμο προς χρήση ή έτοιμο για ανάπτυξη και εκτελείται γενικά από τους τελικούς χρήστες.
Μη λειτουργικές δοκιμές : Οι μη λειτουργικές δοκιμές είναι μια τεχνική δοκιμών που δεν επικεντρώνεται σε λειτουργικές πτυχές και επικεντρώνεται κυρίως στα μη λειτουργικά χαρακτηριστικά του συστήματος, όπως διαρροές μνήμης, απόδοση ή ανθεκτικότητα του συστήματος. Οι μη λειτουργικές δοκιμές εκτελούνται σε όλα τα επίπεδα δοκιμής.
Υπάρχουν πολλές μη λειτουργικές τεχνικές δοκιμών από τις οποίες οι πιο σημαντικές είναι
- Δοκιμή απόδοσης - Ο έλεγχος απόδοσης εκτελείται για να ελέγξει εάν ο χρόνος απόκρισης του συστήματος είναι φυσιολογικός σύμφωνα με τις απαιτήσεις στο επιθυμητό φορτίο δικτύου.
- Recovery Testing - Ο έλεγχος αποκατάστασης είναι μια μέθοδος για την επαλήθευση του πόσο καλά ένα σύστημα είναι σε θέση να ανακτήσει από σφάλματα και αστοχίες υλικού.
- Έλεγχος συμβατότητας - Ο έλεγχος συμβατότητας εκτελείται για να επαληθευτεί η συμπεριφορά του συστήματος σε διαφορετικά περιβάλλοντα.
- Δοκιμή ασφαλείας - Ο έλεγχος ασφαλείας εκτελείται για να επαληθεύσει την ανθεκτικότητα της εφαρμογής, δηλαδή για να διασφαλιστεί ότι μόνο οι εξουσιοδοτημένοι χρήστες / ρόλοι έχουν πρόσβαση στο σύστημα
- Δοκιμή χρηστικότητας - Ο έλεγχος ευχρηστίας είναι μια μέθοδος για την επαλήθευση της χρηστικότητας του συστήματος από τους τελικούς χρήστες για να επαληθεύσει πόσο άνετα είναι οι χρήστες με το σύστημα.
Δυναμικές τεχνικές δοκιμών
Οι δυναμικές τεχνικές δοκιμών στο STLC αποτελούνται από διαφορετικές εργασίες όπως Ανάλυση απαιτήσεων για τις δοκιμές, Σχεδιασμός δοκιμών, σχεδιασμός και υλοποίηση δοκιμαστικών περιπτώσεων, ρύθμιση περιβάλλοντος δοκιμής, εκτέλεση δοκιμαστικής υπόθεσης, αναφορά σφαλμάτων και τέλος κλείσιμο δοκιμής Όλες οι εργασίες σε τεχνικές δυναμικής δοκιμής εξαρτώνται από την ολοκλήρωση της προηγούμενης εργασίας στη διαδικασία δοκιμής.
Στο STLC, μπορούμε να πούμε ότι η πραγματική διαδικασία δυναμικής δοκιμής ξεκινά από το Test Case Design, ας συζητήσουμε κάθε δραστηριότητα λεπτομερώς.
Πριν μπείτε στη διαδικασία ας συζητήσουμε τη στρατηγική που πρέπει να ακολουθηθεί για το Dynamic Testing.
Η δοκιμαστική στρατηγική θα πρέπει να επικεντρώνεται κυρίως στους διαθέσιμους πόρους και στο χρονικό πλαίσιο. Με βάση αυτούς τους παράγοντες, πρέπει να τεκμηριωθεί ο στόχος της δοκιμής, το εύρος των δοκιμών, οι φάσεις ή οι κύκλοι δοκιμών, ο τύπος του περιβάλλοντος, οι υποθέσεις ή οι προκλήσεις που ενδέχεται να αντιμετωπιστούν, οι κίνδυνοι κ.λπ.
Μόλις καθοριστεί η στρατηγική και γίνει αποδεκτή από τη διοίκηση, τότε ξεκινά ο σχεδιασμός της πραγματικής διαδικασίας δοκιμής
Τι είναι ο σχεδιασμός και η εφαρμογή δοκιμών
Σε αυτή τη φάση εντοπίζουμε,
- Χαρακτηριστικά προς δοκιμή
- Παραγάγετε τις συνθήκες δοκιμής
- Παραγάγετε τα στοιχεία κάλυψης
- Παραγάγετε τις δοκιμαστικές περιπτώσεις
Δοκιμή περιβάλλοντος
Πρέπει να διασφαλίσουμε ότι το περιβάλλον δοκιμών θα πρέπει να είναι πάντα παρόμοιο με το περιβάλλον παραγωγής, σε αυτήν τη φάση πρέπει να εγκαταστήσουμε την κατασκευή και να διαχειριστούμε τις δοκιμαστικές μηχανές.
Εκτέλεση δοκιμής
Κατά τη διάρκεια αυτής της φάσης, οι δοκιμαστικές περιπτώσεις εκτελούνται πραγματικά.
Η αναφορά σφαλμάτων καταγράφηκε
Με βάση την Εκτέλεση εάν τα Αναμενόμενα και τα Πραγματικά Αποτελέσματα δεν είναι ίδια, τότε η δοκιμαστική περίπτωση πρέπει να επισημανθεί ως Αποτυχία και πρέπει να καταγραφεί ένα Σφάλμα.
Πλεονεκτήματα της δυναμικής δοκιμής
- Η δυναμική δοκιμή μπορεί να αποκαλύψει τα ακάλυπτα ελαττώματα που θεωρούνται πολύ δύσκολα ή περίπλοκα και τα οποία δεν μπορούν να καλυφθούν μέσω στατικής ανάλυσης
- Στο Dynamic Testing, εκτελούμε το λογισμικό, από άκρο σε άκρο, διασφαλίζοντας λογισμικό χωρίς σφάλματα, το οποίο με τη σειρά του αυξάνει την ποιότητα ενός προϊόντος και ενός έργου.
- Το Dynamic Testing γίνεται ένα ουσιαστικό εργαλείο για τον εντοπισμό τυχόν απειλών ασφαλείας
Μειονεκτήματα της δυναμικής δοκιμής
- Η δυναμική δοκιμή είναι χρονοβόρα, επειδή εκτελεί την εφαρμογή / λογισμικό ή κώδικα που απαιτεί τεράστια ποσότητα πόρων
- Η δυναμική δοκιμή αυξάνει το κόστος του έργου / προϊόντος επειδή δεν ξεκινά νωρίς στον κύκλο ζωής του λογισμικού και επομένως τυχόν ζητήματα που επιδιορθώνονται σε μεταγενέστερα στάδια μπορεί να οδηγήσουν σε αύξηση του κόστους.
Συμπέρασμα:
Στη Μηχανική Λογισμικού, η Επαλήθευση και η Επικύρωση είναι δύο μέτρα που χρησιμοποιούνται για να ελέγξουν εάν το προϊόν λογισμικού πληροί τις προδιαγραφές απαιτήσεων. Η στατική δοκιμή περιλαμβάνει επαλήθευση, ενώ η δυναμική δοκιμή περιλαμβάνει επικύρωση. Μαζί συμβάλλουν στην παροχή ενός οικονομικά αποδοτικού λογισμικού ποιότητας.
Αυτό το άρθρο συνεισφέρει η Radhika Renamala