Μη Καταστροφικές Δοκιμές Λογισμικού (NDT): Τι είναι η Στρατηγική Δοκιμών
⚡ Έξυπνη Σύνοψη
Οι μη καταστροφικές δοκιμές επαληθεύουν ότι μια εφαρμογή συμπεριφέρεται σωστά όταν λαμβάνει έγκυρα δεδομένα εισόδου, γι' αυτό και οι δοκιμαστές τις ονομάζουν επίσης δοκιμές θετικής ή ευτυχούς διαδρομής. Επιβεβαιώνουν τα αναμενόμενα αποτελέσματα σε σχέση με τις τεκμηριωμένες απαιτήσεις.

Τι είναι η δοκιμή μη καταστροφικού λογισμικού;
Μη καταστρεπτική δοκιμή είναι ένας τύπος δοκιμής λογισμικού που περιλαμβάνει τη δοκιμή και τη σωστή αλληλεπίδραση με την εφαρμογή λογισμικού. Με άλλα λόγια, το Non Destructive Software Testing (NDT) μπορεί επίσης να ονομάζεται Positive Testing ή Happy path testing. Δίνει τα αναμενόμενα αποτελέσματα και αποδεικνύει ότι η εφαρμογή λογισμικού συμπεριφέρεται όπως αναμένεται.
Το όνομα προέρχεται από τη μηχανική, όπου οι μη καταστροφικές δοκιμές επιθεωρούν ένα φυσικό στοιχείο χωρίς να το καταστρέφουν. Στο λογισμικό η ιδέα είναι η ίδια: η εφαρμογή ασκείται με τον τρόπο που σχεδιάστηκε για να χρησιμοποιηθεί και επιβιώνει από τη δοκιμή άθικτη.
Παράδειγμα: Εισαγωγή των σωστών δεδομένων σε μια ενότητα σύνδεσης και έλεγχος εάν αποδέχεται τα διαπιστευτήρια και μεταβαίνει στην επόμενη σελίδα.
Το παρακάτω στιγμιότυπο οθόνης δείχνει τη φόρμα σύνδεσης, με μια έγκυρη τιμή πληκτρολογημένη στο πεδίο ονόματος χρήστη πριν από την εκτέλεση της δοκιμής.
Για να εκτελέσετε μη καταστροφικές δοκιμές στο παραπάνω παράδειγμα, εισαγάγετε ένα έγκυρο όνομα χρήστη και έναν κωδικό πρόσβασης στη φόρμα σύνδεσης. Επειδή τα δεδομένα εισόδου ταιριάζουν με τις απαιτήσεις, το επιθυμητό αποτέλεσμα είναι θετικό και ο υπεύθυνος δοκιμών απλώς επιβεβαιώνει ότι η εφαρμογή μετακινείται στην επόμενη σελίδα.
Γιατί να κάνετε Δοκιμές Μη Καταστροφικού Λογισμικού (NDT);
Οι μη καταστροφικές δοκιμές απαντούν στην πρώτη ερώτηση που θέτει κάθε ενδιαφερόμενος σχετικά με μια έκδοση: κάνει όντως η λειτουργία αυτό που της ζητήθηκε; Αυτοί είναι οι λόγοι για τους οποίους οι ομάδες την εκτελούν.
- Το κύριο πλεονέκτημα της μεθόδου NDT είναι ότι έχει ως αποτέλεσμα τη βελτίωση της ποιότητας του λογισμικού, επειδή τα ελαττώματα που εντοπίζονται στην κύρια ροή διορθώνονται νωρίς.
- Για να αποδείξετε ότι οι λειτουργίες του λογισμικού λειτουργούν σύμφωνα με τις προδιαγραφές.
- Για να επαληθευτεί ότι έχουν ικανοποιηθεί οι απαιτήσεις απόδοσης.
- Για να επαληθευτεί ότι πληρούνται οι απαιτήσεις των τελικών χρηστών.
- Για να ελέγξετε ότι ένα μικρό τμήμα κώδικα ή λειτουργικότητας λειτουργεί όπως αναμένεται και δεν διαταράσσει τη σχετική λειτουργικότητα.
- Για να προσκομίσετε αποδεικτικά στοιχεία που μπορούν να παρουσιαστούν σε δοκιμή αποδοχής χρήστη υπογραφή, όπου ο πελάτης θέλει να δει την προβλεπόμενη συμπεριφορά και όχι τους τρόπους αποτυχίας.
Πότε εκτελείται η μη καταστροφική δοκιμή (NDT);
Ο συγχρονισμός έχει μεγαλύτερη σημασία εδώ από ό,τι για τις περισσότερες τεχνικές, επειδή η ευτυχής διαδρομή οδηγεί τα πάντα προς τα κάτω.
- Είναι η πρώτη μορφή δοκιμής που θα εκτελέσει ένας δοκιμαστής σε μια εφαρμογή, δηλαδή, στο αρχικό στάδιο της SDLC.
- Οι μη καταστροφικές δοκιμές συνήθως πραγματοποιούνται όταν δεν υπάρχει αρκετός χρόνος για έναν πλήρη κύκλο δοκιμών, καθώς εξακολουθούν να αποδεικνύουν ότι πληρούνται τα κριτήρια αποδοχής.
- Εκτελείται πριν από αρνητικά και καταστροφικά σενάρια. Εάν η κύρια ροή είναι προβληματική, οι δοκιμές χειρισμού σφαλμάτων αναφέρουν θόρυβο αντί για πραγματικά ελαττώματα.
- Επαναλαμβάνεται μετά από κάθε διόρθωση ελαττώματος, όπου και επικαλύπτεται δοκιμή παλινδρόμησης.
Στρατηγική δοκιμής για μη καταστροφικές δοκιμές
Η στρατηγική για τις μη καταστροφικές δοκιμές είναι σκόπιμα απλή και η πειθαρχία έγκειται στη διατήρηση της θετικότητας και όχι στη χρήση εργαλείων.
- Η προσέγγιση στις μη καταστροφικές δοκιμές θα πρέπει να είναι θετική.
- Ο σκοπός της τεχνικής NDT είναι να αποδείξει ότι μια εφαρμογή θα λειτουργήσει όταν της δοθούν έγκυρα δεδομένα εισόδου.
- Δεν απαιτείται καμία ειδική απαίτηση ή περιβάλλον για την εκτέλεση μη καταστροφικών δοκιμών.
- Μια καλύτερη πρακτική για τις μη καταστροφικές δοκιμές είναι να ελεγχθεί εάν το σύστημα κάνει αυτό που υποτίθεται ότι κάνει.
Το παρακάτω διάγραμμα συνοψίζει τον τρόπο με τον οποίο αυτή η στρατηγική οργανώνεται κανονικά σε έναν κύκλο δοκιμών.
Πώς να γράψετε μη καταστροφικές (θετικές) δοκιμαστικές περιπτώσεις
Μια μη καταστροφική δοκιμαστική περίπτωση είναι χρήσιμη μόνο όταν η είσοδός της είναι αποδεδειγμένα έγκυρη και το αναμενόμενο αποτέλεσμα προέρχεται από μια απαίτηση και όχι από την υπόθεση του ελεγκτή. Τα ακόλουθα βήματα παράγουν αυτό το είδος περίπτωση δοκιμής.
Βήμα 1) Επιλέξτε ένα κριτήριο αποδοχής. Διαβάστε την απαίτηση και επαναδιατυπώστε την ως μία μόνο επαληθεύσιμη δήλωση, για παράδειγμα «το πεδίο ονόματος χρήστη δέχεται έξι έως είκοσι αλφαριθμητικούς χαρακτήρες».
Βήμα 2) Επιλέξτε έγκυρα δεδομένα εισόδου. Επιλέξτε τιμές που βρίσκονται άνετα εντός του επιτρεπόμενου εύρους. Διαμερισμός ισοδυναμίας βοηθάει εδώ — μία αντιπροσωπευτική τιμή ανά έγκυρη κατάτμηση είναι συνήθως αρκετή.
Βήμα 3) Γράψτε το αναμενόμενο αποτέλεσμα πριν από την εκτέλεση. Το αναμενόμενο αποτέλεσμα πρέπει να γραφτεί από την προδιαγραφή. Η συγγραφή του μετά την εκτέλεση μετατρέπει τη δοκιμή σε μια περιγραφή οποιουδήποτε πράγματος έκανε η κατασκευή.
Βήμα 4) Διατηρήστε τα βήματα με τη σειρά που ορίζει ο χρήστης. Η ακολουθία θα πρέπει να ταιριάζει με τον τρόπο με τον οποίο ένας πραγματικός χρήστης θα ολοκλήρωνε την εργασία, επειδή ο σκοπός της τεχνικής είναι να επιβεβαιώσει το προβλεπόμενο ταξίδι.
Βήμα 5) Καταγράψτε το αναγνωριστικό απαίτησης. TracΗ επαναφορά της υπόθεσης στο κριτήριό της είναι αυτό που επιτρέπει στην ομάδα να αποδείξει την κάλυψη κατά τη διάρκεια μιας αναθεώρησης.
Ένα λειτουργικό παράδειγμα για την ενότητα σύνδεσης μοιάζει με αυτό.
| Πεδίο | Μη καταστροφική δοκιμαστική περίπτωση |
|---|---|
| Απαίτηση | Το όνομα χρήστη δέχεται 6–20 αλφαριθμητικούς χαρακτήρες |
| Στοιχεία δοκιμής | Επωνυμία Φαρμακείου guru99tester, έγκυρος κωδικός πρόσβασης που ταιριάζει |
| Βήματα | Ανοίξτε τη σελίδα σύνδεσης, εισαγάγετε τα διαπιστευτήρια, επιλέξτε Σύνδεση |
| Αναμενόμενο Αποτέλεσμα | Τα διαπιστευτήρια γίνονται δεκτά και εμφανίζεται η αρχική σελίδα |
| Χαρακτηριστικά | Θετική / ευτυχισμένη πορεία |
Παρατηρήστε ότι τίποτα στην υπόθεση δεν προσπαθεί να σπάσει το πεδίο. Μια υπόθεση που εισάγει πέντε χαρακτήρες για να δει το μήνυμα σφάλματος είναι μια αρνητικό τεστ, όχι μη καταστροφικό.
Παραδείγματα μη καταστροφικών δοκιμών
Το παρακάτω παράδειγμα δείχνει πώς συμπεριφέρεται ο μη καταστροφικός έλεγχος σε μια εφαρμογή πολλαπλών ενοτήτων μετά την επιδιόρθωση ενός ελαττώματος.
- Μια εφαρμογή έχει πέντε ενότητες: σελίδα σύνδεσης, αρχική σελίδα, σελίδα λεπτομερειών χρήστη, δημιουργία νέου χρήστη και δημιουργία εργασιών.
- Ας υποθέσουμε ότι υπάρχει κάποιο σφάλμα στη σελίδα σύνδεσης: το πεδίο ονόματος χρήστη δέχεται λιγότερους από έξι αλφαριθμητικούς χαρακτήρες. Αυτό αντίκειται στην καθορισμένη απαίτηση, η οποία ορίζει ότι το όνομα χρήστη δεν πρέπει να δέχεται λιγότερους από έξι χαρακτήρες, επομένως η συμπεριφορά αυτή αποτελεί ελάττωμα.
- Το σφάλμα αναφέρεται στην ομάδα ανάπτυξης μέσω του συνήθους διαδικασία διαχείρισης ελαττωμάτων, διορθώνεται και η έκδοση αποστέλλεται πίσω στην ομάδα δοκιμών.
- Η ομάδα δοκιμών όχι μόνο ελέγχει τη σελίδα σύνδεσης όπου διορθώθηκε το ελάττωμα, αλλά δοκιμάζει και τις άλλες ενότητες. Κατά τη δοκιμή όλων των ενοτήτων με έγκυρα δεδομένα, εκτελεί μη καταστροφικές δοκιμές, απλώς για να επιβεβαιώσει ότι ολόκληρη η εφαρμογή εξακολουθεί να λειτουργεί σωστά.
Μη Καταστροφικές Δοκιμές έναντι Καταστροφικών Δοκιμών
Οι δύο τεχνικές διδάσκονται συχνά μαζί επειδή απαντούν σε αντίθετες ερωτήσεις σχετικά με την ίδια κατασκευή. Καταστροφικές δοκιμές αναζητά το σημείο στο οποίο το λογισμικό υποχωρεί, ενώ οι μη καταστροφικές δοκιμές επιβεβαιώνουν ότι η επιδιωκόμενη συμπεριφορά ισχύει.
| Άποψη | Μη καταστρεπτική δοκιμή | Καταστροφική δοκιμή |
|---|---|---|
| Πρόθεση | Αλληλεπιδράστε σωστά με την εφαρμογή και επαληθεύστε τα θετικά αποτελέσματα | Παρέχετε ασυνήθιστα ή μη έγκυρα δεδομένα εισόδου για να βρείτε το σημείο αποτυχίας |
| Εισαγωγή δεδομένων | Έγκυρα δεδομένα που αντλούνται από την απαίτηση | Μη έγκυρα, κατεστραμμένα ή εκτός ακολουθίας δεδομένα |
| Απαιτήσεις που απαιτούνται | Ναι — οι υποθέσεις γράφονται με βάση τα κριτήρια αποδοχής | Όχι απαραίτητα. Οι δοκιμαστές εργάζονται χωρίς την προκατάληψη της ιστορίας του χρήστη. |
| Τι αποκαλύπτει | Αδυναμίες στη λειτουργικότητα σε σχέση με την προδιαγραφή | Αδυναμίες στον σχεδιασμό, την ανθεκτικότητα και την ανακτησιμότητα |
| Σχετικές τεχνικές | Δοκιμή καπνού, λειτουργικές δοκιμές | Δοκιμές σε πιθήκους, διερευνητικές δοκιμές |
Τα δύο είναι συμπληρωματικά και όχι εναλλακτικά. Η εκτέλεση μη καταστροφικών δοκιμών από μόνη της αφήνει τον χειρισμό σφαλμάτων ανεπιβεβαίωτο και η εκτέλεση καταστροφικών δοκιμών από μόνη της δεν αποδεικνύει ποτέ ότι το προϊόν κάνει τη δουλειά του.
Πλεονεκτήματα και περιορισμοί των μη καταστροφικών δοκιμών λογισμικού
Το να γνωρίζουμε πού η τεχνική παύει να είναι χρήσιμη είναι εξίσου σημαντικό με το να γνωρίζουμε τι καλύπτει.
Πλεονεκτήματα
- Γρήγορος σχεδιασμός και εκτέλεση, επειδή τα δεδομένα δοκιμών προέρχονται απευθείας από τις προδιαγραφές.
- Δεν απαιτεί ειδικό περιβάλλον, εισαγωγή σφαλμάτων ή αλλοιωμένο σύνολο δεδομένων.
- Παράγει αποδεικτικά στοιχεία που αντιστοιχούν σε ένα προς ένα με τις απαιτήσεις, τα οποία ταιριάζουν σε ελέγχους και εγκρίσεις.
- Λειτουργεί εξίσου καλά με χειροκίνητη δοκιμή και όπως έχει γραφτεί δοκιμές αυτοματισμού, έτσι ώστε οι ίδιες περιπτώσεις να μπορούν να επαναχρησιμοποιηθούν σε μια σουίτα παλινδρόμησης.
- Δίνει ένα πρώιμο, ειλικρινές σήμα σχετικά με την υγεία της κατασκευής σε οποιοδήποτε επίπεδο, από τη μονάδα έως και δοκιμή ολοκλήρωσης προς την δοκιμή συστήματος.
Περιορισμοί
- Ένα πλήρες πέρασμα δεν λέει τίποτα για το πώς συμπεριφέρεται η εφαρμογή με μη έγκυρη είσοδο, επομένως σοβαρά ελαττώματα χειρισμού σφαλμάτων μπορούν να επιβιώσουν.
- Η κάλυψη περιορίζεται από την ποιότητα των απαιτήσεων. Οτιδήποτε δεν έχει καθοριστεί δεν δοκιμάζεται ποτέ.
- Μπορεί να δημιουργήσει ψευδή αυτοπεποίθηση όταν η ευτυχισμένη πορεία είναι η μόνη που ασκείται πριν από μια απελευθέρωση.
- Δεν μετρά την ανθεκτικότητα, την ανάκαμψη ή την απόδοση υπό πίεση, οι οποίες χρειάζονται τις δικές τους τεχνικές από το ευρύτερο σύνολο τύποι δοκιμών λογισμικού.
Αντιμετωπίστε τις μη καταστροφικές δοκιμές ως τη βάση πάνω στην οποία βασίζεται κάθε άλλη τεχνική και προγραμματίστε τες εντός του ευρύτερου πλαισίου. κύκλος ζωής δοκιμής λογισμικού και όχι ως μεμονωμένη δραστηριότητα.


