Cyclomatic Complexity στη δοκιμή λογισμικού (Παράδειγμα)

Τι είναι το Cyclomatic Com. του McCabeplexity;

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

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

Αυτή η μέτρηση αναπτύχθηκε από τον Thomas J. McCabe το 1976 και βασίζεται σε μια αναπαράσταση ροής ελέγχου του προγράμματος. Η ροή ελέγχου απεικονίζει ένα πρόγραμμα ως γράφημα που αποτελείται από κόμβους και άκρες.

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

McCabe's Cyclomatic Complexτητα

Σημειογραφία γραφήματος ροής για ένα πρόγραμμα

Ο συμβολισμός γραφήματος ροής για ένα πρόγραμμα ορίζει αρκετούς κόμβους που συνδέονται μέσω των άκρων. Ακολουθούν διαγράμματα ροής για εντολές όπως if-else, ενώ, μέχρι και κανονική ακολουθία ροής.

Σημειογραφία γραφήματος ροής για ένα πρόγραμμα

Πώς να υπολογίσετε το Cyclomatic Complexτητα

Μαθηματική αναπαράσταση:

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

V(G) = E - N + 2

Που,

E – Αριθμός άκρων

N – Αριθμός κόμβων

V (G) = P + 1

Όπου P = Αριθμός κατηγορηματικών κόμβων (κόμβος που περιέχει συνθήκη)

Παράδειγμα -

i = 0;
n=4; //N-Number of nodes present in the graph

while (i<n-1) do
j = i + 1;

while (j<n) do

if A[i]<A[j] then
swap(A[i], A[j]);

end do;
j=j+1;

end do;

Το γράφημα ροής για αυτό το πρόγραμμα θα είναι

Υπολογίστε Cyclomatic Complexτητα

Υπολογίζοντας μαθηματικά,

  • V(G) = 9 – 7 + 2 = 4
  • V(G) = 3 + 1 = 4 (Οι κόμβοι συνθήκης είναι 1,2 και 3 κόμβοι)
  • Σύνολο Βάσεων – Ένα σύνολο πιθανής διαδρομής εκτέλεσης ενός προγράμματος
  • 1, 7
  • 1, 2, 6, 1, 7
  • 1, 2, 3, 4, 5, 2, 6, 1, 7
  • 1, 2, 3, 5, 2, 6, 1, 7

Ιδιότητες της Cyclomatic complexτητα

Following είναι οι ιδιότητες της Cyclomatic complexity:

  1. V (G) είναι ο μέγιστος αριθμός ανεξάρτητων μονοπατιών στο γράφημα
  2. V (G) >=1
  3. Το G θα έχει ένα μονοπάτι εάν V (G) = 1
  4. Ελαχιστοποίηση complexέως 10

Πώς είναι χρήσιμη αυτή η μέτρηση για τη δοκιμή λογισμικού;

Η δοκιμή Βασικής Διαδρομής είναι μία από τις White box τεχνική και εγγυάται την εκτέλεση τουλάχιστον μίας εντολής κατά τη διάρκεια της δοκιμής. Ελέγχει κάθε γραμμικά ανεξάρτητη διαδρομή μέσω του προγράμματος, η οποία σημαίνει αριθμητικές περιπτώσεις δοκιμών, θα είναι ισοδύναμες με το κυκλωματικό complexτου προγράμματος.

Αυτή η μέτρηση είναι χρήσιμη λόγω των ιδιοτήτων της Cyclomatic complexity (M) –

  1. Το M μπορεί να είναι ο αριθμός των δοκιμαστικών περιπτώσεων για την επίτευξη κάλυψης υποκαταστήματος (Ανώτερο όριο)
  2. Το M μπορεί να είναι ο αριθμός των μονοπατιών μέσα από τα γραφήματα. (Χαμηλότερο όριο)

Σκεφτείτε αυτό το παράδειγμα -

If (Condition 1)
Statement 1

Else
Statement 2

If (Condition 2)
Statement 3

Else
Statement 4

Cyclomatic Complexη τιμή για αυτό το πρόγραμμα θα είναι 8-7+2=3.

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

Βήματα που πρέπει να ακολουθηθούν:

Το Following θα πρέπει να ακολουθηθούν τα βήματα για τον υπολογισμό της Cyclomatic complexσχεδιασμός δοκιμών.

Βήμα 1 – Κατασκευή γραφήματος με κόμβους και ακμές από τον κώδικα

Βήμα 2 – Προσδιορισμός ανεξάρτητων μονοπατιών

Βήμα 3 – Cyclomatic ComplexΥπολογισμός ity

Βήμα 4 – Σχεδιασμός Δοκιμαστικών Υποθέσεων

Μόλις σχηματιστεί το βασικό σύνολο, ΔΟΚΙΜΑΣΙΕΣ πρέπει να γραφτεί για να εκτελέσει όλες τις διαδρομές.

Περισσότερα για το V (G)

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

Following Ο πίνακας δίνει επισκόπηση στην complexαριθμός και η αντίστοιχη σημασία του v (G):

complexity αριθμός Νόημα
1-10 Δομημένος και καλογραμμένος κώδικας

Υψηλή Δοκιμαστικότητα

Το κόστος και η προσπάθεια είναι μικρότερη

10-20 complex Κώδικας

Μέτρια Δοκιμαστικότητα

Το κόστος και η προσπάθεια είναι μέτρια

20-40 Πολύ complex Κώδικας

Χαμηλή Δοκιμαστικότητα

Το κόστος και η προσπάθεια είναι υψηλά

> 40 Καθόλου ελεγχόμενο

Πολύ υψηλό κόστος και προσπάθεια

Εργαλεία για Cyclomatic Complexυπολογισμός δυναμικότητας:

Πολλά εργαλεία είναι διαθέσιμα για τον προσδιορισμό του complexτης αίτησης. Κάποια complexΤα εργαλεία υπολογισμού της ικανότητας χρησιμοποιούνται για συγκεκριμένες τεχνολογίες. Complexμπορεί να βρεθεί από τον αριθμό των σημείων απόφασης σε ένα πρόγραμμα. Τα σημεία απόφασης είναι εάν, για, για κάθε, while, do, catch, δηλώσεις περίπτωσης σε έναν πηγαίο κώδικα.

Παραδείγματα εργαλείων είναι

  • OCLint – Αναλυτής στατικού κώδικα για C και σχετικές γλώσσες
  • Reflector Add In – Μετρήσεις κώδικα για συγκροτήματα .NET
  • GMetrics – Βρείτε μετρήσεις στο Java σχετικές εφαρμογές

Χρήσεις Cyclomatic Complexity:

Cyclomatic Complexμπορεί να αποδειχθεί πολύ χρήσιμη σε

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

Συμπέρασμα

Cyclomatic Complexity είναι μέτρηση λογισμικού χρήσιμη για δομημένα ή Άσπρο Box Δοκιμές. Χρησιμοποιείται κυρίως για την αξιολόγηση complexενός προγράμματος. Εάν τα σημεία απόφασης είναι περισσότερα, τότε complexη ποιότητα του προγράμματος είναι περισσότερο. Εάν το πρόγραμμα έχει υψηλή complexαριθμός ity, τότε η πιθανότητα σφάλματος είναι υψηλή με αυξημένο χρόνο για συντήρηση και αντιμετώπιση προβλημάτων.