Κέρδη:
- Δυνατότητα ανάγνωσης μετρήσεων όπως η κάλυψη γραμμής, διακλάδωσης και συνθήκης ως χάρτης, όχι ως εμπιστοσύνη, και κατανόηση ότι η υψηλή κάλυψη μπορεί να δώσει ψευδο-εμπιστοσύνη
- Δυνατότητα τοποθέτησης του εύρους απαίτησης δίπλα στο εύρος κώδικα και καθιστώντας τα κενά ιχνηλασιμότητας ορατά με την τεχνητή νοημοσύνη
- Δυνατότητα βαθμολόγησης χαρακτηριστικών με τον τύπο κίνδυνος = πιθανότητα × αντίκτυπος, άμεση περιορισμένη προσπάθεια δοκιμών στον υψηλότερο κίνδυνο και τεκμηρίωση εσκεμμένων εκτός πεδίου εφαρμογής
Δεν μπορείτε να δοκιμάσετε κάθε λογισμικό για πάντα. Ο χρόνος και οι πόροι είναι περιορισμένοι. Το πραγματικό ερώτημα λοιπόν είναι: πού να βάλουμε την περιορισμένη προσπάθεια δοκιμών; Δύο έννοιες απαντούν σε αυτό το ερώτημα. Η κάλυψη δοκιμής - μια μέτρηση που μετρά πόσο από τον κώδικα ή τις απαιτήσεις επηρεάζονται από τις δοκιμές - αντιπροσωπεύει αυτό που δοκιμάζεται. Οι δοκιμές βάσει κινδύνου - η προσέγγιση προσδιορισμού της προτεραιότητας δοκιμής σύμφωνα με την πιθανότητα υποβάθμισης μιας περιοχής και τη ζημιά που θα προκαλέσει όταν επιδεινωθεί - κατευθύνει την προσπάθεια στον μεγαλύτερο κίνδυνο. Η τεχνητή νοημοσύνη (AI) είναι ένας ισχυρός συνεργάτης ανάλυσης και στα δύο: κάνει ορατά τα κενά κάλυψης, προτείνει περιοχές κινδύνου. Ωστόσο, η κεντρική προειδοποίηση παραμένει: ο αριθμός των πεδίων που βλέπει η τεχνητή νοημοσύνη μπορεί να είναι παραπλανητικός. Ακόμη και 100% κάλυψη σειρών μπορεί να επιτευχθεί με δοκιμές που δεν επαληθεύουν τίποτα. Η δουλειά σας είναι να διαβάζετε το πεδίο εφαρμογής ως χάρτη, όχι ως καταπίστευμα.
Διαβάζοντας σωστά τις μετρήσεις κάλυψης
Υπάρχουν διάφοροι τύποι εύρους και δεν είναι όλοι εξίσου σημαντικοί:
- Κάλυψη γραμμής: Πόσες γραμμές κώδικα εκτελέστηκαν τουλάχιστον μία φορά. Το πιο συνηθισμένο αλλά πιο αδύναμο κριτήριο. Ακριβώς επειδή μια γραμμή λειτουργεί δεν είναι απόδειξη ότι συμπεριφέρεται σωστά.
- Κάλυψη κλάδου: Εάν έχει δοκιμαστεί κάθε κλάδος if (τόσο true όσο και false). Πιο νόημα από μια γραμμή.
- Κάλυψη συνθήκης: Δοκιμή κάθε υποσυνθήκης σε σύνθετες συνθήκες ξεχωριστά.
- Κάλυψη διαδρομής: Συνδυασμοί λογικών μονοπατιών εντός του κώδικα. Είναι το πιο ολοκληρωμένο αλλά δύσκολο να επιτευχθεί πλήρως στην πράξη.
Προσοχή: Το ποσοστό κάλυψης δεν είναι «βαθμολογία ποιότητας». Η κάλυψη σειρών 100% σάς λέει ότι οι σειρές λειτουργούν. όχι ότι παράγει το σωστό αποτέλεσμα (το ψευδοπάσο στην ενότητα 1). Χρησιμοποιήστε το πεδίο εφαρμογής ως απάντηση στην ερώτηση "πού δεν έχω κοιτάξει ποτέ", όχι ως διαβεβαίωση ότι "όλα έχουν δοκιμαστεί".
Τυφλά σημεία πεδίου
Οι μετρήσεις κάλυψης μετρούν μόνο πόσο από τον κώδικα έχει εκτελεστεί. δεν μπορεί να δει: (1) μη δοκιμασμένες απαιτήσεις (υπάρχει κώδικας αλλά ο επιχειρηματικός κανόνας είναι λάθος), (2) λείπει κώδικας (δεν υπάρχει πεδίο ελέγχου που δεν γράφτηκε ποτέ), (3) συνδυασμοί δεδομένων/κατάστασης, (4) χρηστικότητα, απόδοση, ασφάλεια. Επομένως, η κάλυψη απαίτησης (κάθε κριτήριο αποδοχής πρέπει να πληρούται από τουλάχιστον μία δοκιμή) πρέπει να τοποθετείται δίπλα στην κάλυψη κωδικού. Η τεχνητή νοημοσύνη είναι πολύ χρήσιμη για την παραγωγή της χαρτογράφησης δοκιμής απαιτήσεων (μήτρας ιχνηλασιμότητας).
Δοκιμές βάσει κινδύνου: πού καταβάλλουμε την προσπάθεια;
Κίνδυνος = πιθανότητα (πιθανότητα θραύσης) × πρόσκρουση (βλάβη σε περίπτωση θραύσης). Με το AI, μπορείτε να σημειώσετε μια λίστα χαρακτηριστικών σε αυτούς τους δύο άξονες και να δημιουργήσετε έναν χάρτη θερμότητας. Υψηλή πιθανότητα × υψηλοί τομείς (πληρωμή, έλεγχος ταυτότητας, ακεραιότητα δεδομένων) αξίζουν την πιο έντονη δοκιμή. Η δοκιμή φωτός χαμηλών × χαμηλών περιοχών (μια οθόνη προτιμήσεων που χρησιμοποιείται σπάνια) είναι επαρκής.
περιοχή
πιθανότητα
Αντίκτυπος
Κίνδυνος
Πυκνότητα δοκιμής
Ροή πληρωμών
μεσαίο
πολύ ψηλά
ψηλά
Βαθύ + αυτοματισμός
έλεγχος ταυτότητας
μεσαίο
πολύ ψηλά
ψηλά
Βαθιά + ασφάλεια
Αναζήτηση προϊόντος
ψηλά
μεσαίο
Μεσαίου-Υψηλού
Αυτοματισμός + ανακάλυψη
Φωτογραφία προφίλ
χαμηλά
χαμηλά
χαμηλά
έλεγχος φωτός
Σελίδα βοήθειας
χαμηλά
πολύ χαμηλά
πολύ χαμηλά
αναθεώρηση
Η παγίδα του κυνηγήματος της εμβέλειας
Το να κάνετε το ποσοστό κάλυψης στόχο (π.χ. ο κανόνας «η ομάδα πρέπει να περάσει κάλυψη 90%») έχει μια επικίνδυνη παρενέργεια: οι προγραμματιστές και οι υπεύθυνοι δοκιμών επικεντρώνονται στην αύξηση του ποσοστού αντί στην αντιμετώπιση του πραγματικού κινδύνου. Το αποτέλεσμα είναι συχνά ένα φουσκωμένο πεδίο χωρίς ισχυρισμούς ή ασήμαντα τεστ — ο αριθμός φαίνεται ωραίος, αλλά δεν υπάρχει προστασία. Αυτό είναι το φαινόμενο να αλλοιώνεται το κριτήριο όταν το ίδιο γίνεται στόχος: «όταν ένα μέτρο γίνεται στόχος, παύει να είναι καλό μέτρο». Χρησιμοποιήστε το εύρος ως διαγνωστικό εργαλείο και όχι ως κάρτα αναφοράς απόδοσης.
Μια πιο υγιεινή προσέγγιση είναι να διαβάσετε το πεδίο με κατεύθυνση: "Γιατί η κάλυψη υποκαταστήματος έχει κολλήσει στο 40% στην κρίσιμη ενότητα πληρωμών;" Το ερώτημα είναι "η συνολική κάλυψη είναι 90%;" Είναι πολύ πιο πολύτιμο από την ερώτηση. Ζητήστε από την τεχνητή νοημοσύνη να αναλύσει την αναφορά πεδίου εφαρμογής ανά ενότητα και επίπεδο κινδύνου. Επισημάνετε περιοχές υψηλού κινδύνου με χαμηλή κάλυψη. Έτσι, το πεδίο εφαρμογής γίνεται μια πυξίδα που κατευθύνει την εργασία και όχι ένα τυφλό ποσοστό.
Προσοχή: Το σύνθημα «κάλυψη 100%» είναι παγίδα. Η δοκιμή ορισμένων κωδικών (απλά αξεσουάρ, εξαρτήματα που δημιουργούνται αυτόματα) είναι χαμηλής αξίας. η προσπάθεια που δαπανάται εκεί είναι κλεμμένη από επιχειρηματικούς κανόνες υψηλού κινδύνου. Ο στόχος είναι να δοκιμάσετε κάθε σημαντική συμπεριφορά και ρίσκο, όχι κάθε γραμμή.
Αδύναμη προτροπή / Ισχυρή προτροπή
Αδύναμο: "Αυξήστε την κάλυψη δοκιμών μου."
Ισχυρό: "Δεδομένης αυτής της λίστας κριτηρίων αποδοχής και αυτών των υφιστάμενων περιπτώσεων δοκιμών. (1) Πίνακας ποια κριτήρια αποδοχής δεν πληρούνται από καμία δοκιμή (κενό κάλυψης απαίτησης). (2) Βαθμολογήστε κάθε χαρακτηριστικό 1-5 στους άξονες πιθανότητας και πρόσκρουσης. Κατάταξη ανά κίνδυνο = πιθανότητα × αντίκτυπο. (3) Για περιορισμένο χρόνο, θα πρέπει να προτείνω ποιος είναι ο υψηλότερος κωδικός 5, καλύπτοντας το πρώτο gaps. το μοναδικό κριτήριο ιεράρχηση του επιχειρηματικού κινδύνου Κριτήρια: [...] Δοκιμές: [...]».
Ισχυρή προτροπή. συνδυάζει το εύρος με τον επιχειρηματικό κίνδυνο και δίνει προτεραιότητα στην περιορισμένη εργασία.
Τέσσερα πρότυπα με δυνατότητα αντιγραφής
1) Κενό πεδίου απαίτησης:
Λαμβάνοντας υπόψη τα ακόλουθα κριτήρια αποδοχής και αυτές τις περιπτώσεις δοκιμής. Δημιουργήστε έναν πίνακα ιχνηλασιμότητας: κάθε κριτήριο -> δοκιμές που το πληρούν. Τα κριτήρια που δεν έχουν κανένα τεστ ονομάζονται "ΚΕΝΑ ΚΑΛΥΨΗΣ" και τα τεστ που δεν συνδέονται με κανένα κριτήριο ονομάζονται "ΑΠΑΡΑΙΤΗΤΑ;" Βαθμός: Κριτήρια: [...] / Δοκιμές: [...]
2) Βαθμολογία κινδύνου:
Βαθμολογήστε αυτή τη λίστα χαρακτηριστικών/ενοτήτων 1-5 στους άξονες πιθανότητας (πιθανότητα θραύσης) και πρόσκρουσης (ζημία εάν σπάσει). Κίνδυνος = πιθανότητα × αντίκτυπος. Ταξινομήστε σε έναν πίνακα και καθορίστε τον προτεινόμενο τύπο δοκιμής (μονάδα/API/UI/αναγνώριση/ασφάλεια) για κάθε περιοχή υψηλού κινδύνου. Λίστα: [...]
3) Ερμηνεία πεδίου εφαρμογής:
Δόθηκε η ακόλουθη αναφορά κάλυψης (γραμμή %, κλάδος %). Πες μου το εξής:- Τι ΔΕΝ αποδεικνύουν αυτοί οι αριθμοί;- Ποιες είναι οι περιοχές που θα μπορούσαν να διατρέχουν κίνδυνο παρά την υψηλή κάλυψη σειρών;- Ποιες πρόσθετες δοκιμές θα προτείνατε για κενά που δεν βλέπει η κάλυψη (απαίτηση, συνδυασμός δεδομένων, ασφάλεια); Αναφορά: [επικόλληση]
4) Πρόγραμμα περιορισμένου χρόνου:
[X ώρες] απομένουν μέχρι τη μετάδοση. Δίνονται τα ακόλουθα κενά κατάταξης κινδύνου και κάλυψης. Κατά τη διάρκεια αυτής της περιόδου, το σχέδιο δοκιμών που θα μειώσει τον μέγιστο κίνδυνο καταρτίζεται με σειρά προτεραιότητας. Δηλώστε ξεκάθαρα τι ΔΕΝ πρέπει να δοκιμάσετε συνειδητά και τον αποδεκτό κίνδυνο να το κάνετε. Δεδομένα: [...]
τρεις μίνι θήκες
Περίπτωση 1 — Κάλυψη 100%, μηδενική εμπιστοσύνη. Μία ομάδα είχε 94% κάλυψη γραμμής. Η ανάλυση "ερμηνείας πεδίου" έδειξε ότι οι περισσότερες δοκιμές ήταν χωρίς επιβεβαίωση, που σημαίνει ότι έτρεξαν γραμμές αλλά δεν επαλήθευσαν τίποτα. Η πραγματική προστατευτική κάλυψη ήταν πολύ χαμηλότερη. Η ομάδα επικεντρώθηκε όχι στους αριθμούς αλλά στη δοκιμή μεταλλάξεων (ενότητα 10). το πραγματικό ποσοστό σύλληψης σφαλμάτων διπλασιάστηκε.
Περίπτωση 2 — Διορθώθηκε η προτεραιότητα του χάρτη κινδύνου. Μια ομάδα ξόδευε το 40% της προσπάθειας δοκιμής της σε μια σπάνια χρησιμοποιούμενη οθόνη αναφορών, παρακάμπτοντας τη ροή πληρωμών επειδή «απλώς λειτουργεί». Η βαθμολόγηση κινδύνου AI έδειξε αυτή την ανισορροπία. Η εργασία ανακατανεμήθηκε. Δύο εβδομάδες αργότερα εντοπίστηκε ένα bug με μεγάλο αντίκτυπο στη ροή πληρωμών και έκλεισε πριν από τη ζωντανή.
Περίπτωση 3 — Συνειδητός εκτός πεδίου εφαρμογής. 4 ώρες μετά την κυκλοφορία, η ομάδα αποφάσισε τι να δοκιμάσει και τι να παραλείψει συνειδητά με το πρότυπο "περιορισμένο πρόγραμμα". Δύο ρεύματα υψηλού κινδύνου δοκιμάστηκαν βαθιά. μια οθόνη προτιμήσεων χαμηλού κινδύνου τεκμηριώθηκε ως "αποδεκτός κίνδυνος" και παραλείφθηκε. Η απόφαση ήταν διαφανής και αιτιολογημένη. Η έκδοση βγήκε με ασφάλεια.
Συνήθη λάθη
- Λάθος ποσοστό κάλυψης για την ποιότητα. Ανάγνωση κάλυψης υψηλής σειράς ως "δοκιμασμένη" διασφάλιση.
- Απλά κοιτάζοντας την κάλυψη κωδικών. Κάλυψη απαιτήσεων παράλειψης (δοκιμή κάθε κριτηρίου αποδοχής).
- Δοκιμές εξίσου χωρίς να λαμβάνεται υπόψη ο κίνδυνος. Κατανομή εργατικού δυναμικού σε περιοχές χαμηλού κινδύνου και παραμέληση κρίσιμων ροών.
- Απόκρυψη εκτός πεδίου εφαρμογής. Μη τεκμηρίωση τι δεν δοκιμάστηκε όταν δεν υπήρχε αρκετός χρόνος. Εκπλήξεις μετά την κυκλοφορία.
- Αποδοχή της βαθμολογίας κινδύνου του AI χωρίς αμφιβολία. Η τεχνητή νοημοσύνη δεν γνωρίζει πλήρως το πλαίσιο του προϊόντος. Προσαρμόστε τις βαθμολογίες με έμπειρο μάτι.
Συνοπτικά
Η κάλυψη δοκιμών και οι δοκιμές βάσει κινδύνου είναι δύο εργαλεία για να κατευθύνετε την περιορισμένη προσπάθεια στο σωστό μέρος. Οι μετρήσεις κάλυψης (γραμμή, κλάδος, συνθήκη, διαδρομή) δείχνουν τι αγγίχθηκε, αλλά δεν αποδεικνύουν ότι συμπεριφέρθηκε σωστά. Το πεδίο εφαρμογής είναι ένας χάρτης, η εμπιστοσύνη όχι. Βάλτε την κάλυψη απαιτήσεων δίπλα στην κάλυψη κωδικού. Βαθμολογήστε τα χαρακτηριστικά με τον τύπο κίνδυνος = πιθανότητα × αντίκτυπος και κατευθύνετε την προσπάθεια στον μεγαλύτερο κίνδυνο. Το AI κάνει ορατά τα κενά, βαθμολογεί τον κίνδυνο, σχεδιάζει περιορισμένο χρόνο. αλλά η τελική προτεραιότητα και η απόφαση «συνειδητής εξαίρεσης» ανήκει στον ειδικό που γνωρίζει το επιχειρηματικό πλαίσιο.
Εργασία εφαρμογής
Επιλέξτε μια ενότητα από το δικό σας έργο. Εκτελέστε το πρότυπο "requirements scope gap" με AI και μάθετε ποια κριτήρια αποδοχής δεν έχουν δοκιμαστεί. Στη συνέχεια, κατατάξτε τα δευτερεύοντα χαρακτηριστικά της μονάδας στους άξονες πιθανότητας × πρόσκρουσης με "βαθμολόγηση κινδύνου". Κατανείμετε τις (υποθετικές) 3 ώρες του χρόνου δοκιμών που έχετε με το "περιορισμένο πρόγραμμα". Γράψτε τι δεν θα δοκιμάσετε συνειδητά και τον αποδεκτό κίνδυνο. Προσθέστε μια συγκεκριμένη δοκιμή που θα κλείσει το κενό κάλυψης υψηλότερου κινδύνου που θα βρείτε.
λίστα ελέγχου
- [ ] Διαβάζω το ποσοστό κάλυψης ως χάρτη, όχι ως ποιότητα.
- [ ] Εκτός από την κάλυψη κωδικού, αφαίρεσα επίσης την κάλυψη απαίτησης.
- [ ] Βαθμολόγησα τα χαρακτηριστικά κατά πιθανότητα × αντίκτυπο και τα κατέταξα με βάση τον κίνδυνο.
- [ ] Ανακατεύθυνσα την προσπάθεια δοκιμής στον υψηλότερο κίνδυνο.
- [ ] Έχω τεκμηριώσει περιοχές που δεν έχουν ελεγχθεί συνειδητά και δεν έχουν αναγνωρίσει τον κίνδυνο.
- [ ] Εξέτασα τις βαθμολογίες κινδύνου του AI με βάση το πλαίσιο του προϊόντος μου.