Τι είναι το Mutation Testing; (Παράδειγμα)

Τι είναι το Mutation Testing;

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

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

Η μετάλλαξη προτάθηκε αρχικά το 1971 αλλά έχασε τη ζέση λόγω του υψηλού κόστους. Τώρα, πάλι έχει μαζέψει ατμό και χρησιμοποιείται ευρέως για γλώσσες όπως π.χ Java και XML.

Πώς να εκτελέσετε τη δοκιμή μετάλλαξης;

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

Ακολουθούν τα βήματα για την εκτέλεση της δοκιμής μετάλλαξης (ανάλυση μεταλλάξεων):

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

Βήμα 2: Οι περιπτώσεις δοκιμής εφαρμόζονται στο αρχικό πρόγραμμα και επίσης στο πρόγραμμα μετάλλαξης. ΕΝΑ Δοκιμαστική θήκη θα πρέπει να είναι επαρκής και έχει τροποποιηθεί για να ανιχνεύει σφάλματα σε ένα πρόγραμμα.

Βήμα 3: Συγκρίνετε τα αποτελέσματα ενός πρωτότυπου και μεταλλαγμένου προγράμματος.

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

Βήμα 5: Εάν το αρχικό πρόγραμμα και το πρόγραμμα μετάλλαξης δημιουργούν την ίδια έξοδο, το Mutant διατηρείται ζωντανό. Σε τέτοιες περιπτώσεις, πρέπει να δημιουργηθούν πιο αποτελεσματικές δοκιμαστικές περιπτώσεις που σκοτώνουν όλους τους μεταλλαγμένους.

Πώς να δημιουργήσετε Μεταλλαγμένα Προγράμματα;

Δημιουργία Μεταλλαγμένων Προγραμμάτων

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

Πρωτότυπο πρόγραμμα Μεταλλαγμένο πρόγραμμα
Αν (x>y)

Εκτύπωση "Γεια σου"

Αλλού

Εκτύπωση "Γεια"

Αν(x<y)

Εκτύπωση "Γεια σου"

Αλλού

Εκτύπωση "Γεια"

Τι να αλλάξετε σε ένα Μεταλλαγμένο Πρόγραμμα;

Υπάρχουν διάφορες τεχνικές που θα μπορούσαν να χρησιμοποιηθούν για τη δημιουργία μεταλλαγμένων προγραμμάτων. Ας τους δούμε

Operaκαι χειριστές αντικατάστασης Τροποποίηση Έκφρασης Operaκορμοί Τροποποίηση δήλωσης Operaκορμοί
Αντικαταστήστε τον τελεστέα με έναν άλλο τελεστή (x με y ή y με x) ή με τη σταθερή τιμή. Αντικατάσταση ενός τελεστή ή εισαγωγή νέων τελεστών σε μια δήλωση προγράμματος. Οι προγραμματικές δηλώσεις τροποποιούνται για τη δημιουργία μεταλλαγμένων προγραμμάτων.
Παράδειγμα-

If(x>y) αντικαταστήστε τις τιμές x και y

Αν(5>y) αντικαταστήστε το x με τη σταθερά 5

Παράδειγμα-

Αν(x==y)

Μπορούμε να αντικαταστήσουμε το == σε >= και να έχουμε το μεταλλαγμένο πρόγραμμα ως

If(x>=y) και εισάγοντας το ++ στην πρόταση

Αν(x==++y)

Παράδειγμα-

Διαγράψτε το άλλο μέρος σε μια δήλωση if-else

Διαγράψτε ολόκληρη τη δήλωση if-else για να ελέγξετε πώς συμπεριφέρεται ένα πρόγραμμα

Μερικοί από τους τελεστές μετάλλαξης δείγματος:

  • Αντικατάσταση ετικέτας GOTO
  • Αντικατάσταση δήλωσης επιστροφής
  • Διαγραφή δήλωσης
  • Ενιαία εισαγωγή τελεστή (Μου αρέσει – και ++)
  • Λογική αντικατάσταση βύσματος
  • Συγκρίσιμη αντικατάσταση ονόματος πίνακα
  • Αφαίρεση άλλου μέρους στη δήλωση if-else
  • Προσθήκη ή αντικατάσταση χειριστών
  • Αντικατάσταση δήλωσης με αλλαγή των δεδομένων
  • Τροποποίηση δεδομένων για τις μεταβλητές
  • Τροποποίηση τύπων δεδομένων στο πρόγραμμα

Αυτοματοποίηση της δοκιμής μετάλλαξης

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

Λίστα διαθέσιμων εργαλείων-

Τύποι δοκιμών μετάλλαξης

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

  1. Δήλωση Μετάλλαξης – ο προγραμματιστής αποκόπτει και επικολλά ένα μέρος ενός κώδικα του οποίου το αποτέλεσμα μπορεί να είναι η αφαίρεση ορισμένων γραμμών
  2. Μετάλλαξη Αξίας– τροποποιούνται οι τιμές των πρωταρχικών παραμέτρων
  3. Μετάλλαξη Απόφασης– οι δηλώσεις ελέγχου πρέπει να αλλάξουν

Βαθμολογία μετάλλαξης

Η βαθμολογία μετάλλαξης ορίζεται ως το ποσοστό των νεκρών μεταλλαγμένων με τον συνολικό αριθμό των μεταλλαγμένων.

  • Βαθμολογία μετάλλαξης = (Killed Mutants / Συνολικός αριθμός Mutants) * 100

Βαθμολογία μετάλλαξης

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

Πλεονεκτήματα του ελέγχου μετάλλαξης

Ακολουθούν τα πλεονεκτήματα του ελέγχου μετάλλαξης:

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

Μειονεκτήματα του ελέγχου μετάλλαξης

Από την άλλη πλευρά, τα ακόλουθα είναι τα μειονεκτήματα της δοκιμής Mutant:

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

Συμπέρασμα

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