Δοκιμή μετάλλαξης
Το Mutation Testing είναι ένας τύπος δοκιμής λογισμικού στον οποίο ορισμένες δηλώσεις του πηγαίου κώδικα αλλάζουν / μεταλλάσσονται για να ελέγξουν εάν οι δοκιμαστικές περιπτώσεις μπορούν να εντοπίσουν σφάλματα στον πηγαίο κώδικα. Ο στόχος της δοκιμής μετάλλαξης είναι η διασφάλιση της ποιότητας των δοκιμαστικών περιπτώσεων όσον αφορά την ανθεκτικότητα, ώστε να αποτύχει ο μεταλλαγμένος πηγαίος κώδικας.
Οι αλλαγές που έγιναν στο πρόγραμμα μετάλλαξης θα πρέπει να διατηρούνται εξαιρετικά μικρές, ώστε να μην επηρεάζει τον γενικό στόχο του προγράμματος. Το Mutation Testing ονομάζεται επίσης στρατηγική δοκιμής βασισμένη σε σφάλματα καθώς περιλαμβάνει τη δημιουργία σφάλματος στο πρόγραμμα και είναι ένας τύπος δοκιμής λευκού κουτιού που χρησιμοποιείται κυρίως για δοκιμές μονάδας.
Η μετάλλαξη προτάθηκε αρχικά το 1971 αλλά έχασε την ένταση λόγω του υψηλού κόστους. Τώρα, πάλι έχει πάρει ατμό και χρησιμοποιείται ευρέως για γλώσσες όπως Java και XML.
Σε αυτό το σεμινάριο, θα μάθετε-
- Τι είναι ο έλεγχος μετάλλαξης;
- Πώς να εκτελέσετε τον έλεγχο μετάλλαξης;
- Πώς να δημιουργήσετε προγράμματα μετάλλαξης;
- Τι να αλλάξετε σε πρόγραμμα μεταλλαγής;
- Τύποι δοκιμών μετάλλαξης
- Βαθμολογία μετάλλαξης:
- Πλεονεκτήματα της δοκιμής μετάλλαξης:
- Μειονεκτήματα της δοκιμής μετάλλαξης:
Πώς να εκτελέσετε τον έλεγχο μετάλλαξης;
Ακολουθούν τα βήματα για την εκτέλεση δοκιμών μετάλλαξης (ανάλυση μετάλλαξης):
Βήμα 1 : Τα σφάλματα εισάγονται στον πηγαίο κώδικα του προγράμματος δημιουργώντας πολλές εκδόσεις που ονομάζονται μεταλλάξεις. Κάθε μετάλλαξη θα πρέπει να περιέχει ένα μόνο σφάλμα και ο στόχος είναι να προκαλέσει την αποτυχία της μεταλλαγμένης έκδοσης, η οποία αποδεικνύει την αποτελεσματικότητα των δοκιμαστικών περιπτώσεων.
Βήμα 2 : Οι δοκιμαστικές περιπτώσεις εφαρμόζονται στο αρχικό πρόγραμμα και επίσης στο πρόγραμμα μετάλλαξης. Μια δοκιμαστική θήκη πρέπει να είναι επαρκής και να τροποποιείται για την ανίχνευση σφαλμάτων σε ένα πρόγραμμα.
Βήμα 3 : Συγκρίνετε τα αποτελέσματα ενός πρωτότυπου και μεταλλαγμένου προγράμματος.
Βήμα 4 : Εάν το αρχικό πρόγραμμα και τα προγράμματα μετάλλαξης παράγουν τη διαφορετική έξοδο, τότε ο μεταλλάκτης θα σκοτωθεί από τη δοκιμαστική θήκη. Ως εκ τούτου, η δοκιμαστική θήκη είναι αρκετά καλή για να ανιχνεύσει την αλλαγή μεταξύ του αρχικού και του προγράμματος μετάλλαξης.
Βήμα 5 : Εάν το αρχικό πρόγραμμα και το πρόγραμμα μετάλλαξης παράγουν την ίδια έξοδο, το Mutant διατηρείται ζωντανό. Σε τέτοιες περιπτώσεις, πρέπει να δημιουργηθούν πιο αποτελεσματικές δοκιμαστικές περιπτώσεις που σκοτώνουν όλους τους μεταλλάκτες.
Πώς να δημιουργήσετε προγράμματα μετάλλαξης;
Μια μετάλλαξη δεν είναι παρά μια απλή συντακτική αλλαγή που γίνεται στη δήλωση προγράμματος. Κάθε πρόγραμμα μετάλλαξης πρέπει να διαφέρει από το αρχικό πρόγραμμα με μία μετάλλαξη.
Πρωτότυπο πρόγραμμα | Πρόγραμμα μεταλλάξεων |
---|---|
Εάν (x> y) Εκτύπωση "Γεια" άλλο Εκτύπωση "Γεια" | Εάν ( x άλλο Εκτύπωση "Γεια" |
Τι να αλλάξετε σε πρόγραμμα μεταλλαγής;
Υπάρχουν πολλές τεχνικές που θα μπορούσαν να χρησιμοποιηθούν για τη δημιουργία μεταλλαγμένων προγραμμάτων. Ας τα δούμε
Τελεστές αντικατάστασης τελεστών | Χειριστές τροποποίησης έκφρασης | Τελεστές τροποποίησης δήλωσης |
---|---|---|
Αντικαταστήστε τον τελεστή με έναν άλλο τελεστή (x με y ή y με x) ή με τη σταθερή τιμή. | Αντικαταστήστε έναν τελεστή ή εισαγωγή νέων τελεστών σε μια δήλωση προγράμματος. | Οι δηλώσεις μέσω προγραμματισμού τροποποιούνται για τη δημιουργία μεταλλαγμένων προγραμμάτων. |
Παράδειγμα- Εάν (x> y) αντικαταστήστε τις τιμές x και y Εάν (5> y) αντικαταστήστε το x με τη σταθερά 5 | Παράδειγμα- Εάν (x == y) Μπορούμε να αντικαταστήσουμε == σε> = και να έχουμε πρόγραμμα μετάλλαξης ως If (x> = y) και εισάγοντας ++ στη δήλωση If (x == ++ y) | Παράδειγμα- Διαγραφή του άλλου μέρους σε μια δήλωση if-else Διαγράψτε ολόκληρη τη δήλωση if-else για να ελέγξετε πώς συμπεριφέρεται ένα πρόγραμμα Μερικοί από τους δείκτες τελεστών μετάλλαξης:
|
Αυτοματοποίηση δοκιμών μετάλλαξης:
Ο έλεγχος μετάλλαξης είναι εξαιρετικά χρονοβόρος και πολύπλοκος για να εκτελεστεί χειροκίνητα. Για να επιταχύνετε τη διαδικασία, συνιστάται να αναζητήσετε εργαλεία αυτοματισμού. Τα εργαλεία αυτοματισμού μειώνουν επίσης το κόστος των δοκιμών.
Λίστα διαθέσιμων εργαλείων -
- Stryker
- Δοκιμή PIT
Τύποι δοκιμών μετάλλαξης
Στην Τεχνολογία Λογισμικού, ο έλεγχος μετάλλαξης θα μπορούσε να κατηγοριοποιηθεί ριζικά σε 3 τύπους - μετάλλαξη δήλωσης, μετάλλαξη αποφάσεων και μετάλλαξη αξίας.
- Statement Mutation - ο προγραμματιστής κόβει και επικολλά ένα μέρος ενός κώδικα του οποίου το αποτέλεσμα μπορεί να είναι η κατάργηση ορισμένων γραμμών
- Μεταβολή τιμής - οι τιμές των πρωτογενών παραμέτρων τροποποιούνται
- Αλλαγή απόφασης - οι δηλώσεις ελέγχου πρέπει να αλλάξουν
Βαθμολογία μετάλλαξης:
Η βαθμολογία μετάλλαξης ορίζεται ως το ποσοστό των νεκρών μεταλλάξεων με τον συνολικό αριθμό μεταλλαγμένων.
- Βαθμολογία μετάλλαξης = (Σκοτωμένοι μεταλλάκτες / Συνολικός αριθμός μεταλλαγμένων) * 100
Οι δοκιμαστικές περιπτώσεις είναι κατάλληλες για μετάλλαξη εάν η βαθμολογία είναι 100%. Τα πειραματικά αποτελέσματα έχουν δείξει ότι ο έλεγχος μετάλλαξης είναι μια αποτελεσματική προσέγγιση για τη μέτρηση της επάρκειας των δοκιμαστικών περιπτώσεων. Όμως, το κύριο μειονέκτημα είναι ότι το υψηλό κόστος παραγωγής των μεταλλαγμάτων και εκτέλεσης κάθε δοκιμαστικής περίπτωσης έναντι αυτού του προγράμματος μετάλλαξης.
Πλεονεκτήματα της δοκιμής μετάλλαξης:
Ακολουθούν τα πλεονεκτήματα της δοκιμής μετάλλαξης:
- Είναι μια ισχυρή προσέγγιση για την επίτευξη υψηλής κάλυψης του προγράμματος προέλευσης.
- Αυτή η δοκιμή είναι σε θέση να δοκιμάσει διεξοδικά το πρόγραμμα μετάλλαξης.
- Ο έλεγχος μετάλλαξης φέρνει ένα καλό επίπεδο ανίχνευσης σφαλμάτων στον προγραμματιστή λογισμικού.
- Αυτή η μέθοδος αποκαλύπτει ασάφειες στον πηγαίο κώδικα και έχει την ικανότητα να εντοπίζει όλα τα σφάλματα στο πρόγραμμα.
- Οι πελάτες επωφελούνται από αυτήν τη δοκιμή, αποκτώντας ένα πιο αξιόπιστο και σταθερό σύστημα.
Μειονεκτήματα της δοκιμής μετάλλαξης:
Από την άλλη πλευρά, τα ακόλουθα είναι τα μειονεκτήματα της δοκιμής Mutant:
- Ο έλεγχος μετάλλαξης είναι εξαιρετικά δαπανηρός και χρονοβόρος αφού υπάρχουν πολλά προγράμματα μετάλλαξης που πρέπει να δημιουργηθούν.
- Δεδομένου ότι είναι χρονοβόρα, είναι δίκαιο να πούμε ότι αυτός ο έλεγχος δεν μπορεί να γίνει χωρίς εργαλείο αυτοματοποίησης.
- Κάθε μετάλλαξη θα έχει τον ίδιο αριθμό δοκιμαστικών περιπτώσεων με αυτόν του αρχικού προγράμματος. Επομένως, ένας μεγάλος αριθμός μεταλλαγμένων προγραμμάτων μπορεί να χρειαστεί να δοκιμαστεί με την αρχική δοκιμαστική σουίτα.
- Καθώς αυτή η μέθοδος περιλαμβάνει αλλαγές στον πηγαίο κώδικα, δεν ισχύει καθόλου για τη δοκιμή Black Box.
Συμπέρασμα:
Θέλετε διεξοδικό έλεγχο της εφαρμογής σας; Η απάντηση είναι δοκιμή μετάλλαξης. Είναι η πιο ολοκληρωμένη τεχνική για τη δοκιμή ενός προγράμματος. Αυτή είναι η μέθοδος που ελέγχει την αποτελεσματικότητα και την ακρίβεια ενός προγράμματος δοκιμών για τον εντοπισμό σφαλμάτων ή σφαλμάτων στο σύστημα.