Κάλυψη δοκιμών στις δοκιμές λογισμικού: Πώς να τη μετρήσετε
⚡ Έξυπνη Σύνοψη
Η κάλυψη δοκιμών στις δοκιμές λογισμικού μετράει πόσο μια εφαρμογή ασκείται στην πραγματικότητα από ένα σύνολο δοκιμών. Αποκαλύπτει μη δοκιμασμένες απαιτήσεις, διαδρομές κώδικα και κινδύνους, έτσι ώστε οι ομάδες να μπορούν να προσθέσουν στοχευμένες περιπτώσεις και να τις κυκλοφορήσουν με μετρήσιμη σιγουριά.
Τι είναι η κάλυψη δοκιμής;
Η κάλυψη δοκιμής ορίζεται ως μια μέτρηση στη Δοκιμή λογισμικού που μετρά τον όγκο των δοκιμών που εκτελούνται από ένα σύνολο δοκιμών. Θα περιλαμβάνει τη συλλογή πληροφοριών σχετικά με τα μέρη ενός προγράμματος που εκτελούνται κατά την εκτέλεση της δοκιμαστικής σουίτας για να προσδιοριστεί ποιοι κλάδοι εντολών υπό όρους έχουν ληφθεί.
Με απλά λόγια, είναι μια τεχνική για να διασφαλίσετε ότι οι δοκιμές σας δοκιμάζουν τον κώδικά σας ή πόσο από τον κώδικά σας ασκήσατε εκτελώντας τη δοκιμή.
Τι κάνει η Κάλυψη Δοκιμών;
Σε ένα ζωντανό έργο, η κάλυψη των δοκιμών υποστηρίζει τέσσερις πρακτικές δραστηριότητες:
- Εύρεση της περιοχής μιας απαίτησης που δεν εφαρμόζεται από ένα σύνολο δοκιμαστικών περιπτώσεων
- Βοηθά στη δημιουργία πρόσθετων δοκιμαστικών περιπτώσεων για αύξηση της κάλυψης
- Προσδιορισμός ποσοτικού μέτρου κάλυψης δοκιμής, που είναι μια έμμεση μέθοδος ποιοτικού ελέγχου
- Εντοπισμός περιπτώσεων δοκιμών χωρίς νόημα που δεν αυξάνουν την κάλυψη
Οφέλη από την κάλυψη δοκιμών στη μηχανική λογισμικού
Αυτές οι δραστηριότητες μεταφράζονται σε συγκεκριμένα οφέλη από την άποψη της μηχανικής.
- Μπορεί να διασφαλίσει την ποιότητα της δοκιμής
- Μπορεί να σας βοηθήσει να προσδιορίσετε ποια τμήματα του κώδικα αγγίχτηκαν πραγματικά για την κυκλοφορία ή την επιδιόρθωση
- Μπορεί να προσδιορίσει όλα τα σημεία απόφασης και τις διαδρομές στην εφαρμογή σας που δεν ελέγχθηκαν, γεγονός που σας επιτρέπει να αυξήσετε την κάλυψη των δοκιμών.
- Αποτροπή ελάττωμα διαρροή
- Ο χρόνος, το εύρος και το κόστος μπορούν να διατηρηθούν υπό έλεγχο
- Πρόληψη ελαττωμάτων σε πρώιμο στάδιο του κύκλου ζωής του έργου
- Τα κενά στις απαιτήσεις, οι περιπτώσεις δοκιμών και τα ελαττώματα σε επίπεδο μονάδας και σε επίπεδο κώδικα μπορούν να βρεθούν με εύκολο τρόπο
Τύποι Κάλυψης Δοκιμών
Η κάλυψη δεν είναι ποτέ ένας μόνο αριθμός. Ομάδες track αρκετούς τύπους ταυτόχρονα, επειδή ο καθένας απαντά σε διαφορετική ερώτηση σχετικά με την ίδια ομάδα. Ο παρακάτω πίνακας ομαδοποιεί τους τύπους που συναντάτε πιο συχνά.
| Τύπος κάλυψης | Τι Μετρά | Χρησιμοποιείται για |
|---|---|---|
| Κάλυψη δήλωσης (γραμμής) | Οι εκτελέσιμες γραμμές εκτελούνται τουλάχιστον μία φορά | Δοκιμές μονάδας και έλεγχοι παλαιού κώδικα |
| Κάλυψη υποκαταστήματος ή απόφασης | Αληθινό και ψευδές αποτέλεσμα κάθε απόφασης | Λογική υπό όρους και επικύρωσης |
| Κάλυψη πάθησης | Κάθε λογική υπο-έκφραση ως αληθής και ως ψευδής | Σύνθετες εκφράσεις AND ή OR |
| Κάλυψη διαδρομής | Μοναδικές διαδρομές που ακολουθούνται μέσω μιας ενότητας | Κρίσιμες για την ασφάλεια και οικονομικές ροές |
| Κάλυψη λειτουργίας | Συναρτήσεις ή μέθοδοι που καλούνται από δοκιμές | Επίπεδα API και υπηρεσιών |
| Κάλυψη απαιτήσεων | Απαιτήσεις που αντιστοιχίζονται σε τουλάχιστον μία εξέταση | Αποδοχή και παραδοχήtracπραγματική υπογραφή |
| Κάλυψη κινδύνου | Εντοπισμένες περιοχές υψηλού κινδύνου που ασκήθηκαν | Σύντομοι κύκλοι απελευθέρωσης |
Οι πρώτοι πέντε τύποι είναι μέτρα σε επίπεδο κώδικα και ανήκουν σε δοκιμή λευκού κουτιού, ενώ οι απαιτήσεις και η κάλυψη κινδύνου βρίσκονται σε επίπεδο σχεδίου δοκιμών.
Ποιες είναι οι κύριες διαφορές μεταξύ Code Κάλυψη και Κάλυψη Δοκιμών;
Code κάλυψη και η κάλυψη δοκιμής είναι τεχνικές μέτρησης που σας επιτρέπουν να αξιολογήσετε την ποιότητα του κώδικα της αίτησής σας.
Ακολουθούν ορισμένες κρίσιμες διαφορές μεταξύ των θαλάμων αυτών των μεθόδων κάλυψης:
| Παράμετροι | Code Κάλυψη | Κάλυψη δοκιμής |
|---|---|---|
| Ορισμός | Code όρος κάλυψης που χρησιμοποιείται όταν ασκείται κώδικας εφαρμογής ενώ εκτελείται μια εφαρμογή. | Η κάλυψη δοκιμής σημαίνει συνολικό σχέδιο δοκιμής. |
| Goal | Code Οι μετρήσεις κάλυψης μπορούν να βοηθήσουν την ομάδα να παρακολουθεί τις αυτοματοποιημένες δοκιμές της. | Στην κάλυψη δοκιμής παρέχονται λεπτομέρειες σχετικά με το επίπεδο στο οποίο έχει δοκιμαστεί η γραπτή κωδικοποίηση μιας εφαρμογής. |
| Υποτύποι | Code κάλυψη χωρισμένη σε υποτύπους όπως κάλυψη δήλωσης, κάλυψη κατάστασης, κάλυψη υποκαταστήματος, Togglηλεκτρονική κάλυψη, κάλυψη FSM. | Δεν υπάρχει υποτύπος μεθόδου κάλυψης δοκιμής. |
Δοκιμαστική Φόρμουλα Κάλυψης
Για να υπολογίσετε την κάλυψη δοκιμής, πρέπει να ακολουθήσετε τα παρακάτω βήματα:
Βήμα 1) Κόμης Y, το σύνολο των γραμμών κώδικα στο λογισμικό που χρησιμοποιείτε δοκιμών
Βήμα 2) Κόμης X, ο αριθμός γραμμών κώδικα που εκτελούνται αυτήν τη στιγμή όλες οι δοκιμαστικές περιπτώσεις
Τώρα, πρέπει να βρείτε (Χ διαιρούμενο με Y) πολλαπλασιασμένο με το 100. Το αποτέλεσμα αυτού του υπολογισμού είναι η κάλυψη δοκιμής σας %.
Για παράδειγμα:
Εάν ο αριθμός των γραμμών κώδικα σε ένα στοιχείο συστήματος είναι 500 και ο αριθμός των γραμμών που εκτελούνται σε όλες τις υπάρχουσες περιπτώσεις δοκιμών είναι 50, τότε η κάλυψη των δοκιμών σας είναι:
(50 / 500) * 100 = 10% // executed lines divided by total lines
Παραδείγματα κάλυψης δοκιμής
Το ποσοστό από μόνο του δεν είναι ποτέ η μόνη αιτία, όπως δείχνουν τα παρακάτω παραδείγματα.
Παράδειγμα 1:
Για παράδειγμα, αν θέλετε να δοκιμάσετε το «μαχαίρι», τότε πρέπει να εστιάσετε στον έλεγχο του κατά πόσον κόβει τα λαχανικά ή τα φρούτα με ακρίβεια ή όχι. Ωστόσο, υπάρχουν και άλλες πτυχές που πρέπει να προσέξετε, όπως για παράδειγμα αν ο χρήστης θα πρέπει να μπορεί να το χειρίζεται άνετα.
Παράδειγμα 2:
Για παράδειγμα, αν θέλετε να ελέγξετε την εφαρμογή σημειωματάριου, τότε ο έλεγχος των βασικών λειτουργιών της είναι απαραίτητος. Ωστόσο, πρέπει να καλύψετε και άλλες πτυχές, καθώς η εφαρμογή σημειωματάριου ανταποκρίνεται αναμενόμενα κατά τη χρήση άλλων εφαρμογών, ο χρήστης κατανοεί τη χρήση της εφαρμογής, δεν παρουσιάζει σφάλματα όταν προσπαθεί να κάνει κάτι ασυνήθιστο, κ.λπ.
Τεχνικές Κάλυψης Δοκιμών
Και τα δύο παραδείγματα οδηγούν στο ίδιο συμπέρασμα: η επίτευξη ενός στόχου κάλυψης εξαρτάται λιγότερο από τη σύνταξη περισσότερων τεστ και περισσότερο από την επιλογή της σωστής τεχνικής σχεδιασμού δοκιμών. Οι παρακάτω τεχνικές διευρύνουν την κάλυψη διατηρώντας παράλληλα...ping η σουίτα μικρή.
- Ανάλυση οριακών τιμών: Επιλέγει εισόδους στις άκρες κάθε έγκυρου εύρους, όπου τα ελαττώματα συγκεντρώνονται περισσότερο. Δείτε ανάλυση οριακών τιμών για επεξεργασμένες υποθέσεις.
- Διαμερισμός ισοδυναμίας: Ομαδοποιεί εισόδους που η εφαρμογή αντιμετωπίζει με τον ίδιο τρόπο, έτσι ώστε μια μεμονωμένη περίπτωση να μπορεί να αναπαραστήσει με ασφάλεια μια ολόκληρη κλάση τιμών.
- Δοκιμή πίνακα αποφάσεων: Καλύπτει συνδυασμούς συνθηκών και τα αναμενόμενα αποτελέσματά τους μέσα σε ένα ενιαίο πλέγμα.
- Δοκιμές μετάβασης σε πολιτείες: Ασκεί κάθε έγκυρη και μη έγκυρη κίνηση μεταξύ των καταστάσεων της εφαρμογής.
- Δοκιμή διαδρομής βάσης: Παράγει το ελάχιστο σύνολο ανεξάρτητων διαδρομών από το γράφημα ροής ελέγχου.
- Δοκιμές βάσει κινδύνου: Κατατάσσει τα χαρακτηριστικά με βάση τον αντίκτυπο στην επιχείρηση και καλύπτει πρώτα αυτά που ενέχουν τον υψηλότερο κίνδυνο.
- Διερευνητική δοκιμή: Αποκαλύπτει κενά που οι σεναριακές υποθέσεις και οι αναφορές κάλυψης δεν αποκαλύπτουν ποτέ.
Πώς μπορεί να επιτευχθεί η κάλυψη δοκιμών;
Μόλις επιλεγούν οι τεχνικές, τέσσερις καθιερωμένες διαδρομές παρέχουν την κάλυψη.
- Η κάλυψη των δοκιμών μπορεί να γίνει με την άσκηση των τεχνικών στατικής αναθεώρησης, όπως αξιολογήσεις από ομοτίμους, επιθεωρήσεις και αναλυτική παρουσίαση
- Μετατρέποντας τα ad-hoc ελαττώματα σε εκτελέσιμες δοκιμαστικές περιπτώσεις
- Σε επίπεδο κώδικα ή επίπεδο δοκιμής μονάδας, η κάλυψη δοκιμής μπορεί να επιτευχθεί χρησιμοποιώντας την αυτοματοποιημένη κάλυψη κωδικού ή τα εργαλεία κάλυψης δοκιμής μονάδας
- Η λειτουργική κάλυψη δοκιμών μπορεί να γίνει με τη βοήθεια κατάλληλων εργαλείων διαχείρισης δοκιμών
Πώς να βελτιώσετε την κάλυψη των εξετάσεων
Η καθιέρωση της κάλυψης είναι το σημείο εκκίνησης. Η αύξησή της είναι μια επαναλαμβανόμενη ρουτίνα. Επεξεργαστείτε αυτήν την ακολουθία στην αρχή κάθε κύκλου έκδοσης.
- Βάλτε τον τρέχοντα αριθμό σε βασική γραμμή. Εκτελέστε μια αναφορά κάλυψης και μια δήλωση καταγραφής, μια διακλάδωση και μια κάλυψη απαιτήσεων ξεχωριστά, έτσι ώστε τα κενά να παραμένουν ορατά ανά ενότητα και όχι κρυμμένα μέσα σε έναν μέσο όρο ολόκληρου του έργου.
- Χαρτογράφηση δοκιμών σύμφωνα με τις απαιτήσεις. Φτιάξτε ένα tracπλέγμα δυνατότητας που συνδέει κάθε απαίτηση με τουλάχιστον μία περίπτωση δοκιμής. Οποιαδήποτε κενή γραμμή είναι ένα επιβεβαιωμένο κενό, όχι μια υποψία.
- Κατάταξη ενοτήτων ανά κίνδυνο. Η πληρωμή, ο έλεγχος ταυτότητας και η λογική μετεγκατάστασης δεδομένων αξίζουν πολύ βαθύτερη κάλυψη από μια στατική οθόνη βοήθειας, επομένως δαπανήστε τον προϋπολογισμό εκεί που μια αποτυχία θα έβλαπτε περισσότερο.
- Προσθέστε αρνητικές και ακραίες περιπτώσεις. Κενές είσοδοι, υπερμεγέθεις τιμές, χρονικά όρια δικτύου και σφάλματα δικαιωμάτων φτάνουν σε κλάδους που οι δοκιμές happy-path δεν αγγίζουν ποτέ.
- Τοποθετήστε σε στρώσεις τα επίπεδα δοκιμής. Συνδυασμός δοκιμή μονάδας, δοκιμή ολοκλήρωσηςκαι ελέγχους από άκρο σε άκρο, επειδή κάθε επίπεδο καλύπτει ό,τι τα άλλα δεν μπορούν δομικά.
- Αυτοματοποιήστε τη σουίτα παλινδρόμησης. Promoσταθερές περιπτώσεις σε δοκιμές αυτοματισμού και να τα εκτελέσετε μέσα στο Σωλήνας CI/CD μετά από κάθε δέσμευση.
- Αποσύρετε τις περιπτώσεις πλεονασμού. Διαγράψτε διπλότυπες δοκιμές που προσθέτουν λεπτά εκτέλεσης χωρίς να προσθέσετε ούτε μία ακάλυπτη γραμμή.
- RevΠαρακολουθήστε την τάση σε κάθε σπριντ. Tracκάλυψη k δίπλα στο πυκνότητα ελαττώματοςΗ αυξανόμενη διαρροή σε περίπτωση επίπεδης κάλυψης αποτελεί έγκαιρη προειδοποίηση για ένα τυφλό σημείο.
⚠️ Προειδοποίηση: Μην αντιμετωπίζετε το 100% ως στόχο. Μια σουίτα στο 85% με ισχυρούς ισχυρισμούς προστατεύει μια έκδοση πολύ καλύτερα από το 95% των επιφανειακών ελέγχων που εκτελούν κώδικα χωρίς να επαληθεύουν κανένα αποτέλεσμα.
Μειονεκτήματα της κάλυψης δοκιμών
Η κάλυψη παραμένει πολύτιμη, ωστόσο έχει όρια που αξίζει να αναφερθούν πριν από την αναφορά οποιουδήποτε ποσοστού.
- Οι περισσότερες εργασίες στην κάλυψη δοκιμής είναι χειροκίνητες καθώς δεν υπάρχουν εργαλεία για αυτοματοποίηση. Ως εκ τούτου, χρειάζεται πολλή προσπάθεια για την ανάλυση των απαιτήσεων και τη δημιουργία δοκιμαστικών περιπτώσεων.
- Η κάλυψη δοκιμής σάς επιτρέπει να μετράτε τα χαρακτηριστικά και στη συνέχεια να μετράτε έναντι πολλών δοκιμών. Ωστόσο, υπάρχει πάντα χώρος για λάθη κρίσης.

