Δοκιμή Διαδρομής & Δοκιμή Βασικής Διαδρομής σε Λογισμικό με Παραδείγματα

⚡ Έξυπνη Σύνοψη

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

  • Βασική ιδέα: Οι δοκιμαστικές περιπτώσεις προέρχονται από τη δομή του κώδικα και όχι από το έγγραφο απαιτήσεων.
  • 🔢 Τέσσερα βήματα: Σχεδιάστε το γράφημα ροής ελέγχου, υπολογίστε την κυκλοματική πολυπλοκότητα, παράγετε το βασικό σύνολο, γράψτε μία δοκιμή ανά διαδρομή.
  • 📐 Αριθμός δοκιμαστικών περιπτώσεων: Ο αριθμός των ανεξάρτητων μονοπατιών ισούται με την κυκλοματική πολυπλοκότητα, δίνοντας έναν αντικειμενικό στόχο.
  • 🔄 Υβριδική μέθοδος: Συνδυάζει δοκιμές διακλάδωσης και δοκιμές διαδρομής για να επιτύχει μέγιστη κάλυψη με ελάχιστες δοκιμές.
  • Εγγύηση Κάλυψης: Η εκτέλεση του βασικού συνόλου εκτελεί κάθε εντολή στην ενότητα τουλάχιστον μία φορά.
  • ⚠️ Γνωστό Όριο: Δεν μπορεί να βρει απαιτήσεις που λείπουν, επειδή δοκιμάζει μόνο κώδικα που ήδη υπάρχει.

Δοκιμή διαδρομής Βασική δοκιμή διαδρομής

Τι είναι η δοκιμή διαδρομής στη δοκιμή λογισμικού;

Ο έλεγχος διαδρομής είναι μια μέθοδος δομικής δοκιμής που περιλαμβάνει τη χρήση του πηγαίου κώδικα ενός προγράμματος προκειμένου να βρεθεί κάθε πιθανή εκτελέσιμη διαδρομή. Βοηθά στον προσδιορισμό όλων των σφαλμάτων που βρίσκονται σε ένα κομμάτι κώδικα. Αυτή η μέθοδος έχει σχεδιαστεί για να εκτελεί όλη ή επιλεγμένη διαδρομή μέσω ενός προγράμματος υπολογιστή.

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

Δοκιμή Βασικής Διαδρομής στη Μηχανική Λογισμικού

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

In τεχνολογία λογισμικού, Η δοκιμή βασικής διαδρομής περιλαμβάνει την εκτέλεση όλων των πιθανών μπλοκ σε ένα πρόγραμμα και επιτυγχάνει τη μέγιστη κάλυψη διαδρομής με τον μικρότερο αριθμό περιπτώσεων δοκιμής. Είναι μια υβριδική μέθοδος δοκιμής διακλάδωσης και μεθόδων δοκιμής διαδρομής.

Ένα απλό παράδειγμα καθιστά την ιδέα συγκεκριμένη.

Δοκιμή Βασικής Διαδρομής στη Μηχανική Λογισμικού

Το παραπάνω γράφημα ροής περιέχει εντολές υπό όρους, επομένως ο έλεγχος μπορεί να φτάσει στην έξοδο μέσω περισσότερων από μίας διαδρομής. Απαιτούνται τρεις ανεξάρτητες διαδρομές για την κάλυψή της:

  • Διαδρομή 1: 1,2,3,5,6, 7
  • Διαδρομή 2: 1,2,4,5,6, 7
  • Διαδρομή 3: 1, 6, 7

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

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

  • Κόμβος: μια ακολουθία εντολών που εκτελούνται πάντα μαζί, σχεδιασμένες ως κύκλος. Μια σειρά εντολών χωρίς διακλάδωση συμπτυχώνεται σε έναν μόνο κόμβο.
  • Edge: μια μεταφορά ελέγχου από έναν κόμβο στον επόμενο, που σχεδιάζεται ως βέλος. Οι άκρες είναι ο μόνος τρόπος με τον οποίο κινείται ο έλεγχος.
  • Κατηγορηματικός κόμβος: ένας κόμβος που περιέχει μια συνθήκη, με δύο ή περισσότερες ακμές να τον εξέρχονται. Αυτές καθορίζουν την πολυπλοκότητα.
  • Περιοχή: μια περιοχή που οριοθετείται από ακμές και κόμβους. Ο αριθμός των περιοχών συν ένα ισούται επίσης με την κυκλοματική πολυπλοκότητα.

Σκεφτείτε μια σύντομη ενότητα με δύο αποφάσεις:

if (a > b) {          // node 1, predicate
    max = a;          // node 2
} else {
    max = b;          // node 3
}
if (max > limit) {    // node 4, predicate
    alert();          // node 5
}
return max;           // node 6

Το γράφημα έχει 6 κόμβους και 6 ακμές, δίνοντας V(G) = 6 – 6 + 2 = 2 από τον τύπο της ακμής. Ο αριθμός των κατηγορημάτων δίνει την ίδια απάντηση πιο γρήγορα: 2 αποφάσεις συν 1 ισούνται με 3 ανεξάρτητες διαδρομές μέσω των δύο κλάδων μαζί. Χρησιμοποιήστε οποιαδήποτε μορφή μπορείτε να υπολογίσετε αξιόπιστα και διασταυρώστε την με την άλλη.

Δύο κανόνες που αποτρέπουν τα περισσότερα λάθη. Καταρχάς, μια σύνθετη συνθήκη όπως π.χ. αν (x > 0 && y > 0) μετράει ως δύο κόμβοι κατηγορήματος, όχι ως ένας, επειδή το βραχυκύκλωμα δημιουργεί μια δεύτερη απόφαση. Δεύτερον, ένας βρόχος συνεισφέρει έναν κόμβο κατηγορήματος ανεξάρτητα από το πόσες φορές επαναλαμβάνεται.

Βήματα για τον έλεγχο της διαδρομής βάσης

Τα βασικά βήματα που εμπλέκονται στη δοκιμή διαδρομής βάσης περιλαμβάνουν

  • Σχεδιάστε ένα γράφημα ελέγχου (για να προσδιορίσετε διαφορετικές διαδρομές προγράμματος)
  • Υπολογίζω Κυκλοματική πολυπλοκότητα (μετρήσεις για τον προσδιορισμό του αριθμού των ανεξάρτητων διαδρομών)
  • Βρείτε ένα βασικό σύνολο μονοπατιών
  • Δημιουργία περιπτώσεις δοκιμής να ασκήσω κάθε διαδρομή

Πλεονεκτήματα και περιορισμοί του ελέγχου διαδρομής βάσης

Πλεονεκτήματα του ελέγχου διαδρομής βάσης

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

Περιορισμοί του ελέγχου διαδρομής βάσης

  • Δεν μπορεί να βρει τον κωδικό που λείπει. Μια απαίτηση που δεν υλοποιήθηκε ποτέ δεν έχει διαδρομή, επομένως δεν θα δημιουργηθεί δοκιμή για αυτήν. Η δοκιμή διαδρομής βάσης πρέπει να συνδυαστεί με δοκιμή που βασίζεται σε απαιτήσεις.
  • Ο αριθμός των διαδρομών αυξάνεται γρήγορα. Οι εμφωλευμένοι βρόχοι και οι σύνθετες συνθήκες αυξάνουν γρήγορα την πολυπλοκότητα και μια ενότητα με V(G) πάνω από 20 καθίσταται μη πρακτική στην κάλυψη με αυτόν τον τρόπο.
  • Η κάλυψη δεν είναι ορθότητα. Η εκτέλεση μιας διαδρομής αποδεικνύει ότι ο κώδικας εκτελείται, όχι ότι παράγει τη σωστή απάντηση. Κάθε δοκιμή χρειάζεται ακόμα μια ουσιαστική διαβεβαίωση.
  • Διαδρομές που εξαρτώνται από δεδομένα. Ορισμένες διαδρομές είναι προσβάσιμες μόνο με συγκεκριμένους συνδυασμούς εισόδου που μπορεί να είναι δύσκολο ή αδύνατο να κατασκευαστούν.

Συχνές Ερωτήσεις

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

Ακριβώς η κυκλοματική πολυπλοκότητα της ενότητας. Αν το V(G) είναι 4, τότε υπάρχουν 4 ανεξάρτητες διαδρομές και απαιτούνται 4 περιπτώσεις δοκιμής για πλήρη κάλυψη διακλάδωσης.

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

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

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

Συνοψίστε αυτήν την ανάρτηση με: