Τι είναι το Loop Testing; Μεθοδολογία, Παράδειγμα
⚡ Έξυπνη Σύνοψη
Η δοκιμή βρόχου επικυρώνει τις δομές βρόχου μέσα σε ένα πρόγραμμα, ελέγχοντας τι συμβαίνει όταν ένας βρόχος παραλείπεται, εισάγεται μία φορά, εκτελείται στα όριά του και ωθείται κατά ένα πέρασμα πέρα από το μέγιστο επιτρεπόμενο πλήθος.
Τι είναι το Loop Testing;
Δοκιμή βρόχου είναι ένας τύπος δοκιμής λογισμικού που εστιάζει αποκλειστικά στην εγκυρότητα των δομών βρόχου σε ένα πρόγραμμα. Είναι ένα μέρος της δοκιμής δομής ελέγχου, παράλληλα με δοκιμή διαδρομής, δοκιμές επικύρωσης δεδομένων και δοκιμές κατάστασης.
Η δοκιμή βρόχου είναι α δοκιμή λευκού κουτιού τεχνική, επομένως εφαρμόζεται από κάποιον που μπορεί να διαβάσει τον πηγαίο κώδικα και να δει τη συνθήκη του βρόχου, τον μετρητή και τη διαδρομή εξόδου. Ο δοκιμαστής δεν μαντεύει τη συμπεριφορά από τη διεπαφή χρήστη. ο ίδιος ο βρόχος είναι το αντικείμενο που δοκιμάζεται.
Το παρακάτω διάγραμμα δείχνει πού βρίσκεται η δοκιμή βρόχου μέσα στην οικογένεια δοκιμών δομής ελέγχου.
Τύποι βρόχου Δοκιμασμένο
Πριν επιλέξετε μια στρατηγική, προσδιορίστε ποια από τις τέσσερις κλάσεις βρόχων εξετάζετε. Παραδείγματα τύπων βρόχων που ελέγχονται είναι:
- Απλός βρόχος — ένας μόνο βρόχος με μία είσοδο και μία έξοδο, όπως ένας απλός βρόχος για, ενώ or κάνω-λίγο κατασκευάζω.
- Ένθετος βρόχος — ένας βρόχος τοποθετημένος μέσα σε έναν άλλο, έτσι ώστε ο εσωτερικός βρόχος να ολοκληρώνεται σε κάθε πέρασμα του εξωτερικού βρόχου.
- Συνενωμένος βρόχος — δύο ή περισσότεροι βρόχοι που εκτελούνται ο ένας μετά τον άλλον σε σειρά.
- Μη δομημένος βρόχος — ένας μη προγραμματισμένος συνδυασμός ένθετων και συνενωμένων βρόχων, συνήθως το αποτέλεσμα μεταπηδήσεων εντός ή εκτός ενός σώματος βρόχου.
Η κλάση αποφασίζει για την προσπάθεια. Ένας απλός βρόχος χρειάζεται μερικές επαναλήψεις. Ένας μη δομημένος βρόχος συνήθως χρειάζεται επανασχεδιασμό του κώδικα πριν μπορέσει να δοκιμαστεί καθόλου.
Γιατί να κάνετε Loop Testing;
Το Loop Testing γίνεται για τους παρακάτω λόγους
- Η δοκιμή μπορεί να διορθώσει τα προβλήματα επανάληψης βρόχου
- Οι δοκιμές βρόχων μπορούν να αποκαλύψουν σημεία συμφόρησης στην απόδοση και την χωρητικότητα
- Με τον έλεγχο των βρόχων, μπορούν να προσδιοριστούν οι μη αρχικοποιημένες μεταβλητές στον βρόχο
- Βοηθά στον εντοπισμό προβλημάτων αρχικοποίησης βρόχου.
Υπάρχει επίσης ένας εμπορικός λόγος. Ένας βρόχος που εκτελεί μία επανάληψη παραπάνω καταστρέφει ένα σύνολο. Ένας βρόχος που δεν τερματίζει ποτέ κολλάει μια διεργασία. Και τα δύο ελαττώματα είναι φθηνά στην εύρεση όσο ο κώδικας βρίσκεται ακόμα σε έναν υπολογιστή προγραμματιστή και ακριβά στην παραγωγή.
Πώς να κάνετε Loop Testing: Ολοκληρωμένη Μεθοδολογία
Κατά τη δοκιμή ενός βρόχου, πρέπει να ελεγχθεί σε τρία διαφορετικά επίπεδα:
- Όταν εισέλθει ο βρόχος
- Κατά την εκτέλεσή του, και
- Όταν μείνει ο βρόχος
Η στρατηγική ελέγχου για όλους αυτούς τους βρόχους έχει ως εξής.
Απλός βρόχος
Ένας απλός βρόχος έχει μία μόνο είσοδο και μία μόνο έξοδο, όπως φαίνεται παρακάτω.
Ένας απλός βρόχος δοκιμάζεται με τον ακόλουθο τρόπο:
- Παράλειψη ολόκληρου του βρόχου
- Κάντε 1 πέρασμα μέσα από τον βρόχο
- Κάντε 2 περάσματα από τον βρόχο
- Κάνε τους υποστηρικτές σου πρωταγωνιστές! Δώσε χώρο σε παλιά και νέα μέλη της ομάδας σου να συμμετάσχουν και φρόντισε η συνεισφορά τους να εκτιμάται και να τους δίνει ικανοποίηση. Μην φοβάσαι να συνεργάζεσαι και να δίνεις τα εύσημα και σε άλλες ομάδες που δουλεύουν σε παρόμοια θέματα. Πήγαινε κι εσύ στις δικές τους εκδηλώσεις και άκου τις ανάγκες τους για να στήσεις γερές συμμαχίες. a περνάει από τον βρόχο όπου a < b, αυτός είναι ένας τυπικός αριθμός επαναλήψεων μεσαίου εύρους
- Κάνε τους υποστηρικτές σου πρωταγωνιστές! Δώσε χώρο σε παλιά και νέα μέλη της ομάδας σου να συμμετάσχουν και φρόντισε η συνεισφορά τους να εκτιμάται και να τους δίνει ικανοποίηση. Μην φοβάσαι να συνεργάζεσαι και να δίνεις τα εύσημα και σε άλλες ομάδες που δουλεύουν σε παρόμοια θέματα. Πήγαινε κι εσύ στις δικές τους εκδηλώσεις και άκου τις ανάγκες τους για να στήσεις γερές συμμαχίες. b, b-1 και b+1 διέρχεται από τον βρόχο όπου b είναι ο μέγιστος αριθμός επιτρεπόμενων περασμάτων μέσω του βρόχου.
Οι δύο τελευταίες περιπτώσεις έχουν το μεγαλύτερο μέρος της αξίας. Παράλειψηping ο βρόχος αποδεικνύει ότι η συνθήκη εξόδου αξιολογείται πριν εκτελεστεί το σώμα, και το bΗ περίπτωση +1 αποδεικνύει ότι ο βρόχος αρνείται να εργαστεί πέρα από το δηλωμένο όριο αντί να υπερβεί έναν πίνακα.
Ένθετος βρόχος
Ένας ένθετος βρόχος πολλαπλασιάζει τον αριθμό των πιθανών συνδυασμών επαναλήψεων, επομένως δοκιμάζεται από μέσα προς τα έξω και όχι από όλους μαζί.
Για έναν ένθετο βρόχο, πρέπει να ακολουθήσετε τα ακόλουθα βήματα.
- Ρυθμίστε όλους τους άλλους βρόχους στην ελάχιστη τιμή τους και ξεκινήστε από τον εσωτερικό βρόχο
- Για τον πιο εσωτερικό βρόχο, εκτελέστε μια απλή δοκιμή βρόχου και κρατήστε τους εξωτερικούς βρόχους στην τιμή παραμέτρου ελάχιστης επανάληψης
- Εκτελέστε τη δοκιμή για τον επόμενο βρόχο και εργαστείτε προς τα έξω
- Συνεχίστε μέχρι να δοκιμαστεί ο πιο εξωτερικός βρόχος.
Συνενωμένοι βρόχοι
Οι συνενωμένοι βρόχοι βρίσκονται ο ένας μετά τον άλλον στην ίδια διαδρομή εκτέλεσης, όπως δείχνει το διάγραμμα.
Σε συνενωμένους βρόχους, εάν δύο βρόχοι είναι ανεξάρτητοι ο ένας από τον άλλον, τότε δοκιμάζονται χρησιμοποιώντας την προσέγγιση απλού βρόχου, διαφορετικά δοκιμάζονται ως ένθετοι βρόχοι.
Ωστόσο, εάν ο μετρητής βρόχου ενός βρόχου χρησιμοποιηθεί ως αρχική τιμή για τον άλλον, οι δύο βρόχοι δεν θεωρούνται ανεξάρτητοι.
Μη δομημένοι βρόχοι
Οι μη δομημένοι βρόχοι είναι η πιο δύσκολη περίπτωση, επειδή ο έλεγχος μεταπηδά μέσα και έξω από το σώμα του βρόχου σε αυθαίρετα σημεία.
Για τους μη δομημένους βρόχους, ο σχεδιασμός πρέπει να αναδιαρθρωθεί ώστε να αντικατοπτρίζει τη χρήση δομών δομημένου προγραμματισμού. Μόλις ο κώδικας μειωθεί σε απλές, ένθετες ή συνενωμένες μορφές, εφαρμόζεται η παραπάνω στρατηγική αντιστοίχισης.
Παράδειγμα Δοκιμής Βρόχου με Δοκιμαστικές Περιπτώσεις
Ένα λειτουργικό παράδειγμα καθιστά τις επαναλήψεις μετρήσεις συγκεκριμένες. Σκεφτείτε μια ρουτίνα που πολλαπλασιάζει ένα τρέχον αποτέλεσμα με κάθε ακέραιο αριθμό από το 1 έως το n, ένας παραγοντικός υπολογισμός. Ο μετρητής βρόχου ξεκινά από το 1, η συνθήκη εξόδου είναι αντιμετώπιση > n, και ο βρόχος δηλώνεται ότι δέχεται το πολύ 12 περάσματα πριν το αποτέλεσμα υπερχειλίσει τον δηλωμένο ακέραιο τύπο.
Αντιμετωπίζοντας αυτό ως έναν απλό βρόχο, οι αριθμοί επαναλήψεων που προτείνονται παραπάνω μεταφράζονται στα ακόλουθα περιπτώσεις δοκιμής.
| Δοκιμή | Τιμή του n | Εκτελεσμένες πάσες | Τι αποδεικνύει |
| TC01 | 0 | 0 (ο βρόχος παραλείφθηκε) | Η συνθήκη εξόδου αξιολογείται πριν από την εκτέλεση του σώματος και το αποτέλεσμα παραμένει στην αρχική του τιμή 1. |
| TC02 | 1 | 1 | Ένα μόνο πέρασμα παράγει το σωστό αποτέλεσμα και ο μετρητής αυξάνεται μία φορά. |
| TC03 | 2 | 2 | Ο συσσωρευτής μεταφέρει μια τιμή προς τα εμπρός μεταξύ δύο διαδοχικών περασμάτων. |
| TC04 | 5 | 5 | Μια τυπική μέτρηση μεσαίου εύρους επιστρέφει την αναμενόμενη τιμή 120, επιβεβαιώνοντας τη συνήθη συμπεριφορά. |
| TC05 | 11 | 11 | Ένα πέρασμα κάτω από το μέγιστο ολοκληρώνεται κανονικά (b-1). |
| TC06 | 12 | 12 | Το δηλωμένο μέγιστο γίνεται αποδεκτό και ο βρόχος τερματίζεται (b). |
| TC07 | 13 | απορρίφθηκαν | Ένα πέρασμα πέρα από το μέγιστο απορρίπτεται αντί να ξεχειλίζει σιωπηλά (b+ 1). |
Παρατηρήστε ότι οι TC01 και TC07 είναι οι δύο περιπτώσεις που οι προγραμματιστές παραλείπουν συχνότερα και είναι οι δύο που εκθέτουν ελαττώματα παράλειψης αρχικοποίησης και υπερχείλισης. Μια αρνητική τιμή του n ανήκει στο ίδιο σύνολο εάν η προδιαγραφή επιτρέπει την παροχή του, γεγονός που συνδέει τον έλεγχο βρόχου με αρνητικό τεστ.
Συνήθη ελαττώματα που εντοπίστηκαν με δοκιμές βρόχου
Ο έλεγχος βρόχου συνεχίζει να βρίσκει την ίδια μικρή οικογένεια σφαλμάτων, κάτι που κάνει τις σταθερές μετρήσεις επαναλήψεων άξιες να εκτελούνται κάθε φορά.
- Όρια εκτός ενός — μια συνθήκη που γράφεται ως < όπου <= ήταν προορισμένο, επομένως ο βρόχος εκτελεί ένα πέρασμα πολύ λίγο ή ένα πάρα πολύ.
- Μη αρχικοποιημένοι μετρητές ή συσσωρευτές — ένα σύνολο που φέρει μια τιμή που έχει απομείνει από μια προηγούμενη κλήση.
- Άπειροι βρόχοι — μια συνθήκη εξόδου που το σώμα του βρόχου δεν μπορεί ποτέ να ικανοποιήσει επειδή ο μετρητής ενημερώνεται μόνο σε ορισμένους κλάδους.
- Υποθέσεις παράλειψης βρόχου — κώδικας μετά τον βρόχο που διαβάζει μια μεταβλητή που αναμενόταν να ορίσει το σώμα του βρόχου, η οποία αποτυγχάνει όταν ο βρόχος εκτελείται μηδέν φορές.
- Σφάλματα χωρητικότητας και απόδοσης — ένας βρόχος που είναι σωστός αλλά ξαναδιαβάζει τη βάση δεδομένων σε κάθε πέρασμα, επομένως το κόστος αυξάνεται με τον αριθμό των επαναλήψεων.
- Παρεμβολή σε ένθετο βρόχο — ένας εσωτερικός βρόχος που επαναχρησιμοποιεί τον μετρητή εξωτερικού βρόχου και αλλάζει αθόρυβα τον αριθμό των εξωτερικών επαναλήψεων.
Επειδή κάθε σφάλμα αντιστοιχεί σε έναν συγκεκριμένο αριθμό επαναλήψεων, τα ελαττώματα που εμφανίζονται εδώ είναι εύκολο να αναπαραχθούν και να διορθωθούν γρήγορα σε σύγκριση με τα ελαττώματα που εντοπίζονται σε υψηλότερες τιμές. επίπεδα δοκιμών.
Δοκιμή βρόχου έναντι άλλων τεχνικών δοκιμής δομής ελέγχου
Η δοκιμή βρόχου είναι ένα μέλος της οικογένειας δομών ελέγχου και είναι εύκολο να συγχέεται με τις γειτονικές τεχνικές. Ο παρακάτω πίνακας τις διαχωρίζει.
| Τεχνική | Τι στοχεύει | Τυπικός στόχος κάλυψης |
| Δοκιμή βρόχου | Δομές βρόχου: είσοδος, αριθμός επαναλήψεων και έξοδος | Η μηδενική, η μία, η τυπική και η οριακή επανάληψη μετράνε για κάθε βρόχο |
| Δοκιμή κατάστασης | Λογικές εκφράσεις μέσα σε αποφάσεις | Κάθε συνθήκη αξιολογείται τόσο ως αληθής όσο και ως ψευδής |
| Δοκιμή ροής δεδομένων | Ορισμός και χρήση κάθε μεταβλητής | Κάθε ζεύγος ορισμού προς χρήση ασκήθηκε τουλάχιστον μία φορά |
| Δοκιμή διαδρομής βάσης | Ανεξάρτητες διαδρομές μέσω του γραφήματος ροής ελέγχου | Ένας αριθμός μονοπατιών ίσος με την κυκλοματική πολυπλοκότητα |
Στην πράξη, αυτές οι τεχνικές είναι συμπληρωματικές και όχι ανταγωνιστικές. Κυκλοματική πολυπλοκότητα σας λέει πόσες ανεξάρτητες διαδρομές υπάρχουν, η δοκιμή βασικής διαδρομής τις καλύπτει και η δοκιμή βρόχου προσθέτει στη συνέχεια τους αριθμούς επαναλήψεων που η κάλυψη διαδρομής από μόνη της δεν θα μπορούσε να επιβάλει. Όλες είναι δυναμική δοκιμή δραστηριότητες, καθώς ο κώδικας πρέπει να εκτελεστεί για να παρατηρηθούν τα αποτελέσματα.
Περιορισμός στη δοκιμή βρόχου
Η τεχνική έχει πραγματικά όρια και η γνώση τους αποτρέπει την υπερεπένδυση.
- Τα σφάλματα βρόχου εμφανίζονται κυρίως σε λογισμικό χαμηλού επιπέδου
- Τα σφάλματα που εντοπίστηκαν κατά τη δοκιμή βρόχου δεν είναι πολύ λεπτά
- Πολλά από τα σφάλματα ενδέχεται να εντοπιστούν από το λειτουργικό σύστημα, καθώς προκαλούν παραβιάσεις ορίων μνήμης, ανιχνεύσιμα σφάλματα δείκτη και παρόμοια σφάλματα.
- Ο προσδιορισμός της κλάσης κάθε βρόχου και η αντίστοιχη δοκιμή του κοστίζει χρόνο, κάτι που είναι δύσκολο να δικαιολογηθεί σε διαδρομές κώδικα που ενέχουν μικρό κίνδυνο.





