Το λευκό κουτί είναι μια κατηγορία δοκιμών λογισμικού που αναφέρεται σε μεθόδους δοκιμής του τρόπου λειτουργίας της εσωτερικής δομής και του σχεδιασμού του λογισμικού. Αντιδιαστέλλεται με τη δοκιμή “μαύρου κουτιού”, η οποία είναι δοκιμή που δεν ασχολείται με τις εσωτερικές λειτουργίες του λογισμικού, αλλά ελέγχει μόνο τις εξωτερικές εξόδους του λογισμικού.
Σε αυτό το άρθρο, θα εξερευνήσουμε το θέμα της δοκιμής λευκού κουτιού: τι είναι, πώς λειτουργεί και ποια είδη εργαλείων δοκιμής λογισμικού μπορούν να βοηθήσουν τους ελεγκτές και τους προγραμματιστές να εκτελέσουν δοκιμές λευκού κουτιού στη δοκιμή λογισμικού.
Τι είναι η δοκιμή λευκού κουτιού;
Η δοκιμή λευκού κουτιού είναι μια τεχνική δοκιμής λογισμικού που περιλαμβάνει τη δοκιμή της εσωτερικής δομής και του σχεδιασμού μιας κατασκευής λογισμικού, σε αντίθεση με τις εξωτερικές εξόδους ή την εμπειρία του τελικού χρήστη που δοκιμάζονται στη δοκιμή μαύρου κουτιού.
Η δοκιμή λευκού κουτιού είναι ένας όρος ομπρέλα που περιλαμβάνει πολλούς διαφορετικούς τύπους δοκιμών λογισμικού, συμπεριλαμβανομένων των δοκιμών μονάδας και των δοκιμών ολοκλήρωσης. Επειδή η δοκιμή λευκού κουτιού περιλαμβάνει τη δοκιμή κώδικα και προγραμματισμού, η διενέργεια δοκιμών λευκού κουτιού προϋποθέτει συνήθως κάποια κατανόηση του προγραμματισμού ηλεκτρονικών υπολογιστών.
Η δοκιμή λευκού κουτιού στη μηχανική λογισμικού μπορεί να περιλαμβάνει τη δοκιμή του κώδικα και του εσωτερικού σχεδιασμού του λογισμικού για την επαλήθευση της ροής εισόδου-εξόδου και τον έλεγχο του σχεδιασμού, της χρηστικότητας και της ασφάλειας του λογισμικού.
Η δοκιμή λευκού κουτιού επιτρέπει στους ελεγκτές να επιθεωρούν τις εσωτερικές λειτουργίες του συστήματος, ενώ ταυτόχρονα επαληθεύουν ότι οι εισροές οδηγούν σε συγκεκριμένες, αναμενόμενες εκροές.
Η δοκιμή λευκού κουτιού είναι ένα ουσιαστικό βήμα στη δοκιμή λογισμικού, επειδή είναι ο μόνος τύπος δοκιμής που εξετάζει τον τρόπο λειτουργίας του ίδιου του κώδικα.
1. Πότε και γιατί χρειάζεστε λευκό κουτί
δοκιμές στον τομέα των δοκιμών και της μηχανικής λογισμικού;
Η δοκιμή λευκού κουτιού μπορεί να πραγματοποιηθεί σε διάφορα στάδια του κύκλου δοκιμών για την επαλήθευση της λειτουργίας του εσωτερικού κώδικα και της δομής.
Συνήθως, οι δοκιμές λευκού κουτιού πραγματοποιούνται όταν οι προγραμματιστές και οι ελεγκτές εκτελούν δοκιμές μονάδας και μερικές φορές κατά τη διάρκεια δοκιμών ολοκλήρωσης.
Εξ ορισμού, η δοκιμή μονάδας θεωρείται ένας τύπος δοκιμών λευκού κουτιού, ενώ η δοκιμή ολοκλήρωσης μπορεί να έχει χαρακτηριστικά τόσο των δοκιμών λευκού όσο και των δοκιμών μαύρου κουτιού, αλλά γενικά θεωρείται ότι είναι μια μορφή δοκιμών μαύρου κουτιού.
Διαφορετικά, η δοκιμή λευκού κουτιού μπορεί επίσης να χρησιμοποιηθεί ad hoc για την επαλήθευση των εσωτερικών λειτουργιών μιας κατασκευής λογισμικού. Η δοκιμή λευκού κουτιού είναι ο πιο οικονομικός τρόπος για την αύξηση της κάλυψης δοκιμών, εάν υπάρχει ανάγκη για κάτι τέτοιο, και είναι επίσης ένας εύκολος τρόπος για να επαληθεύσετε πώς λειτουργούν συγκεκριμένα τμήματα κώδικα ή να ελέγξετε περιοχές μιας κατασκευής λογισμικού που οι ελεγκτές υποψιάζονται ότι δεν έχουν ελεγχθεί επαρκώς.
Οι επίσημες ανασκοπήσεις κώδικα, οι οποίες πραγματοποιούνται με δοκιμές λευκού κουτιού, μπορούν επίσης να χρησιμοποιηθούν για τον εντοπισμό κενών ασφαλείας και άλλων ευπαθειών. Ομοίως, αν στοιχεία του κώδικα είναι σπασμένα, η δοκιμή λευκού κουτιού μπορεί να βοηθήσει τους μηχανικούς λογισμικού να προσδιορίσουν πού βρίσκεται το σφάλμα.
2. Όταν δεν χρειάζεται να κάνετε δοκιμές λευκού κουτιού
Στις περισσότερες περιπτώσεις, όταν οι μηχανικοί λογισμικού και οι δοκιμαστές υποβάλλουν μια νέα κατασκευή λογισμικού στον κύκλο δοκιμών, απαιτείται κάποια ποσότητα δοκιμών λευκού κουτιού για την επαλήθευση των εσωτερικών λειτουργιών του κώδικα.
Οι δοκιμές μονάδας είναι ένας τύπος δοκιμών λευκού κουτιού που διεξάγονται από τους προγραμματιστές για να επαληθεύσουν ότι οι επιμέρους μονάδες λειτουργούν όπως αναμένεται. Αυτός ο πρώιμος τύπος δοκιμών επιτρέπει στους προγραμματιστές να εντοπίζουν σφάλματα και ατέλειες πριν από την πραγματοποίηση επίσημων δοκιμών σε περιβάλλον QA.
Μετά τη δοκιμή μονάδας, πραγματοποιούνται οι δοκιμές ολοκλήρωσης, οι δοκιμές συστήματος και οι δοκιμές αποδοχής από τον χρήστη. Αυτές θεωρούνται γενικά μορφές δοκιμών μαύρου κουτιού που συνήθως δεν περιλαμβάνουν πολλές τεχνικές δοκιμών λευκού κουτιού.
Ωστόσο, σε ορισμένες περιπτώσεις, οι ελεγκτές και οι προγραμματιστές μπορούν να χρησιμοποιήσουν δοκιμές λευκού κουτιού κατά τη διάρκεια αυτών των σταδίων για τον εντοπισμό συγκεκριμένων ελαττωμάτων στον κώδικα. Σε αυτό το στάδιο, εάν δεν υπάρχει καμία ένδειξη ότι υπάρχει κάποιο πρόβλημα με τον κώδικα και οι δοκιμές μαύρου κουτιού είναι όλες επιτυχείς, πολλές ομάδες δοκιμών μπορεί να θεωρήσουν ότι δεν υπάρχει ανάγκη να διεξαχθούν περαιτέρω δοκιμές λευκού κουτιού.
3. Ποιος συμμετέχει στις δοκιμές λευκού κουτιού;
Οι δοκιμές λευκού κουτιού πραγματοποιούνται σχεδόν πάντα από προγραμματιστές λογισμικού και μηχανικούς λογισμικού. Αυτό οφείλεται στο γεγονός ότι οι δοκιμές λευκού κουτιού απαιτούν λεπτομερή γνώση του κώδικα υπολογιστή και των τεχνικών κωδικοποίησης και οι περισσότεροι ελεγκτές QA δεν διαθέτουν τις τεχνικές δεξιότητες που απαιτούνται για τη διεξαγωγή δοκιμών λευκού κουτιού.
Οι δοκιμές μονάδας, ο κύριος τύπος δοκιμών λευκού κουτιού, διεξάγονται πάντα στο περιβάλλον ανάπτυξης από τους προγραμματιστές. Οι προγραμματιστές μπορεί επίσης να διεξάγουν δοκιμές λευκού κουτιού όταν χρειάζεται, για να επαληθεύσουν τον τρόπο με τον οποίο λειτουργούν διάφορα στοιχεία του κώδικα ή για να ελέγξουν ότι τα σφάλματα έχουν διορθωθεί σωστά.
Τα πλεονεκτήματα των δοκιμών λευκού κουτιού
Η δοκιμή λευκού κουτιού επιτρέπει στους προγραμματιστές και τους μηχανικούς λογισμικού να δοκιμάζουν περισσότερες πτυχές του κώδικα από ό,τι η δοκιμή μαύρου κουτιού.
Ενώ η δοκιμή μαύρου κουτιού μπορεί να μας πει πώς λειτουργεί μια κατασκευή λογισμικού για τους τελικούς χρήστες, το λευκό κουτί μπορεί να μας πει περισσότερα για το πώς λειτουργεί ο κώδικας λογισμικού. Ο καθαρός, αποδοτικός κώδικας είναι απαραίτητος στην ανάπτυξη λογισμικού, ιδίως αν οι προγραμματιστές θέλουν να επαναχρησιμοποιήσουν τον κώδικα αργότερα ή να προσθέσουν διορθώσεις και αναβαθμίσεις στο μέλλον.
1. Μεγιστοποίηση της κάλυψης δοκιμών
Η δοκιμή λευκού κουτιού μπορεί να βοηθήσει τους ελεγκτές να μεγιστοποιήσουν την κάλυψη των δοκιμών. Η δοκιμή όσο το δυνατόν μεγαλύτερου μέρους του κώδικα λογισμικού συνήθως μεγιστοποιεί την πιθανότητα εντοπισμού τυχόν σφαλμάτων ή λαθών που υπάρχουν στον κώδικα, και ο σκοπός της δοκιμής λευκού κουτιού είναι συνήθως η δοκιμή όσο το δυνατόν μεγαλύτερου μέρους του κώδικα.
Από την άλλη πλευρά, η δοκιμή μαύρου κουτιού αφορά απλώς την εκτέλεση περιπτώσεων δοκιμής που μπορεί να προσφέρουν ή να μην προσφέρουν ευρεία κάλυψη του κώδικα.
2. Εύρεση κρυφών σφαλμάτων και σφαλμάτων
Ένα από τα μεγαλύτερα πλεονεκτήματα των δοκιμών λευκού κουτιού είναι ότι, επειδή οι δοκιμές λευκού κουτιού επαληθεύουν την εσωτερική λειτουργικότητα, διευκολύνουν τους προγραμματιστές να εντοπίσουν σφάλματα και σφάλματα που διαφορετικά θα μπορούσαν να είναι κρυμμένα βαθιά μέσα στον κώδικα.
Εκτός από τον εντοπισμό της παρουσίας σφαλμάτων, είναι συνήθως ευκολότερο να εντοπιστεί ακριβώς πού στη βάση κώδικα βρίσκεται ένα σφάλμα κατά την εκτέλεση δοκιμών λευκού κουτιού, λόγω της πολύ συγκεκριμένης φύσης αυτού του τύπου τεχνικής δοκιμών.
3. Ευκολία αυτοματοποίησης
Είναι πολύ εύκολο να αυτοματοποιήσετε τις δοκιμές λευκού κουτιού, ειδικά όταν πραγματοποιείτε δοκιμές μονάδας. Οι δοκιμές μονάδας συνήθως απαιτούν από τους προγραμματιστές να δοκιμάζουν μικρά κομμάτια κώδικα ξεχωριστά για να δουν αν εκτελούνται όπως αναμένεται. Αυτό είναι πολύ εύκολο να αυτοματοποιηθεί, πράγμα που σημαίνει ότι είναι μια γρήγορη και αποτελεσματική μορφή δοκιμής λογισμικού.
Αυτός είναι ένας από τους λόγους για τους οποίους οι δοκιμές μονάδας πραγματοποιούνται πριν από άλλους, πιο χρονοβόρους τύπους δοκιμών.
4. Χρονικά αποδοτικό
Η δοκιμή λευκού κουτιού είναι αποδοτική ως προς το χρόνο για διάφορους λόγους.
Όπως αναφέρθηκε παραπάνω, είναι σχετικά εύκολο να αυτοματοποιηθούν οι περισσότεροι τύποι δοκιμών λευκού κουτιού, πράγμα που σημαίνει ότι συχνά είναι ταχύτερη η διεξαγωγή δοκιμών λευκού κουτιού από ό,τι δοκιμών μαύρου κουτιού. Επιπλέον, η δοκιμή λευκού κουτιού διευκολύνει τους προγραμματιστές να εντοπίζουν τα σφάλματα και τα σφάλματα που εντοπίζουν στον κώδικα, επειδή τα βρίσκουν κατά τη δοκιμή του ίδιου του κώδικα.
5. Ποιότητα κώδικα
Η δοκιμή λευκού κουτιού επιτρέπει στους προγραμματιστές να ρίξουν μια δεύτερη ματιά στον κώδικα που έχουν γράψει και να αξιολογήσουν την ποιότητα και την καθαρότητά του.
Η εξέταση του κώδικα κομμάτι-κομμάτι δίνει στους προγραμματιστές την ευκαιρία να αφαιρέσουν τα περιττά τμήματα κώδικα και να καθαρίσουν τον κώδικα, γεγονός που διευκολύνει την επαναχρησιμοποίηση και την επεξεργασία τμημάτων κώδικα στο μέλλον.
Μπορεί επίσης να αναγκάσει τους προγραμματιστές να εξετάσουν τον τρόπο με τον οποίο υλοποιείται ο κώδικας και κατά πόσον αυτός θα κλιμακώνεται καλά στο μέλλον.
Οι προκλήσεις των δοκιμών λευκού κουτιού
Η δοκιμή λευκού κουτιού δεν είναι χωρίς προκλήσεις. Υπάρχουν ορισμένοι λόγοι για τους οποίους ορισμένες ομάδες ανάπτυξης μπορεί να θεωρούν τις δοκιμές λευκού κουτιού πιο δύσκολες από τις δοκιμές μαύρου κουτιού, καθώς και άλλοι λόγοι για τους οποίους κάποιοι μπορεί να τις θεωρούν λιγότερο σημαντικές από τις δοκιμές μαύρου κουτιού.
1. Τεχνικά εμπόδια
Η δοκιμή λευκού κουτιού ενέχει τεχνικά εμπόδια που δεν υπάρχουν στη δοκιμή μαύρου κουτιού. Για να εκτελέσουν δοκιμές λευκού κουτιού, οι ελεγκτές χρειάζονται γνώσεις της εσωτερικής λειτουργίας του συστήματος, οι οποίες, στις δοκιμές λογισμικού, συνήθως σημαίνουν γνώσεις προγραμματισμού.
Αυτός είναι ο λόγος για τον οποίο οι δοκιμές λευκού κουτιού διεξάγονται σχεδόν πάντα από μηχανικούς λογισμικού και προγραμματιστές και όχι από ελεγκτές QA, οι οποίοι σπάνια διαθέτουν τις τεχνικές δεξιότητες που απαιτούνται για την εκτέλεση αυτού του είδους δοκιμών.
2. Κόστος
Η διεξαγωγή δοκιμών λευκού κουτιού μπορεί να είναι πιο δαπανηρή σε σύγκριση με τις δοκιμές μαύρου κουτιού, λόγω του πόσο διεξοδικός είναι αυτός ο τύπος δοκιμών.
Οι προγραμματιστές πρέπει να ξοδεύουν πολύ χρόνο γράφοντας εντατικές δοκιμές μονάδας και οι δοκιμές λευκού κουτιού συχνά δεν μπορούν να επαναχρησιμοποιηθούν για άλλες εφαρμογές, πράγμα που σημαίνει ότι οι δοκιμές λευκού κουτιού συνήθως κοστίζουν αρκετά για να εκτελεστούν.
3. Ακρίβεια
Η δοκιμή λευκού κουτιού δεν είναι πάντα η πιο ακριβής μέθοδος δοκιμής λογισμικού και αν οι ομάδες ανάπτυξης βασίζονταν αποκλειστικά στη δοκιμή λευκού κουτιού, αυτό θα είχε ως αποτέλεσμα πολλά σφάλματα και περιπτώσεις που θα είχαν χαθεί.
Η δοκιμή λευκού κουτιού επικυρώνει μόνο τα χαρακτηριστικά που ήδη υπάρχουν, ενώ η δοκιμή μαύρου κουτιού μπορεί να χρησιμοποιηθεί για τη δοκιμή μερικώς υλοποιημένων χαρακτηριστικών ή για τον εντοπισμό χαρακτηριστικών που πραγματικά λείπουν από το λογισμικό και θα πρέπει να συμπεριληφθούν σε μεταγενέστερες επαναλήψεις.
4. Πεδίο εφαρμογής
Οι δοκιμές λευκού κουτιού συνήθως δεν μας λένε πολλά για την εμπειρία του χρήστη ή το τελικό αποτέλεσμα των λειτουργιών που είναι ενσωματωμένες στο λογισμικό.
Ενώ οι προγραμματιστές μπορούν να χρησιμοποιήσουν δοκιμές λευκού κουτιού για να επαληθεύσουν αν ο κώδικας λειτουργεί όπως πρέπει, δεν μπορούν στη συνέχεια να συμπεράνουν ότι ο κώδικας που λειτουργεί παρέχει τις σωστές εξόδους στους τελικούς χρήστες χωρίς να συνδυάσουν τις δοκιμές λευκού κουτιού με τις δοκιμές μαύρου κουτιού.
Αυτό σημαίνει ότι υπάρχουν περιορισμοί στο πεδίο εφαρμογής των δοκιμών λευκού κουτιού και στο πόσα μπορούν να μας πουν για το λογισμικό.
Τα χαρακτηριστικά των δοκιμών white box
Η δοκιμή λευκού κουτιού μπορεί να οριστεί από συγκεκριμένα χαρακτηριστικά που τη διαφοροποιούν από άλλες μορφές δοκιμής, όπως η δοκιμή μαύρου κουτιού και η δοκιμή γκρίζου κουτιού.
Τα περισσότερα από αυτά τα χαρακτηριστικά μπορούν να εξεταστούν από τη σκοπιά του πώς διαφέρουν από τα χαρακτηριστικά των δοκιμών μαύρου κουτιού και πώς αυτό διαφοροποιεί τις δοκιμές λευκού κουτιού από τις δοκιμές μαύρου κουτιού.
1. Συντηρησιμότητα
Οι δοκιμές λευκού κουτιού οδηγούν σε μεγαλύτερο επίπεδο συντηρησιμότητας του κώδικά σας, απλοποιώντας τη δουλειά που πρέπει να κάνει η ομάδα σας στο μέλλον.
Καθώς υπάρχει συνεχής παρακολούθηση του κώδικα και του τι κάνει με τα δεδομένα, η συντήρησή του είναι πολύ απλούστερη, καθώς καταλαβαίνετε πού προκύπτουν προβλήματα και γιατί προκύπτουν. Αυτό διατηρεί επίσης τον κώδικα απλούστερο για μελλοντικές ενημερώσεις, καθώς δεν αναπτύσσετε μεγάλες και πολύπλοκες διορθώσεις για άγνωστα και απλά ζητήματα.
2. Ευελιξία
Οι δοκιμές λευκού κουτιού πραγματοποιούνται σε κώδικα που είναι αρκετά ευέλικτος ώστε να δέχεται αλλαγές σχετικά γρήγορα. Ο άκαμπτος κώδικας, όπως αυτός που αποτελεί μέρος μιας ενότητας ή ολοκλήρωσης τρίτου μέρους, εμποδίζει έναν δοκιμαστή λευκού κουτιού να κάνει γρήγορες αλλαγές.
Η επικέντρωση στην ύπαρξη κώδικα που μπορείτε να αλλάξετε αμέσως μόλις ανακαλύψετε ένα πρόβλημα καθιστά τις δοκιμές λευκού κουτιού εξαιρετικά προσαρμόσιμες και σημαίνει ότι τα προβλήματα ενός προγράμματος επιλύονται πολύ νωρίτερα.
3. Αρθρωτότητα
Η δοκιμή λευκού κουτιού ευδοκιμεί σε κώδικα που έχει κάποιο βαθμό αρθρωτότητας, που σημαίνει ότι τα ξεχωριστά στοιχεία του λογισμικού έχουν σαφή διάκριση το ένα από το άλλο.
Εάν ένα πρόγραμμα έχει ένα θέμα “σπαγγέτι κώδικα” στο οποίο κάθε πτυχή συνδέεται με μια άλλη, η δοκιμή λευκού κουτιού γίνεται απείρως πιο πολύπλοκη, καθώς ο ελεγκτής πρέπει να εξετάσει ολόκληρο το πρόγραμμα και όχι μια συγκεκριμένη μονάδα.
4. Ενσωμάτωση
Η δοκιμή λευκού κουτιού είναι εξαιρετικά χρήσιμη για τη δοκιμή ολοκλήρωσης. Οι δοκιμαστές μπορούν να δουν αν μια λειτουργία λειτουργεί μέχρι το σημείο που εγκαταλείπει το εν λόγω λογισμικό και αν επιστρέφει από το ολοκληρωμένο σύστημα ως λειτουργική όπως αναμενόταν.
Αυτό είναι ιδιαίτερα κατατοπιστικό και επιτρέπει σε έναν οργανισμό να γνωρίζει αν το ζήτημα είναι τοπικό ή μέρος της ολοκληρωμένης πλατφόρμας.
Τι δοκιμάζουμε στις δοκιμές λευκού κουτιού;
Οι δοκιμές “λευκού κουτιού” χρησιμοποιούνται για τον έλεγχο χαρακτηριστικών του κώδικα που δεν μπορούν να επαληθευτούν με μεθόδους δοκιμών “μαύρου κουτιού”. Αυτό μπορεί να σημαίνει δοκιμή του τρόπου λειτουργίας του ίδιου του κώδικα, η οποία επιτρέπει στους προγραμματιστές να κατανοήσουν την αιτία και το αποτέλεσμα των διαφόρων πτυχών του κώδικα.
Οι προγραμματιστές χρησιμοποιούν τη δοκιμή λευκού κουτιού για να ελέγξουν κενά ασφαλείας, δηλώσεις και συναρτήσεις, εξόδους και διαδρομές στον κώδικα.
1. Εσωτερικές τρύπες ασφαλείας
Η δοκιμή λευκού κουτιού μπορεί να χρησιμοποιηθεί για την αναζήτηση κενών ασφαλείας και ευπαθειών στον κώδικα, τα οποία οι χάκερ και οι εγκληματίες του κυβερνοχώρου θα μπορούσαν να εκμεταλλευτούν στο μέλλον.
Η δοκιμή λευκού κουτιού μπορεί να χρησιμοποιηθεί για να ελεγχθεί αν έχουν ακολουθηθεί οι βέλτιστες πρακτικές ασφαλείας κατά το στάδιο της ανάπτυξης και για να αναζητηθούν ευπάθειες ασφαλείας που θα μπορούσαν να επιδιορθωθούν πριν ο κώδικας προχωρήσει σε περαιτέρω δοκιμές.
2. Διαδρομές στις διαδικασίες κωδικοποίησης
Η δοκιμή λευκού κουτιού επιτρέπει στους προγραμματιστές να δοκιμάζουν τα μονοπάτια που συνδέουν διαφορετικά στοιχεία του κώδικα μεταξύ τους. Οι προγραμματιστές δεν ελέγχουν μόνο τη λογική του κώδικα, αλλά μπορούν επίσης να εξετάσουν τη δομή και την υγιεινή του κώδικα.
Ο καλός, καθαρός κώδικας δεν έχει περιττές γραμμές ή σπασμένα στοιχεία που δεν λειτουργούν όπως αναμενόταν, ακόμη και αν τα εξωτερικά αποτελέσματα των δοκιμών μαύρου κουτιού είναι τα αναμενόμενα.
3. Αναμενόμενα αποτελέσματα
Η δοκιμή λευκού κουτιού μπορεί επίσης να ελέγξει τις αναμενόμενες εκροές του κώδικα με τον ίδιο ακριβώς τρόπο που μπορεί να το κάνει η δοκιμή μαύρου κουτιού, αν και οι ελεγκτές το κάνουν εξετάζοντας τον κώδικα και όχι χρησιμοποιώντας την εφαρμογή, όπως οι ελεγκτές μπορεί να κάνουν στη δοκιμή μαύρου κουτιού.
Οι προγραμματιστές δοκιμάζουν τις αναμενόμενες εξόδους επαληθεύοντας μία προς μία τις εισόδους και ελέγχοντας ότι η προκύπτουσα έξοδος ευθυγραμμίζεται με τις προσδοκίες.
4. Δηλώσεις, αντικείμενα και συναρτήσεις
Με τη διεξαγωγή τεχνικών δοκιμών λευκού κουτιού, οι προγραμματιστές λογισμικού μπορούν να διασφαλίσουν ότι οι εντολές, τα αντικείμενα και οι συναρτήσεις στον κώδικα συμπεριφέρονται λογικά και οδηγούν στις αναμενόμενες εξόδους.
5. Λειτουργικότητα των βρόχων υπό όρους
Η δοκιμή λευκού κουτιού μπορεί επίσης να χρησιμοποιηθεί για τον έλεγχο της λειτουργικότητας των βρόχων υπό συνθήκη, συμπεριλαμβανομένων μεμονωμένων, συνδεδεμένων και φωλιασμένων βρόχων. Οι προγραμματιστές θα ελέγχουν αν αυτοί οι βρόχοι είναι αποδοτικοί, αν πληρούν τις απαιτήσεις της λογικής υπό όρους και αν χειρίζονται σωστά τις τοπικές και τις παγκόσμιες μεταβλητές.
Ξεκαθαρίζοντας κάποια σύγχυση:
Δοκιμές White box vs Black box vs Grey box
Η δοκιμή λευκού κουτιού, η δοκιμή μαύρου κουτιού και η δοκιμή γκρίζου κουτιού είναι όροι που χρησιμοποιούν οι ελεγκτές λογισμικού για να αναφερθούν σε διαφορετικές κατηγορίες δοκιμών ή διαφορετικές μεθόδους δοκιμών.
Μια σύγχρονη άποψη για αυτές τις διακρίσεις δοκιμών είναι ότι τα όρια μεταξύ των διαφόρων τύπων δοκιμών box γίνονται όλο και πιο δυσδιάκριτα, καθώς οι διάφοροι τύποι δοκιμών συχνά συνδυάζουν στοιχεία τόσο των δοκιμών white box όσο και των δοκιμών black box και αντλούν δοκιμές από έγγραφα σε διάφορα επίπεδα αφαίρεσης.
Ωστόσο, εξακολουθούν να υπάρχουν σημαντικές διακρίσεις μεταξύ αυτών των μορφών δοκιμών.
1. Τι είναι η δοκιμή μαύρου κουτιού;
Η δοκιμή μαύρου κουτιού είναι μια μορφή δοκιμής λογισμικού κατά την οποία η λειτουργικότητα του λογισμικού ελέγχεται από ελεγκτές που δεν έχουν γνώση της εσωτερικής δομής του κώδικα ή του τρόπου υλοποίησης του κώδικα σε πιο τεχνικό επίπεδο.
Η δοκιμή “μαύρου κουτιού” ελέγχει μόνο τις εξωτερικές εξόδους του λογισμικού, ή με άλλα λόγια, ελέγχει αυτό που θα βιώσει ο τελικός χρήστης κατά τη λειτουργία του λογισμικού.
Η δοκιμή “μαύρου κουτιού” είναι επίσης γνωστή ως δοκιμή συμπεριφοράς, επειδή ελέγχει τον τρόπο με τον οποίο το λογισμικό συμπεριφέρεται υπό ορισμένες συνθήκες.
Οι δοκιμαστές μπορούν να χρησιμοποιήσουν τη δοκιμή “μαύρου κουτιού” για να αξιολογήσουν τον τρόπο με τον οποίο συμπεριφέρονται οι διάφορες λειτουργίες του λογισμικού και να τις ελέγξουν σε σχέση με τις προσδοκίες για να βεβαιωθούν ότι το λογισμικό πληροί τις απαιτήσεις των χρηστών. Η δοκιμή “μαύρου κουτιού” χρησιμοποιείται στη δοκιμή συστήματος και στη δοκιμή αποδοχής για την επαλήθευση διαφόρων λειτουργιών και τον έλεγχο ότι το σύστημα λειτουργεί όπως αναμένεται όταν λειτουργεί ως σύνολο.
Κατά την εκτέλεση δοκιμών “μαύρου κουτιού”, οι χρήστες γράφουν περιπτώσεις δοκιμών για να επαληθεύσουν διαφορετικά στοιχεία ξεχωριστά. Επειδή οι δοκιμές “μαύρου κουτιού” δεν απαιτούν τις ίδιες τεχνικές δεξιότητες με τις δοκιμές “λευκού κουτιού”, οι δοκιμές “μαύρου κουτιού” διεξάγονται συνήθως από ελεγκτές σε περιβάλλον QA και όχι από προγραμματιστές.
Η αυτοματοποίηση των δοκιμών “μαύρου κουτιού” είναι συνήθως ευκολότερη σε σύγκριση με τις δοκιμές “λευκού κουτιού” με τη χρήση εργαλείων αυτοματοποίησης από άκρη σε άκρη, όπως το ZAPTEST.
Ποιες είναι οι διαφορές μεταξύ white box και black box testing;
Η κύρια διαφορά μεταξύ των δοκιμών “μαύρου κουτιού” και “λευκού κουτιού” είναι το τι δοκιμάζεται.
Η δοκιμή μαύρου κουτιού αφορά τη δοκιμή των εξωτερικών αποτελεσμάτων της κατασκευής λογισμικού, ενώ η δοκιμή λευκού κουτιού αφορά τη δοκιμή του τι συμβαίνει κάτω από το καπό.
Μερικές από τις βασικές διαφορές μεταξύ των δοκιμών “μαύρου κουτιού” και “λευκού κουτιού” είναι οι εξής:
Σκοπός
Ο σκοπός των δοκιμών μαύρου κουτιού είναι να επαληθεύσουν ότι το σύστημα λειτουργεί όπως αναμένεται για τον τελικό χρήστη, ενώ ο σκοπός των δοκιμών λευκού κουτιού είναι να ελέγξουν την ποιότητα και την ακεραιότητα του κώδικα του λογισμικού.
Για παράδειγμα, η δοκιμή μαύρου κουτιού για ένα βιντεοπαιχνίδι μπορεί να προβλέπει ότι ένας τελικός χρήστης δοκιμάζει το παιχνίδι και το αξιολογεί για την εμπειρία του, ενώ η δοκιμή λευκού κουτιού στο ίδιο έργο διασφαλίζει ότι η εισαγωγή συγκεκριμένων εισόδων οδηγεί τον χαρακτήρα στην εκτέλεση της σωστής ενέργειας.
Διαδικασία
Οι διαδικασίες που χρησιμοποιούνται στις δοκιμές λευκού και μαύρου κουτιού είναι πολύ διαφορετικές. Οι δοκιμές λευκού κουτιού είναι πολύ πιο εύκολο να αυτοματοποιηθούν από τις δοκιμές μαύρου κουτιού και συνήθως οι δοκιμές μαύρου κουτιού πρέπει να αυτοματοποιηθούν με τη βοήθεια εργαλείων αυτοματοποίησης λογισμικού.
Για παράδειγμα, κατά τη δοκιμή μιας βάσης δεδομένων, η δοκιμή λευκού κουτιού περιλαμβάνει την αυτοματοποίηση της εισαγωγής δεδομένων για να ελεγχθεί ότι όλα τα αποτελέσματα είναι σωστά, ενώ η δοκιμή μαύρου κουτιού περιλαμβάνει την αναπαραγωγή χειροκίνητων διαδικασιών από τους χρήστες και την υποβολή εκθέσεων σχετικά με αυτές χωρίς τη χρήση συστήματος αυτοματισμού.
Δοκιμαστές
Οι δοκιμές “μαύρου κουτιού” διεξάγονται σχεδόν πάντα σε ένα περιβάλλον QA από επαγγελματίες ελεγκτές λογισμικού, ενώ οι δοκιμές “λευκού κουτιού” διεξάγονται από προγραμματιστές λογισμικού και μηχανικούς που έχουν λεπτομερέστερη τεχνική γνώση του πηγαίου κώδικα.
Τεχνικές
Οι δοκιμές μαύρου κουτιού χρησιμοποιούν διάφορες τεχνικές, όπως η κατάτμηση ισοδυναμίας, η ανάλυση οριακών τιμών και οι δοκιμές με πίνακες αποφάσεων. Η δοκιμή λευκού κουτιού χρησιμοποιεί τεχνικές όπως η κάλυψη αποφάσεων, η κάλυψη συνθηκών και η κάλυψη δηλώσεων.
Λειτουργίες
Οι μεθοδολογίες δοκιμών μαύρου κουτιού ταιριάζουν σε υψηλότερα επίπεδα δοκιμών, όπως οι δοκιμές συστήματος και αποδοχής, ενώ οι δοκιμές λευκού κουτιού είναι πιο κατάλληλες για χαμηλότερου επιπέδου δοκιμές, όπως οι δοκιμές μονάδας και οι δοκιμές ολοκλήρωσης.
Για το λόγο αυτό, οι δοκιμές λευκού κουτιού πραγματοποιούνται συνήθως πριν από τις περισσότερες μορφές δοκιμών μαύρου κουτιού.
2. Τι είναι η δοκιμή γκρίζου κουτιού;
Η δοκιμή γκρίζου κουτιού είναι μια τεχνική δοκιμής λογισμικού που χρησιμοποιείται για τη δοκιμή προϊόντων και εφαρμογών λογισμικού από ελεγκτές οι οποίοι μπορεί να έχουν μερική γνώση της εσωτερικής δομής της εφαρμογής αλλά όχι πλήρη γνώση αυτής.
Η δοκιμή γκρίζου κουτιού μπορεί να συνδυάζει στοιχεία τόσο της δοκιμής μαύρου κουτιού όσο και της δοκιμής λευκού κουτιού, ώστε να επιτρέπει στους προγραμματιστές και τους ελεγκτές να εντοπίζουν ελαττώματα στον κώδικα και να εντοπίζουν σφάλματα που σχετίζονται με το συγκεκριμένο πλαίσιο.
Η δοκιμή γκρίζου κουτιού συνδυάζει χαρακτηριστικά τόσο της δοκιμής μαύρου κουτιού όσο και της δοκιμής λευκού κουτιού. Οι ελεγκτές πρέπει να έχουν κάποια γνώση της εσωτερικής λειτουργίας του συστήματος, όπως στις δοκιμές λευκού κουτιού, αλλά χρησιμοποιούν αυτή τη γνώση για να δημιουργήσουν περιπτώσεις δοκιμών και να εκτελέσουν αυτές τις περιπτώσεις δοκιμών σε επίπεδο λειτουργικότητας, όπως συμβαίνει στις δοκιμές μαύρου κουτιού.
Η δοκιμή γκρίζου κουτιού προσφέρει πολλά από τα πλεονεκτήματα της δοκιμής μαύρου κουτιού και της δοκιμής λευκού κουτιού, ενώ παράλληλα είναι σχετικά αποδοτική και ευέλικτη.
Ποιες είναι οι διαφορές μεταξύ white box και grey box testing;
Επειδή η δοκιμή γκρίζου κουτιού προσφέρει ορισμένες από τις ίδιες λειτουργίες με τη δοκιμή μαύρου κουτιού, υπάρχουν ορισμένες μεγάλες διαφορές μεταξύ της δοκιμής γκρίζου κουτιού και της δοκιμής λευκού κουτιού, αν και ίσως όχι τόσες πολλές όσο με τη δοκιμή μαύρου κουτιού.
Μερικές από τις μεγαλύτερες διαφορές μεταξύ των δοκιμών γκρίζου κουτιού και των δοκιμών λευκού κουτιού είναι οι εξής:
Δομικές γνώσεις
Στη δοκιμή λευκού κουτιού, ο εσωτερικός σχεδιασμός και η δομή του κώδικα πρέπει να είναι πλήρως γνωστά στο άτομο που εκτελεί τη δοκιμή. Στις δοκιμές γκρίζου κουτιού, η εσωτερική δομή του κώδικα είναι συνήθως μόνο εν μέρει γνωστή.
Εμπλεκόμενα πρόσωπα
Οι δοκιμές λευκού κουτιού πραγματοποιούνται σχεδόν αποκλειστικά από προγραμματιστές λογισμικού και μηχανικούς λογισμικού, ενώ οι δοκιμές γκρίζου κουτιού μπορούν να πραγματοποιηθούν από τελικούς χρήστες, ελεγκτές και προγραμματιστές.
Αποδοτικότητα
Η δοκιμή λευκού κουτιού θεωρείται ο πιο χρονοβόρος τύπος δοκιμής λογισμικού, ενώ η δοκιμή γκρίζου κουτιού δανείζεται ορισμένες από τις δυνατότητες της δοκιμής μαύρου κουτιού για να μειώσει τον χρόνο που απαιτείται για την εκτέλεση των δοκιμών.
Επιχείρηση
Στις δοκιμές λευκού κουτιού, οι προγραμματιστές απλώς γράφουν κώδικα για την υλοποίηση δοκιμών λευκού κουτιού και εκτελούν αυτόν τον κώδικα. Στις δοκιμές γκρίζου κουτιού, όπως και στις δοκιμές μαύρου κουτιού, οι ελεγκτές εκτελούν λειτουργικές δοκιμές για να αξιολογήσουν πώς λειτουργεί το σύστημα εξωτερικά.
Κάλυψη
Η δοκιμή λευκού κουτιού είναι ο πιο εξαντλητικός τύπος δοκιμής, ενώ η κάλυψη της δοκιμής γκρίζου κουτιού μπορεί να ποικίλλει ανάλογα με το αν ο τύπος των περιπτώσεων δοκιμής που εκτελούνται βασίζεται σε κώδικα ή σε γραφικό περιβάλλον.
Συμπέρασμα:
Λευκό κουτί vs Μαύρο κουτί vs. Grey box testing
Η δοκιμή λευκού κουτιού, η δοκιμή μαύρου κουτιού και η δοκιμή γκρίζου κουτιού είναι όροι που χρησιμοποιούνται για να αναφερθούν σε διαφορετικές τεχνικές δοκιμής λογισμικού. Σε γενικές γραμμές, κάθε τύπος δοκιμής μπορεί να οριστεί με βάση τον βαθμό στον οποίο οι ελεγκτές πρέπει να έχουν γνώσεις σχετικά με τη βάση κώδικα και την υλοποίηση του κώδικα:
1. Δοκιμές μαύρου κουτιού:
Η εσωτερική δομή του κώδικα είναι άγνωστη.
2. Δοκιμές λευκού κουτιού:
Η εσωτερική δομή του κώδικα είναι γνωστή.
3. Δοκιμές γκρίζου κουτιού:
Η εσωτερική δομή του κώδικα είναι εν μέρει γνωστή.
Κατά τη διάρκεια των δοκιμών λογισμικού, και οι τρεις τύποι δοκιμών είναι σημαντικοί για την επαλήθευση της λειτουργίας και της ακεραιότητας του λογισμικού. Ενώ η δοκιμή λευκού κουτιού μας λέει περισσότερα για την υποκείμενη δομή του κώδικα, η δοκιμή γκρίζου κουτιού και η δοκιμή μαύρου κουτιού μπορούν να επαληθεύσουν τον τρόπο λειτουργίας του συστήματος και κατά πόσο αυτό ανταποκρίνεται στις απαιτήσεις του τελικού χρήστη.
Ίσως οι μεγαλύτερες διαφορές μεταξύ αυτών των τριών τύπων δοκιμών σχετίζονται με το ποιος εκτελεί κάθε τύπο δοκιμής, τις απαιτήσεις της ίδιας της δοκιμής και τι περιλαμβάνει η δοκιμή.
Οι δοκιμές λευκού κουτιού έχουν το υψηλότερο εμπόδιο εισόδου, επειδή διεξάγονται από προγραμματιστές με λεπτομερή γνώση της ίδιας της βάσης κώδικα και επειδή είναι ο πιο χρονοβόρος και συχνά δαπανηρός τύπος δοκιμών.
Αντίθετα, ο έλεγχος μαύρου κουτιού είναι ο ευκολότερος στη διεξαγωγή του και μπορεί να εκτελεστεί από ελεγκτές χωρίς γνώση του υποκείμενου κώδικα.
Τύποι δοκιμών λευκού κουτιού
Υπάρχουν πολλοί διαφορετικοί τύποι δοκιμών λευκού κουτιού, καθένας από τους οποίους μπορεί να χρησιμοποιηθεί για τον έλεγχο ελαφρώς διαφορετικών πτυχών της εσωτερικής δομής του κώδικα.
Παρακάτω παρουσιάζονται μερικοί από τους πιο συνηθισμένους τύπους δοκιμών λευκού κουτιού που χρησιμοποιούνται σήμερα.
1. Δοκιμή διαδρομής
Η δοκιμή διαδρομής είναι ένας τύπος δοκιμής λευκού κουτιού που βασίζεται στη δομή ελέγχου ενός προγράμματος. Οι προγραμματιστές χρησιμοποιούν τη δομή ελέγχου για να δημιουργήσουν ένα γράφημα ροής ελέγχου και να δοκιμάσουν διαφορετικές διαδρομές στο γράφημα.
Η δοκιμή διαδρομής είναι ένας τύπος δοκιμής που εξαρτάται από τη δομή ελέγχου του προγράμματος, πράγμα που σημαίνει ότι οι ελεγκτές πρέπει να κατανοούν σε βάθος τη δομή αυτή.
Για παράδειγμα, εάν ένα σύστημα υποτίθεται ότι έρχεται σε επαφή με τους πελάτες με καθορισμένα μηνύματα σε ορισμένα σημεία της χοάνης πωλήσεων, η δοκιμή διαδρομής περιλαμβάνει τη διασφάλιση ότι ακολουθεί τα σωστά βήματα ανάλογα με τις συνθήκες που θέτουν τα δεδομένα.
2. Δοκιμή βρόχου
Η δοκιμή βρόχων είναι ένας από τους σημαντικότερους τύπους δοκιμών λευκού κουτιού που ελέγχει τους βρόχους εντός του κώδικα του προγράμματος. Οι βρόχοι υλοποιούνται σε αλγορίθμους εντός του κώδικα και ο έλεγχος βρόχων επαληθεύει εάν αυτοί οι βρόχοι είναι έγκυροι.
Η δοκιμή βρόχων μπορεί να αξιολογήσει αν υπάρχουν ευπάθειες σε συγκεκριμένους βρόχους και να επισημάνει περιοχές όπου οι προγραμματιστές μπορεί να χρειαστεί να διορθώσουν τον κώδικα για να διασφαλίσουν ότι ο βρόχος λειτουργεί όπως πρέπει.
Ένα παράδειγμα δοκιμής βρόχου είναι η παρακολούθηση του βρόχου με ένα συγκεκριμένο σύνολο σημείων δεδομένων που προτρέπουν τον βρόχο να συνεχίσει, όπως η άρνηση αποδοχής κάποιων όρων και προϋποθέσεων, πριν από την εισαγωγή ενός αριθμού που διακόπτει συγκεκριμένα τον βρόχο. Εάν ο βρόχος συμπεριφέρεται όπως αναμένεται, η δοκιμή είναι επιτυχής.
3. Δοκιμές υπό όρους
Η δοκιμή υπό όρους είναι ένας τύπος δοκιμής λευκού κουτιού που ελέγχει αν οι λογικές συνθήκες για τις τιμές εντός του κώδικα είναι αληθείς ή ψευδείς.
Ο έλεγχος υπό όρους είναι μια σημαντική μορφή ελέγχου λευκού κουτιού που λέει στους προγραμματιστές αν ο κώδικας είναι λογικός και αν πληροί τις απαιτήσεις της λογικής του προγραμματισμού.
Ένα παράδειγμα δοκιμών υπό όρους είναι σε μια λογιστική πλατφόρμα. Η εισαγωγή μιας σειράς εξόδων και εσόδων θα πρέπει να οδηγεί στα σωστά σύνολα, με το λογισμικό να παρέχει ακριβή αποτελέσματα σε όλη τη διάρκεια μιας επιτυχημένης δοκιμής.
4. Δοκιμές μονάδας
Η δοκιμή μονάδας είναι ένα σημαντικό στάδιο στη δοκιμή λογισμικού, όπου οι προγραμματιστές δοκιμάζουν μεμονωμένα στοιχεία και ενότητες και επαληθεύουν ότι λειτουργούν όπως αναμένεται πριν ενσωματώσουν διαφορετικές μονάδες μεταξύ τους.
Οι μηχανικοί λογισμικού χρησιμοποιούν μεθόδους δοκιμών λευκού κουτιού στον έλεγχο μονάδας για να δοκιμάζουν μικρά κομμάτια κώδικα κάθε φορά. Αυτό καθιστά εύκολο τον εντοπισμό σφαλμάτων και λαθών όταν αυτά εμφανίζονται κατά τη διάρκεια των δοκιμών.
Ένα παράδειγμα δοκιμών μονάδας βρίσκεται στην αρχή της ανάπτυξης, καθώς μια εταιρεία δημιουργεί ένα απλό κουμπί σε έναν ιστότοπο που μεταφέρει τον χρήστη σε μια άλλη σελίδα. Αν η μονάδα λειτουργεί όπως αναμένεται, τότε επιτυγχάνει, ενώ οι προγραμματιστές κάνουν αλλαγές μέχρι να το πετύχει.
5. Δοκιμή μετάλλαξης
Η εξέταση μεταλλάξεων είναι ένας τύπος εξέτασης που ελέγχει αλλοιώσεις και μεταλλάξεις. Στη δοκιμή μετάλλαξης, οι προγραμματιστές κάνουν μικρές τροποποιήσεις στον πηγαίο κώδικα για να δουν αν αυτό μπορεί να αποκαλύψει σφάλματα στον κώδικα.
Εάν η περίπτωση δοκιμής περάσει, αυτό υποδηλώνει ότι υπάρχει κάποιο πρόβλημα με τον κώδικα, διότι δεν θα έπρεπε να περάσει μετά τις αλλαγές που έχουν γίνει. Ιδανικά, στη δοκιμή μετάλλαξης, όλες οι περιπτώσεις δοκιμής θα αποτύχουν.
Ένα παράδειγμα δοκιμής μετάλλαξης είναι η μηχανική μάθηση. Τα προγράμματα μηχανικής μάθησης “μεταλλάσσονται” αυτόματα ανάλογα με τις νέες πληροφορίες, οπότε ο συνεχής έλεγχος αυτών των προγραμμάτων για το πρότυπο της “μετάλλαξης” ενημερώνει τους προγραμματιστές για το αν το λογισμικό λειτουργεί όπως αναμένεται.
6. Δοκιμές ενσωμάτωσης
Η δοκιμή ολοκλήρωσης είναι μια σημαντική φάση της δοκιμής λογισμικού κατά την οποία οι ελεγκτές διαπιστώνουν αν οι διάφορες ενότητες λειτουργούν σωστά όταν ενσωματώνονται με άλλες ενότητες.
Οι τεχνικές δοκιμών λευκού κουτιού χρησιμοποιούνται κατά τη διάρκεια των δοκιμών ολοκλήρωσης για να ελεγχθεί ότι ο κώδικας λειτουργεί ακόμη και όταν πολλές ενότητες – οι οποίες συχνά έχουν κωδικοποιηθεί από διαφορετικούς προγραμματιστές – συνεργάζονται.
Όταν μια βάση δεδομένων αντλεί πληροφορίες από μια διαδικτυακή πηγή, για παράδειγμα, η δοκιμή ολοκλήρωσης διασφαλίζει ότι τα δεδομένα που αντλεί είναι ακριβή και ενημερώνονται με λογικά σταθερό ρυθμό.
7. Δοκιμή διείσδυσης
Οι δοκιμές διείσδυσης είναι ένας τύπος δοκιμών λευκού κουτιού που μπορεί να χρησιμοποιηθεί για την προσομοίωση συγκεκριμένων κυβερνοεπιθέσεων στο σύστημα.
Στις δοκιμές διείσδυσης, οι ελεγκτές έχουν πρόσβαση σε πλήρη δεδομένα δικτύου και συστήματος, όπως κωδικούς πρόσβασης και χάρτες δικτύου. Στη συνέχεια προσπαθούν να αποκτήσουν πρόσβαση ή να καταστρέψουν δεδομένα στο σύστημα επιχειρώντας όσο το δυνατόν περισσότερες διαφορετικές οδούς επίθεσης.
Ο έλεγχος διείσδυσης είναι μια σημαντική πτυχή του ελέγχου ασφάλειας που πρέπει να διεξάγεται σε όλες τις κατασκευές λογισμικού.
Μια πλατφόρμα HR, για παράδειγμα, θα ολοκληρώσει δοκιμές διείσδυσης και θα αναζητήσει τρωτά σημεία στον κώδικα για να βεβαιωθεί ότι η πλατφόρμα είναι αρκετά ασφαλής για την αποθήκευση των δεδομένων των εργαζομένων.
Τεχνικές δοκιμών λευκού κουτιού
Υπάρχουν πολλές διαφορετικές τεχνικές δοκιμών λευκού κουτιού που μπορούν να χρησιμοποιηθούν για τη διεξαγωγή των δοκιμών λευκού κουτιού που αναφέρονται παραπάνω. Όπως συμβαίνει πάντα, διαφορετικές τεχνικές είναι οι καταλληλότερες για τη δοκιμή διαφορετικών πτυχών του κώδικα, αλλά όλες οι τεχνικές λευκού κουτιού που αναφέρονται παρακάτω είναι σημαντικές.
1. Κάλυψη δήλωσης
Ένα από τα καθοριστικά χαρακτηριστικά των δοκιμών λευκού κουτιού είναι ότι οι δοκιμαστές πρέπει να προσπαθούν να καλύπτουν όσο το δυνατόν μεγαλύτερο μέρος του πηγαίου κώδικα κατά την εκτέλεση δοκιμών λευκού κουτιού.
Η κάλυψη του κώδικα είναι ένα ισχυρό μέτρο για αυτό, και η κάλυψη των δηλώσεων είναι μια τέτοια τεχνική που μπορούν να χρησιμοποιήσουν οι δοκιμαστές λευκού κουτιού για να αυξήσουν την κάλυψη των δηλώσεων μέσα στον κώδικα.
Η κάλυψη δηλώσεων είναι μια μετρική που μετρά τον αριθμό των εκτελεσμένων δηλώσεων διαιρούμενο με τον συνολικό αριθμό των δηλώσεων και πολλαπλασιαζόμενο με το 100. Οι δοκιμαστές λευκού κουτιού πρέπει να στοχεύουν σε υψηλή κάλυψη δήλωσης.
2. Κάλυψη κλάδων
Η κάλυψη διακλαδώσεων, όπως και η κάλυψη εντολών, αντικατοπτρίζει πόσο ευρεία είναι η κάλυψη συγκεκριμένων στοιχείων του κώδικα σε δοκιμές λευκού κουτιού. Οι διακλαδώσεις είναι ισοδύναμες με τις εντολές ‘IF’ στη λογική, όπου ο κώδικας διακλαδίζεται σε αληθείς και ψευδείς επιλογές που επηρεάζουν το αποτέλεσμα της λειτουργίας.
Όταν χρησιμοποιούν τεχνικές κάλυψης κλάδων, οι δοκιμαστές λευκού κουτιού ελέγχουν αν κάθε κλάδος έχει υποβληθεί σε επεξεργασία τουλάχιστον μία φορά και επικυρώνουν ότι και οι δύο κλάδοι λειτουργούν σωστά.
3. Κάλυψη διαδρομής
Οι τεχνικές κάλυψης διαδρομών αξιολογούν τις διαδρομές μέσα σε μια εφαρμογή λογισμικού. Η μεγιστοποίηση της κάλυψης των διαδρομών δοκιμής σημαίνει ότι διασφαλίζεται ότι όλες οι διαδρομές εντός του προγράμματος διερευνώνται τουλάχιστον μία φορά. Είναι ένας παρόμοιος τύπος τεχνικής ελέγχου με την κάλυψη διακλαδώσεων, αλλά θεωρείται πιο ενδελεχής και αποτελεσματικός.
Η δοκιμή κάλυψης διαδρομής θεωρείται συνήθως καταλληλότερη για τη δοκιμή πλήρων εφαρμογών και όχι μερικών κατασκευών.
4. Κάλυψη απόφασης
Η κάλυψη αποφάσεων είναι μία από τις πιο σημαντικές τεχνικές λευκού κουτιού, επειδή παρέχει δεδομένα σχετικά με τα αληθή και ψευδή αποτελέσματα των εκφράσεων boolean στον πηγαίο κώδικα.
Η δοκιμή κάλυψης αποφάσεων επικυρώνει τον πηγαίο κώδικα διασφαλίζοντας ότι κάθε μάρκα κάθε πιθανής απόφασης ταξιδεύει τουλάχιστον μία φορά κατά τη διάρκεια της δοκιμής.
Τα σημεία απόφασης περιλαμβάνουν κάθε περίπτωση όπου υπάρχει η δυνατότητα δύο ή περισσότερων διαφορετικών αποτελεσμάτων.
5. Κάλυψη κατάστασης
Η κάλυψη υπό όρους είναι επίσης γνωστή ως κάλυψη έκφρασης. Αυτή η τεχνική λευκού κουτιού αξιολογεί τις υπομεταβλητές στις υπό συνθήκη δηλώσεις εντός του κώδικα για να επαληθεύσει το αποτέλεσμα κάθε λογικής συνθήκης.
Αυτός ο τύπος ελέγχου εξετάζει μόνο τις εκφράσεις με λογικούς τελεστές, ενώ ο έλεγχος κάλυψης απόφασης και ο έλεγχος κάλυψης διακλάδωσης χρησιμοποιούνται για την εξασφάλιση άλλων λογικών πράξεων.
6. Κάλυψη πολλαπλών καταστάσεων
Στις δοκιμές κάλυψης πολλαπλών συνθηκών, οι ελεγκτές επαληθεύουν διαφορετικούς συνδυασμούς συνθηκών και αξιολογούν την απόφαση που λαμβάνει ο κώδικας για κάθε συνδυασμό.
Μπορεί να υπάρχουν πολλές διαφορετικές περιπτώσεις δοκιμών για δοκιμές κάλυψης πολλαπλών συνθηκών λόγω του τεράστιου αριθμού συνδυασμών συνθηκών που υπάρχουν, οπότε αυτός ο τύπος δοκιμών είναι συχνά πολύ χρονοβόρος.
7. Κάλυψη μηχανής πεπερασμένων καταστάσεων
Η κάλυψη μηχανών πεπερασμένων καταστάσεων είναι ένας σημαντικός τύπος δοκιμών αλλά και ένας από τους πιο δύσκολους τρόπους για την επίτευξη υψηλής κάλυψης κώδικα σε δοκιμές λευκού κουτιού. Λειτουργεί με βάση τη λειτουργικότητα του σχεδιασμού και απαιτεί από τους προγραμματιστές να μετρήσουν τον αριθμό των φορών που επισκέπτεται ή μεταβαίνει μια κατάσταση κατά τη διάρκεια της διαδικασίας δοκιμής, καθώς και πόσες ακολουθίες περιέχει κάθε σύστημα πεπερασμένων καταστάσεων.
8. Δοκιμή ροής ελέγχου
Η δοκιμή ροής ελέγχου είναι μια τεχνική δοκιμών λευκού κουτιού που επιδιώκει να καθορίσει τη σειρά εκτέλεσης του προγράμματος με τη χρήση μιας απλής δομής ελέγχου.
Οι προγραμματιστές κατασκευάζουν περιπτώσεις δοκιμών ελέγχου ροής ελέγχου επιλέγοντας ένα συγκεκριμένο τμήμα του προγράμματος και δημιουργώντας μια διαδρομή δοκιμής. Η δοκιμή ροής ελέγχου χρησιμοποιείται συνήθως στη δοκιμή μονάδας.
Ο κύκλος ζωής των δοκιμών λευκού κουτιού
στην ανάπτυξη λογισμικού
Η δοκιμή λευκού κουτιού είναι ένα σημαντικό βήμα στον κύκλο ζωής της ανάπτυξης λογισμικού, αν και δεν έχει μια αυστηρή “θέση” στον κύκλο.
Οι προγραμματιστές μπορούν να διεξάγουν δοκιμές λευκού κουτιού όταν χρειάζεται να ελέγξουν τη λειτουργία του κώδικα, και ορισμένοι προγραμματιστές μπορεί να είναι πιο σχολαστικοί από άλλους όσον αφορά τον έλεγχο του πρόσφατα γραμμένου κώδικα για να βεβαιωθούν ότι είναι καθαρός και χωρίς περιττές γραμμές.
Ωστόσο, οι δοκιμές λευκού κουτιού πραγματοποιούνται συνήθως κατά τη διάρκεια των δοκιμών μονάδας και των δοκιμών ολοκλήρωσης. Τόσο οι δοκιμές μονάδας όσο και οι δοκιμές ολοκλήρωσης πραγματοποιούνται κατά τη φάση ανάπτυξης από τους προγραμματιστές.
Πραγματοποιούνται πριν από τις λειτουργικές δοκιμές, όπως οι δοκιμές συστήματος και οι δοκιμές αποδοχής, και δίνουν στους προγραμματιστές την ευκαιρία να εντοπίσουν, να εντοπίσουν και να διορθώσουν σημαντικά σφάλματα νωρίς στη φάση των δοκιμών πριν παραδώσουν το προϊόν στην ομάδα QA.
Χειροκίνητες ή αυτοματοποιημένες δοκιμές λευκού κουτιού;
Όπως και άλλοι τύποι δοκιμών λογισμικού, είναι δυνατή η αυτοματοποίηση των δοκιμών λευκού κουτιού. Μπορεί να είναι είτε χειροκίνητη είτε αυτοματοποιημένη, αν και στις περισσότερες περιπτώσεις είναι ευκολότερο να αυτοματοποιηθεί η δοκιμή λευκού κουτιού από ό,τι η δοκιμή μαύρου κουτιού.
Επειδή οι δοκιμές λευκού κουτιού είναι ένας πολύ χρονοβόρος τύπος δοκιμών, η αυτοματοποίηση γίνεται όλο και πιο δημοφιλής μεταξύ των ομάδων λογισμικού.
Χειροκίνητες δοκιμές λευκού κουτιού: οφέλη, προκλήσεις και διαδικασίες
Χειροκίνητη δοκιμή λευκού κουτιού σημαίνει εκτέλεση δοκιμών λευκού κουτιού με το χέρι και απαιτεί από τους προγραμματιστές να έχουν τις δεξιότητες και το χρόνο να γράφουν μεμονωμένες περιπτώσεις δοκιμών για να δοκιμάσουν κάθε γραμμή κώδικα σε μια δυνατή κατασκευή λογισμικού. Αυτό μπορεί να πάρει πολύ χρόνο, αλλά έχει επίσης ως αποτέλεσμα τα πιο λεπτομερή αποτελέσματα δοκιμών και αποτελέσματα.
Μερικά από τα πλεονεκτήματα της χειροκίνητης εκτέλεσης δοκιμών λευκού κουτιού περιλαμβάνουν:
1. Βάθος
Οι χειροκίνητες δοκιμές επιτρέπουν στους ελεγκτές να εξερευνήσουν τον κώδικα του λογισμικού σε μεγαλύτερο βάθος από ό,τι οι αυτοματοποιημένες δοκιμές, αν το επιλέξουν, για παράδειγμα διαβάζοντας όλο τον πηγαίο κώδικα μιας εφαρμογής αντί να αυτοματοποιούν απλώς εργασίες που αγγίζουν την επιφανειακή λειτουργικότητα.
2. Θέση σφάλματος
Ο χειροκίνητος έλεγχος διευκολύνει τον εντοπισμό σφαλμάτων και ατελειών, επειδή οι προγραμματιστές θα πρέπει να είναι σε θέση να εντοπίσουν επακριβώς σε ποια γραμμή κώδικα υπάρχει το σφάλμα.
Για παράδειγμα, βλέποντας ότι μια εικόνα δεν φορτώνεται και στη συνέχεια εξετάζοντας τον κώδικα για γραμμές που αφορούν τη φόρτωση εικόνων, περιορίζετε σημαντικά την αιτία.
3. Ταχύτητα
Οι χειροκίνητες δοκιμές διαρκούν συνήθως περισσότερο από τις αυτοματοποιημένες δοκιμές, αλλά αν οι προγραμματιστές θέλουν να εκτελέσουν μόνο μία ή δύο γρήγορες δοκιμές, είναι πιθανώς πιο γρήγορο να τις εκτελέσουν χειροκίνητα παρά να ρυθμίσουν την αυτοματοποίηση.
Για παράδειγμα, η δοκιμή μονάδας περιλαμβάνει την εξέταση ενός χαρακτηριστικού και τη διαπίστωση της λειτουργίας του, αντί της συλλογής τεράστιου όγκου δεδομένων με την αυτοματοποίηση της διαδικασίας. Ωστόσο, υπάρχουν και μειονεκτήματα στη χειροκίνητη δοκιμή λευκού κουτιού.
Ορισμένες από τις προκλήσεις της χειροκίνητης δοκιμής λευκού κουτιού περιλαμβάνουν:
1. Ακρίβεια
Η χειροκίνητη δοκιμή μπορεί να επιτρέπει στους προγραμματιστές να καλύπτουν ένα ευρύ φάσμα κώδικα, αλλά οι ανθρώπινοι ελεγκτές είναι πάντα πιο επιρρεπείς σε λάθη και σφάλματα από ό,τι τα προγράμματα υπολογιστών, πράγμα που σημαίνει ότι η χειροκίνητη δοκιμή θεωρείται συχνά λιγότερο ακριβής από την αυτοματοποιημένη δοκιμή.
2. Χρόνος
Οι χειροκίνητες δοκιμές διαρκούν περισσότερο από τις αυτοματοποιημένες δοκιμές και οι χειροκίνητες δοκιμές λευκού κουτιού είναι από τις πιο χρονοβόρες δοκιμές. Αυτό αυξάνει το χρόνο ανακύκλωσης και μπορεί να δυσχεράνει την τήρηση των αυστηρών προθεσμιών ανάπτυξης.
3. Κόστος
Λόγω του ανθρώπινου δυναμικού και των πόρων που απαιτούνται για τη χειροκίνητη δοκιμή λευκού κουτιού, αυτή είναι συχνά πιο δαπανηρή για τις ομάδες ανάπτυξης από την αυτοματοποιημένη δοκιμή, η οποία συνήθως απαιτεί λιγότερους προγραμματιστές και λιγότερο χρόνο.
4. Επεκτασιμότητα
Οι χειροκίνητες δοκιμές είναι πραγματικά κατάλληλες μόνο για τη δοκιμή μικρών εφαρμογών ή μεμονωμένων στοιχείων μεγαλύτερων εφαρμογών. Για μεγαλύτερες εφαρμογές, όπως μια βάση δεδομένων που φιλοξενείται στο cloud με χιλιάδες εισόδους ανά λεπτό, προτιμάται η αυτοματοποιημένη δοκιμή ως μέθοδος προσομοίωσης τυπικών φορτίων.
Αυτοματοποιημένη δοκιμή λευκού κουτιού: οφέλη,
προκλήσεις και διαδικασίες
Η τεχνολογία αυτοματοποίησης διευκολύνει καθημερινά την αυτοματοποίηση πτυχών της δοκιμής λογισμικού. Η μετακίνηση του κλάδου προς την υπεραυτοματοποίηση οφείλεται εν μέρει στην αποτελεσματικότητα και την εξοικονόμηση κόστους που προσφέρει η αυτοματοποίηση στις ομάδες ανάπτυξης, οι οποίες αισθάνονται πάντα πιεσμένες.
Το λευκό κουτί είναι ένας από τους πιο κατάλληλους και κατάλληλους τύπους δοκιμών για αυτοματοποίηση, επειδή είναι σχετικά εύκολο να αυτοματοποιηθεί και η εξοικονόμηση χρόνου και κόστους από την αυτοματοποίηση δοκιμών λευκού κουτιού μπορεί να είναι σημαντική.
Η αυτοματοποιημένη δοκιμή λευκού κουτιού μπορεί να περιλαμβάνει τη συγγραφή σεναρίων δοκιμών από τους ίδιους τους προγραμματιστές ή η διαδικασία μπορεί να επιταχυνθεί με τη χρήση εργαλείων πλήρους φάσματος, όπως το ZAPTEST, τα οποία παρέχουν την τελευταία λέξη της τεχνολογίας δοκιμών λογισμικού από άκρη σε άκρη.
Μερικά από τα πλεονεκτήματα της αυτοματοποίησης των δοκιμών λευκού κουτιού περιλαμβάνουν:
1. Ακρίβεια
Οι εξετάσεις που βασίζονται σε υπολογιστή εξαλείφουν τον κίνδυνο σφαλμάτων, επειδή οι υπολογιστές δεν κουράζονται και δεν κάνουν λάθη.
2. Χρόνος
Οι αυτοματοποιημένες δοκιμές λευκού κουτιού είναι σημαντικά ταχύτερες από τις χειροκίνητες δοκιμές λευκού κουτιού και απελευθερώνουν χρόνο που οι προγραμματιστές μπορούν να αφιερώσουν σε άλλες εργασίες, όπως η διόρθωση σφαλμάτων ή η συγγραφή διορθώσεων αναβάθμισης.
3. Κλίμακα
Οι αυτοματοποιημένες δοκιμές κλιμακώνονται πολύ καλύτερα από τις χειροκίνητες δοκιμές, οπότε αν η εφαρμογή λογισμικού σας μεγαλώνει ή αν θέλετε να πραγματοποιήσετε δοκιμές μεγάλης κλίμακας ταυτόχρονα, η αυτοματοποίηση είναι η καλύτερη επιλογή.
Για παράδειγμα, η κλιμάκωση της καταχώρησης δεδομένων περιλαμβάνει την αίτηση περισσότερων εισροών στην αυτοματοποίηση, σε σύγκριση με την πρόσληψη περισσότερων μελών του προσωπικού στις χειροκίνητες δοκιμές.
4. Κόστος
Το κόστος των αυτοματοποιημένων δοκιμών είναι συνήθως, συνολικά, χαμηλότερο από το κόστος των χειροκίνητων δοκιμών, λόγω του αριθμού των ωρών εργασίας που εξοικονομούνται από την αυτοματοποίηση. Η 10πλάσια απόδοση επένδυσης του ZAPTEST αποδεικνύει πώς η αυτοματοποίηση μπορεί να εξοικονομήσει χρήματα στους προγραμματιστές και να οδηγήσει σε υψηλότερες αποδόσεις. Ωστόσο, η αυτοματοποίηση δεν είναι χωρίς τα μειονεκτήματά της.
Ορισμένες από τις προκλήσεις της αυτοματοποίησης των δοκιμών λευκού κουτιού περιλαμβάνουν:
1. Παρακολούθηση σφαλμάτων
Η αυτοματοποίηση δεν διευκολύνει πάντα τον εντοπισμό σφαλμάτων στον κώδικα, ανάλογα με τον τρόπο με τον οποίο οι προγραμματιστές αυτοματοποιούν τις δοκιμές ή τα εργαλεία δοκιμών που χρησιμοποιούνται, ειδικά σε σύγκριση με τις χειροκίνητες δοκιμές λευκού κουτιού, όπου οι ελεγκτές μπορούν να δουν τον κώδικα που εκτελείται κάθε φορά που αναδύεται ένα σφάλμα.
2. Δεξιότητες
Δεν γνωρίζουν όλοι οι προγραμματιστές πώς να αυτοματοποιούν δοκιμές ή πώς να χρησιμοποιούν εργαλεία αυτοματοποιημένων δοκιμών, οπότε η μετάβαση στην αυτοματοποίηση μπορεί να απαιτεί κάποια επένδυση στην εκπαίδευση σημαντικών δεξιοτήτων, όπως η κωδικοποίηση στη γλώσσα της συγκεκριμένης πλατφόρμας δοκιμών και η χρήση δεξιοτήτων ανάλυσης δεδομένων για την κατανόηση της αιτίας των προβλημάτων σε μια δοκιμή λευκού κουτιού.
Συμπέρασμα: Χειροκίνητες δοκιμές λευκού κουτιού
ή αυτοματοποίηση δοκιμών λευκού κουτιού;
Συνολικά, η δοκιμή λευκού κουτιού στη μηχανική λογισμικού είναι ένας από τους πιο κατάλληλους τύπους δοκιμών για να προσαρμοστούν σε αυτοματοποιημένη δοκιμή, κυρίως λόγω της χρονοβόρας και πολύπλοκης φύσης της χειροκίνητης δοκιμής λευκού κουτιού.
Οι αυτοματοποιημένες δοκιμές λευκού κουτιού είναι ταχύτερες, φθηνότερες, αποτελεσματικότερες και ακριβέστερες από τις χειροκίνητες δοκιμές, ειδικά όταν πρόκειται για μεγαλύτερες εφαρμογές.
Όπου είναι δυνατόν, οι προγραμματιστές λογισμικού θα πρέπει να αυτοματοποιούν τις δοκιμές λευκού κουτιού στις δοκιμές λογισμικού για να αυξήσουν την αξιοπιστία των δοκιμών και να καλύψουν μεγαλύτερη περιοχή μεγαλύτερων εφαρμογών μέσω των δοκιμών από ό,τι είναι πρακτικά δυνατό κατά την εκτέλεση των δοκιμών με το χέρι. Αυτό οφείλεται στο σημαντικό κόστος και την τεχνογνωσία που απαιτούνται όταν ολοκληρώνετε δοκιμές λευκού κουτιού με αποκλειστικά χειροκίνητες μεθόδους.
Τι χρειάζεστε για να ξεκινήσετε
δοκιμή λευκού κουτιού;
Πριν ξεκινήσετε τις δοκιμές λευκού κουτιού, βεβαιωθείτε ότι έχετε όλα όσα χρειάζεστε για να ξεκινήσετε. Ανάλογα με το αν εκτελείτε χειροκίνητες ή αυτοματοποιημένες δοκιμές λευκού κουτιού, δεν χρειάζεστε πολλούς πόρους εκτός από χρόνο και χρήμα.
Ωστόσο, θα πρέπει να διασφαλίσετε ότι η ομάδα σας διαθέτει τις κατάλληλες γνώσεις και τα κατάλληλα εργαλεία για τη σωστή διεξαγωγή δοκιμών λευκού κουτιού.
1. Κατανόηση του πηγαίου κώδικα
Οι δοκιμές λευκού κουτιού είναι δοκιμές που εκτελούν προγραμματιστές λογισμικού και μηχανικοί με πλήρη γνώση του πηγαίου κώδικα και της εσωτερικής δομής του λογισμικού.
Αν είστε ελεγκτής QA χωρίς αυτές τις γνώσεις, θα πρέπει να δώσετε το λογισμικό σε κάποιον άλλο πριν ξεκινήσει η δοκιμή λευκού κουτιού.
2. Περιπτώσεις δοκιμών
Είναι απαραίτητο να γράψετε περιπτώσεις δοκιμών πριν από την εκτέλεση δοκιμών λευκού κουτιού. Οι περιπτώσεις δοκιμών είναι μεμονωμένα σύνολα οδηγιών που περιγράφουν ενέργειες τις οποίες οι ελεγκτές ή οι προγραμματιστές μπορούν να εκτελέσουν για να ελέγξουν τις λειτουργίες και τη λειτουργία ενός συστήματος.
Στις δοκιμές λευκού κουτιού, οι περιπτώσεις δοκιμών σχεδιάζονται από άτομα με πλήρη γνώση της εσωτερικής δομής του συστήματος και δημιουργούνται για να επαληθεύσουν αν αυτό λειτουργεί όπως πρέπει.
3. Εργαλεία δοκιμών λευκού κουτιού
Υπάρχουν πολλά διαθέσιμα εργαλεία για δοκιμές λευκού κουτιού που υποστηρίζουν την πρόσβαση στον πηγαίο κώδικα και τα έγγραφα σχεδιασμού παράλληλα με την ολοκλήρωση της αυτοματοποίησης δοκιμών. Αυτές διατίθενται επίσης σε διάφορες τιμές για τους χρήστες, όπως οι εκδόσεις ZAPTEST FREE και ZAPTEST ENTERPRISE που παρέχουν μεγαλύτερη ευελιξία.
Επιλέξτε τα εργαλεία που θέλετε να χρησιμοποιήσετε προτού ξεκινήσετε τις δοκιμές, δίνοντας έμφαση στη διασφάλιση ότι διαθέτουν τη σωστή λειτουργικότητα, όπως λειτουργία σε πολλαπλές πλατφόρμες και τεχνολογία Computer Vision, ώστε να βλέπετε ό,τι βλέπουν οι αυτοματοποιημένες δοκιμές.
Βεβαιωθείτε ότι όλοι οι προγραμματιστές και οι μηχανικοί που συμμετέχουν στις δοκιμές γνωρίζουν πώς και πότε να τις χρησιμοποιούν.
Η διαδικασία δοκιμών λευκού κουτιού
Η δοκιμή λευκού κουτιού περιλαμβάνει πολύ περισσότερη γνώση της λειτουργίας ενός συστήματος από ό,τι η δοκιμή μαύρου κουτιού και ορισμένα από τα βήματα της δοκιμής λευκού κουτιού είναι λίγο διαφορετικά.
Οι δοκιμαστές λευκού κουτιού πρέπει πρώτα να προσδιορίσουν τα χαρακτηριστικά ή τα στοιχεία του συστήματος που θέλουν να επαληθεύσουν πριν σχεδιάσουν πιθανές διαδρομές για δοκιμή και γράψουν περιπτώσεις δοκιμής προς εκτέλεση.
Η διαδικασία δοκιμών λευκού κουτιού μπορεί επίσης να διαφέρει ανάλογα με την τεχνική δοκιμών λευκού κουτιού που χρησιμοποιείτε. Ακολουθήστε τα παρακάτω βήματα για να μάθετε πώς να διεξάγετε δοκιμές λευκού κουτιού, μεγιστοποιώντας παράλληλα την κάλυψη διαδρομής.
Βήμα 1: Προσδιορισμός των χαρακτηριστικών που πρέπει να δοκιμαστούν
Πριν πραγματοποιήσετε δοκιμές λευκού κουτιού, σκεφτείτε τι ακριβώς θέλετε να δοκιμάσετε και πώς θα το δοκιμάσετε. Αυτό συνήθως περιλαμβάνει την εστίαση σε ένα μικρό σύνολο λειτουργιών ή χαρακτηριστικών και τη δημιουργία ενός συνόλου περιπτώσεων δοκιμών μόνο για τη δοκιμή αυτών.
Θα εκτελέσετε αυτό το βήμα ξανά και ξανά για διάφορες περιοχές του συστήματος για να μεγιστοποιήσετε την κάλυψη των δοκιμών, αλλά είναι σημαντικό να αναλύσετε τις διάφορες περιοχές σε μεμονωμένες δοκιμές.
Όσο πιο περιορισμένη είναι η εστίασή σας, τόσο πιο αξιόπιστες και ακριβείς μπορεί να είναι οι δοκιμές σας.
Βήμα 2: Σχεδιάστε όλες τις πιθανές διαδρομές σε ένα γράφημα ροής
Ένα σημαντικό μέρος της προετοιμασίας σας για τη δοκιμή λευκού κουτιού είναι η σχεδίαση όλων των πιθανών διαδρομών που πρέπει να δοκιμάσετε σε ένα διάγραμμα ροής.
Αυτό το βήμα μπορεί να σας βοηθήσει να μεγιστοποιήσετε την κάλυψη διαδρομών και να διασφαλίσετε ότι επαληθεύετε όλες τις πιθανές διαδρομές σε κάθε περίπτωση δοκιμής που δημιουργείτε. Σχεδιάστε ένα γράφημα ροής που να καλύπτει όλες τις πιθανές διαδρομές για κάθε χαρακτηριστικό ή στοιχείο που δοκιμάζετε, για παράδειγμα περιγράφοντας διάφορες διαδρομές που προκύπτουν όταν εισάγονται διαφορετικές τιμές.
Βήμα 3: Προσδιορισμός όλων των πιθανών διαδρομών
Κοιτάξτε το γράφημα ροής σας και εντοπίστε όλες τις πιθανές διαδρομές που μπορούν να ακολουθήσουν οι χρήστες, ξεκινώντας από το πρώτο βήμα του γραφήματος ροής και καταλήγοντας στο τελευταίο βήμα.
Όσο περισσότερες διακλαδώσεις και αποφάσεις εμφανίζονται στο γράφημα ροής σας, τόσο περισσότερες μοναδικές διαδρομές θα υπάρχουν. Η κατανόηση του πόσες μοναδικές πιθανές διαδρομές υπάρχουν μπορεί να σας βοηθήσει να βεβαιωθείτε ότι οι περιπτώσεις δοκιμής σας καλύπτουν κάθε πιθανότητα.
Βήμα 4: Δημιουργία περιπτώσεων δοκιμής
Το επόμενο στάδιο των δοκιμών λευκού κουτιού είναι η συγγραφή περιπτώσεων δοκιμών που επαληθεύουν όλες τις διαδρομές που προσδιορίσατε παραπάνω.
Είναι σημαντικό να βεβαιωθείτε ότι οι περιπτώσεις δοκιμής σας καλύπτουν όλες τις πιθανές διαδρομές και περιγράφουν με σαφήνεια τις ενέργειες που πρέπει να κάνουν οι ελεγκτές ή οι προγραμματιστές για να εκτελέσουν κάθε περίπτωση δοκιμής.
Για κάθε περίπτωση δοκιμής, συμπεριλάβετε το αναγνωριστικό και το όνομα της περίπτωσης δοκιμής μαζί με μια σύντομη περιγραφή, καθώς και τα αναμενόμενα αποτελέσματα κάθε δοκιμής.
Βήμα 5: Εκτέλεση περιπτώσεων δοκιμής
Τώρα ήρθε η ώρα να εκτελέσετε τις περιπτώσεις δοκιμών, κάτι που οι περισσότεροι θεωρούν ότι είναι η εκτέλεση της ίδιας της δοκιμής λευκού κουτιού.
Οι ελεγκτές εκτελούν τις περιπτώσεις δοκιμής ακολουθώντας τις σύντομες οδηγίες που περιγράφονται σε κάθε περίπτωση δοκιμής και αναφέρουν το αποτέλεσμα κάθε περίπτωσης δοκιμής. Αυτό μπορεί να συγκριθεί με τα αναμενόμενα αποτελέσματα που περιγράφονται στην περίπτωση δοκιμής για να διαπιστωθεί αν κάθε δοκιμή λευκού κουτιού έχει περάσει ή αποτύχει.
Βήμα 6: Επαναλάβετε τον κύκλο ανάλογα με τις ανάγκες
Όπως και άλλες μορφές δοκιμών λογισμικού, οι δοκιμές λευκού κουτιού έχουν να κάνουν με τη σύγκριση του τρόπου με τον οποίο λειτουργεί πραγματικά το σύστημα με τις προσδοκίες που έχουν οι ελεγκτές για το πώς θα έπρεπε να λειτουργεί το σύστημα.
Εάν οι ελεγκτές διαπιστώσουν ότι το σύστημα δεν συμπεριφέρεται όπως περιμένουν, αυτό μπορεί να σημαίνει ότι η δοκιμή λευκού κουτιού έχει αποτύχει και οι προγραμματιστές πρέπει να διορθώσουν γραμμές κώδικα πριν από τη διεξαγωγή περαιτέρω δοκιμών.
Επαναλάβετε την παραπάνω διαδικασία για να πραγματοποιήσετε περαιτέρω δοκιμές λευκού κουτιού μέχρι να ελεγχθεί διεξοδικά το σύστημα και να διορθωθούν τυχόν σφάλματα.
Βέλτιστες πρακτικές για δοκιμές λευκού κουτιού
Οι βέλτιστες πρακτικές στις δοκιμές λευκού κουτιού εξαρτώνται από το είδος των δοκιμών που πραγματοποιείτε και από το στάδιο της διαδικασίας δοκιμών στο οποίο βρίσκεστε.
Δεδομένου ότι το μεγαλύτερο μέρος των δοκιμών λευκού κουτιού πραγματοποιείται κατά τη διάρκεια των δοκιμών μονάδας και ολοκλήρωσης, οι περισσότερες βέλτιστες πρακτικές δοκιμών λευκού κουτιού εφαρμόζονται σε αυτές τις φάσεις.
1. Μεγιστοποίηση της κάλυψης δοκιμών
Εξ ορισμού, είναι σημαντικό να μεγιστοποιείται η κάλυψη των δοκιμών κατά τη διεξαγωγή δοκιμών λευκού κουτιού, ώστε να διασφαλίζεται ότι ένα υψηλό ποσοστό του λογισμικού δοκιμάζεται κατά τη διάρκεια αυτής της φάσης.
Αυτό μπορείτε να το επιτύχετε μεγιστοποιώντας την κάλυψη διαδρομών και διακλαδώσεων και γράφοντας περιπτώσεις δοκιμών που διερευνούν όλες τις πιθανές διαδρομές και αποτελέσματα κατά το στάδιο της προετοιμασίας.
2. Επαλήθευση συμπεριφοράς και απόδοσης
Όταν γράφετε περιπτώσεις δοκιμών σε δοκιμές λευκού κουτιού, θέλετε να δημιουργήσετε περιπτώσεις δοκιμών που επαληθεύουν ότι το σύστημα λειτουργεί όπως περιμένετε, καθώς και περιπτώσεις δοκιμών που επαληθεύουν την απόδοση του συστήματος.
Για παράδειγμα, εκτός από τον έλεγχο ότι συγκεκριμένες ενέργειες οδηγούν σε συγκεκριμένα αποτελέσματα, μπορείτε επίσης να ελέγξετε πόσο γρήγορα μπορεί το σύστημα να εκτελέσει ορισμένες εργασίες ή πώς επηρεάζεται η απόδοση από διάφορες μεταβλητές.
3. Γράψτε περιπτώσεις δοκιμών ανεξάρτητα η μία από την άλλη
Αν θέλετε να ελέγξετε δύο διαφορετικά χαρακτηριστικά, για παράδειγμα, αν μια κλάση κώδικα εξαρτάται από μια συγκεκριμένη βάση δεδομένων, δημιουργήστε μια αφηρημένη διασύνδεση που αντικατοπτρίζει αυτή τη σύνδεση με τη βάση δεδομένων και υλοποιήστε μια διασύνδεση με ένα αντικείμενο απομίμησης για να ελέγξετε αυτή τη σύνδεση.
Αυτό διασφαλίζει ότι οι περιπτώσεις δοκιμής σας επαληθεύουν τις συνδέσεις που θέλετε να επαληθεύουν και όχι κάτι άλλο.
4. Καλύψτε όλες τις διαδρομές και τους βρόχους
Η μεγιστοποίηση της κάλυψης δοκιμών σημαίνει την κάλυψη όλων των πιθανών διαδρομών, λαμβάνοντας υπόψη τους βρόχους υπό όρους και άλλους τύπους βρόχων στον κώδικα.
Βεβαιωθείτε ότι σχεδιάζετε περιπτώσεις δοκιμών που διερευνούν πλήρως τις πιθανές διαδρομές και επαληθεύουν ότι οι βρόχοι συμπεριφέρονται όπως περιμένετε, ανεξάρτητα από την είσοδο.
7 λάθη και παγίδες όταν
Εφαρμογή δοκιμών White box
Όταν ξεκινάτε τις δοκιμές λευκού κουτιού, είναι σημαντικό να γνωρίζετε μερικές από τις πιο κοινές παγίδες στις οποίες πέφτουν συχνά οι προγραμματιστές κατά τη διεξαγωγή δοκιμών λευκού κουτιού. Τα συνήθη λάθη των δοκιμών λευκού κουτιού μπορούν να προκαλέσουν καθυστερήσεις και ανακρίβειες που θα μπορούσαν να βλάψουν την ποιότητα και το χρονοδιάγραμμα της έκδοσης λογισμικού.
1. Σκέφτεστε ότι οι δοκιμές λευκού κουτιού δεν είναι απαραίτητες
Ορισμένοι ελεγκτές πιστεύουν ότι η δοκιμή λευκού κουτιού δεν είναι απαραίτητη, επειδή η δοκιμή μαύρου κουτιού ελέγχει όλες τις εξωτερικές εξόδους του λογισμικού, και αν αυτές λειτουργούν σωστά, τότε η υπόθεση είναι ότι και οι εσωτερικές λειτουργίες του συστήματος λειτουργούν επίσης.
Ωστόσο, οι δοκιμές λευκού κουτιού μπορούν να βοηθήσουν τους προγραμματιστές να εντοπίσουν ζητήματα και σφάλματα που μπορεί να μην εμφανίζονται πάντα στις δοκιμές μαύρου κουτιού και είναι απαραίτητες για την επαλήθευση της ασφάλειας των συστημάτων λογισμικού.
Για παράδειγμα, εάν ένα πρόγραμμα έχει μια διαρροή μνήμης που προκαλεί υποβάθμιση των επιδόσεων για μεγάλα χρονικά διαστήματα, την οποία δεν εξετάζει η δοκιμή μαύρου κουτιού, η δοκιμή λευκού κουτιού είναι η μόνη επιλογή για να ψάξετε τον κώδικα και να βρείτε το πρόβλημα πριν από μια ευρεία δημόσια κυκλοφορία.
2. Εκτέλεση όλων των δοκιμών λευκού κουτιού με το χέρι
Ορισμένοι προγραμματιστές μπορεί να πιστεύουν ότι είναι εξίσου εύκολο να εκτελέσουν δοκιμές λευκού κουτιού όσο και δοκιμές μαύρου κουτιού.
Ωστόσο, οι δοκιμές λευκού κουτιού είναι σημαντικά πιο χρονοβόρες και οι προγραμματιστές που προσπαθούν να πραγματοποιήσουν δοκιμές λευκού κουτιού εντελώς χειροκίνητα μπορεί να διαπιστώσουν ότι είναι αδύνατο να πραγματοποιήσουν χειροκίνητους ελέγχους σύμφωνα με τα επιθυμητά πρότυπα ή μεγιστοποιώντας την κάλυψη των δοκιμών.
3. Κατανομή των ελεγκτών για την εκτέλεση των περιπτώσεων δοκιμής
Οι δοκιμές λευκού κουτιού θα πρέπει να διεξάγονται πλήρως από προγραμματιστές, μηχανικούς λογισμικού και άτομα που κατανοούν πλήρως τις εσωτερικές λειτουργίες του συστήματος λογισμικού.
Ορισμένοι προγραμματιστές πιστεύουν ότι μπορούν να μεταβιβάσουν τον έλεγχο λευκού κουτιού στους ελεγκτές QA αφού έχουν γράψει οι ίδιοι τις περιπτώσεις δοκιμών, αλλά αυτό θα οδηγήσει μόνο σε κακή εκτέλεση και θα μειώσει την ποιότητα της τεκμηρίωσης.
4. Βιαστική διεξαγωγή δοκιμών
Οι δοκιμές λογισμικού είναι μια μακρά και χρονοβόρα διαδικασία και ορισμένοι προγραμματιστές μπορεί να μπουν στον πειρασμό να περάσουν βιαστικά τις δοκιμές λευκού κουτιού για να προχωρήσουν στην επόμενη φάση της ανάπτυξης. Είναι σημαντικό να διαθέσετε αρκετό χρόνο και πόρους για τη δοκιμή λευκού κουτιού, ώστε να διασφαλίσετε ότι οι προγραμματιστές δεν θα αισθάνονται βιαστικοί και ότι θα έχουν αρκετό χρόνο για να μεγιστοποιήσουν την κάλυψη των δοκιμών.
5. Κακή τεκμηρίωση
Η τήρηση της κατάλληλης τεκμηρίωσης πριν, κατά τη διάρκεια και μετά τη δοκιμή εξασφαλίζει ότι όλοι όσοι εμπλέκονται στην ανάπτυξη και τη δοκιμή λογισμικού έχουν πρόσβαση στις σωστές πληροφορίες τη σωστή στιγμή.
Βεβαιωθείτε ότι κάθε μέλος της ομάδας ανάπτυξης γνωρίζει πώς να συντάσσει σαφή τεκμηρίωση και πώς να αναφέρει τα αποτελέσματα των δοκιμών λευκού κουτιού.
6. Ακατάλληλη χρήση εργαλείων αυτοματισμού
Τα εργαλεία αυτοματοποίησης μπορούν να διευκολύνουν την εκτέλεση δοκιμών λευκού κουτιού, αλλά είναι σημαντικό να βεβαιωθείτε ότι ολόκληρη η ομάδα σας κατανοεί ποια εργαλεία αυτοματοποίησης χρησιμοποιείτε και πώς να τα χρησιμοποιείτε.
Διαφορετικά εργαλεία είναι κατάλληλα για διαφορετικούς τύπους δοκιμών, επομένως είναι σημαντικό να επιλέξετε εργαλεία αυτοματοποίησης που είναι κατάλληλα για δοκιμές λευκού κουτιού και να μάθετε πώς να χρησιμοποιείτε σωστά τα χαρακτηριστικά τους.
Για παράδειγμα, ορισμένα εργαλεία δεν ενσωματώνουν την αυτοματοποίηση και αντ’ αυτού επικεντρώνονται στη συλλογή πληροφοριών και την οργάνωση εισιτηρίων, κάτι που δεν είναι καθόλου ιδανικό για αυτοματοποιημένες δοκιμές. Αντίθετα, τα εργαλεία πλήρους εκτέλεσης, όπως το ZAPTEST, καλύπτουν ολόκληρη τη διαδικασία δοκιμών μέσω χαρακτηριστικών όπως η αυτοματοποίηση οποιασδήποτε εργασίας, καθιστώντας τα κατάλληλα για πιο αποτελεσματικές εργασίες δοκιμών λευκού κουτιού.
7. Μη συνεργασία με την ομάδα QA
Ακριβώς επειδή οι δοκιμές λευκού κουτιού σχεδιάζονται και εκτελούνται από τους προγραμματιστές, αυτό δεν σημαίνει ότι η ομάδα QA δεν θα πρέπει να συμμετέχει με οποιονδήποτε τρόπο.
Είναι σημαντικό να διαβιβάζετε τα αποτελέσματα των δοκιμών λευκού κουτιού στην ομάδα QA, ώστε να κατανοήσουν τι έχει δοκιμαστεί μέχρι στιγμής και πώς τα αποτελέσματα των δοκιμών λευκού κουτιού μπορούν να επηρεάσουν τον τρόπο με τον οποίο η ομάδα QA προσεγγίζει τις δοκιμές μαύρου κουτιού.
Με την αποτυχία σας να εμπλέξετε την ομάδα QA δημιουργείτε μια πιθανή αποσύνδεση μεταξύ των διαφόρων τμημάτων, που οδηγεί σε κακή επικοινωνία και χειρότερη ανατροφοδότηση αργότερα κατά τη διάρκεια των δοκιμών. Το τελικό αποτέλεσμα αυτού του γεγονότος είναι ένα σημαντικά χαμηλότερο επίπεδο ποιότητας στο τελικό προϊόν.
Τύποι αποτελεσμάτων από δοκιμές λευκού κουτιού
Όταν εκτελείτε δοκιμές λογισμικού λευκού κουτιού, θα λάβετε διάφορα αποτελέσματα ανάλογα με τα αποτελέσματα των δοκιμών που πραγματοποιείτε. Η κατανόηση αυτών των αποτελεσμάτων από τις δοκιμές λευκού κουτιού μπορεί να σας βοηθήσει να καταλάβετε ποια βήματα πρέπει να ακολουθήσετε στη συνέχεια.
1. Αποτελέσματα δοκιμών
Τα αποτελέσματα των δοκιμών λευκού κουτιού θα σας πουν αν πρέπει να συνεχίσετε με περαιτέρω δοκιμές, αν υπάρχουν ελαττώματα που πρέπει να διορθωθούν και αν κάθε μεμονωμένη περίπτωση δοκιμής πέρασε ή απέτυχε. Η διεξοδική τεκμηρίωση είναι απαραίτητη, διότι βοηθά τους προγραμματιστές και τους ελεγκτές να κατανοήσουν τα αποτελέσματα των δοκιμών λευκού κουτιού.
2. Ελαττώματα
Τα ελαττώματα μπορούν να εντοπιστούν κατά τη δοκιμή λευκού κουτιού και μερικές φορές το αποτέλεσμα των δοκιμών λευκού κουτιού θα είναι ελαττώματα και σφάλματα.
Εάν το σύστημα λογισμικού δεν συμπεριφέρεται όπως περιμένετε κατά τη διάρκεια των δοκιμών λευκού κουτιού, αυτό μπορεί να υποδηλώνει ότι υπάρχουν σοβαρές ατέλειες στο πρόγραμμα που πρέπει να επιδιορθωθούν πριν συνεχιστεί η ανάπτυξη και οι δοκιμές.
3. Εκθέσεις δοκιμών
Οι εκθέσεις δοκιμών είναι εκθέσεις που συντάσσονται από τους προγραμματιστές και τους ελεγκτές κατά τη διάρκεια και μετά τη δοκιμή του λογισμικού.
Περιέχουν λεπτομέρειες σχετικά με τα αποτελέσματα της δοκιμής, συμπεριλαμβανομένων των περιπτώσεων δοκιμής που πέρασαν και απέτυχαν, τυχόν ελαττώματα που διαπιστώθηκαν κατά τη διάρκεια της δοκιμής και συστάσεις για τα επόμενα βήματα.
Οι προγραμματιστές χρησιμοποιούν τις αναφορές δοκιμών για να επικοινωνούν με άλλους προγραμματιστές, των οποίων το καθήκον μπορεί να είναι η διόρθωση σφαλμάτων και λαθών που εντοπίστηκαν κατά τη διάρκεια των δοκιμών.
Παραδείγματα δοκιμών white box
Η δοκιμή λευκού κουτιού επιτρέπει στους προγραμματιστές να ελέγχουν ότι η εσωτερική δομή του συστήματος λογισμικού λειτουργεί όπως πρέπει, ανεξάρτητα από τα εξωτερικά αποτελέσματα και τις εξόδους του συστήματος.
Τα παρακάτω παραδείγματα δείχνουν πώς η δοκιμή λευκού κουτιού μπορεί να βοηθήσει τους προγραμματιστές να επαληθεύσουν τις εσωτερικές λειτουργίες του λογισμικού.
1. Παράδειγμα σελίδας εγγραφής ηλεκτρονικού εμπορίου
Ένα παράδειγμα δοκιμών λευκού κουτιού εξετάζει τον τρόπο με τον οποίο οι προγραμματιστές δοκιμάζουν τις λειτουργίες του ιστότοπου. Αν προσπαθείτε να δοκιμάσετε τη σελίδα εγγραφής ενός ιστότοπου ηλεκτρονικού εμπορίου, η δοκιμή λευκού κουτιού μπορεί να επιτρέψει στους προγραμματιστές να κατανοήσουν αν οι λειτουργίες και οι κλάσεις που εμπλέκονται στην εγγραφή λειτουργούν όπως πρέπει όταν εκτελείται η λειτουργία εγγραφής.
Αυτό περιλαμβάνει συγκεκριμένα όλες τις πληροφορίες που εισάγει ο χρήστης και αξιολογεί τις παραμέτρους πίσω από τη φόρμα, συμπεριλαμβανομένων των ημερομηνιών που είναι και δεν είναι έγκυρες και του τι θεωρεί η φόρμα ως νόμιμη διεύθυνση ηλεκτρονικού ταχυδρομείου.
Στη συνέχεια, η ομάδα εισέρχεται σε μια σειρά από σειρές που δοκιμάζουν τη φόρμα, με κάποιες να είναι σχεδιασμένες για να αποτύχουν και άλλες για να πετύχουν, πριν αξιολογήσει τα αποτελέσματα σε σχέση με τα προβλεπόμενα αποτελέσματα.
Από την άλλη πλευρά, η δοκιμή “μαύρου κουτιού” θα ελέγξει μόνο αν η ίδια η σελίδα λειτουργεί, χωρίς περαιτέρω ανάλυση του γιατί ή του πώς.
2. Παράδειγμα αριθμομηχανής
Οι αριθμομηχανές εφαρμογών παρέχουν ένα άλλο παράδειγμα δοκιμών λευκού κουτιού.
Εάν δημιουργείτε μια αριθμομηχανή που χρησιμοποιείται ως μέρος μιας εφαρμογής, οι δοκιμαστές “μαύρου κουτιού” θα ελέγξουν απλώς εάν η έξοδος της αριθμομηχανής είναι σωστή όταν χρησιμοποιείτε την αριθμομηχανή όπως προβλέπεται.
Οι δοκιμαστές λευκού κουτιού θα ελέγξουν τους εσωτερικούς υπολογισμούς της αριθμομηχανής για να επαληθεύσουν τον τρόπο υπολογισμού της εξόδου και αν αυτός είναι σωστός. Αυτό είναι πιο χρήσιμο για πιο σύνθετους υπολογισμούς με πολλά στάδια, όπως οι φόροι. Οι ελεγκτές εξετάζουν τον κώδικα για να δουν τα βήματα που εκτελεί ο υπολογιστής και τη σειρά των βημάτων, πριν δουν το αποτέλεσμα μετά από κάθε στάδιο.
Εάν η είσοδος της αριθμομηχανής είναι (7*4) – 6 και η έξοδος είναι 22, αυτό είναι σωστό και η δοκιμή μαύρου κουτιού θα περάσει αυτή τη δοκιμή. Ωστόσο, αυτό συμβαίνει επειδή 7*4 = 28, και 28 – 6 είναι 22. Η δοκιμή λευκού κουτιού θα μπορούσε να αποκαλύψει ότι το λογισμικό βρήκε αυτό το αποτέλεσμα εκτελώντας 7*4 = 32 και 32 – 6 = 22, κανένα από τα οποία δεν είναι σωστό.
Αυτή η μεγαλύτερη διορατικότητα δείχνει ότι ο υπολογισμός είναι ακριβής μετά από κάθε συγκεκριμένο στάδιο, βρίσκει το στάδιο στο οποίο μπορεί να μην είναι ακριβής και το επιλύει ταχύτερα, καθώς ο ελεγκτής μπορεί να δει καθαρά πού υπάρχει το πρόβλημα.
Τύποι σφαλμάτων και σφαλμάτων στις δοκιμές λευκού κουτιού
Κατά τη διάρκεια των δοκιμών λευκού κουτιού, είναι δυνατόν να εντοπιστούν και να εντοπιστούν σφάλματα που μπορεί να επηρεάζουν τον τρόπο λειτουργίας των συστημάτων κάτω από την κουκούλα. Αυτά τα σφάλματα μπορεί να επηρεάζουν εξωτερικές λειτουργίες ή να επηρεάζουν την απόδοση ή την αξιοπιστία.
Μερικοί από τους πιο συνηθισμένους τύπους σφαλμάτων και σφαλμάτων που προκύπτουν κατά τη διάρκεια των δοκιμών λευκού κουτιού παρατίθενται παρακάτω.
1. Λογικά σφάλματα
Τα λογικά σφάλματα προκύπτουν στις δοκιμές λευκού κουτιού επειδή οι δοκιμές λευκού κουτιού δείχνουν περιοχές όπου το πρόγραμμα δεν λειτουργεί λογικά ή όπου οι λειτουργίες και οι συνθήκες χρησιμοποιούνται καταχρηστικά στον κώδικα του λογισμικού.
Τα λογικά σφάλματα μπορεί να εμφανίζονται ως αποτυχίες του συστήματος ή απλώς να οδηγούν σε απροσδόκητες συμπεριφορές και εξόδους.
2. Σφάλματα σχεδιασμού
Οι δοκιμές λευκού κουτιού μπορούν να βοηθήσουν τους προγραμματιστές να εντοπίσουν σφάλματα σχεδιασμού στον κώδικα. Σφάλματα σχεδιασμού προκύπτουν όταν υπάρχει διαφορά μεταξύ της λογικής ροής του λογισμικού και της πραγματικής υλοποίησης του λογισμικού. Μπορεί να οδηγήσουν σε απροσδόκητες συμπεριφορές και σφάλματα απόδοσης.
3. Τυπογραφικά λάθη
Τα τυπογραφικά λάθη και οι συντακτικές ατέλειες είναι λάθη που προκύπτουν λόγω ανθρώπινου λάθους – για παράδειγμα επειδή ένας προγραμματιστής πληκτρολόγησε λάθος μια συγκεκριμένη φράση ή πρόσθεσε λάθος σημεία στίξης σε μια γραμμή κώδικα. Μικρά σφάλματα όπως αυτό μπορεί να οδηγήσουν σε σπασμένες λειτουργίες και δηλώσεις που το λογισμικό δεν μπορεί να διαβάσει, γεγονός που μπορεί να προκαλέσει σημαντικά σφάλματα στο σύστημα.
Κοινές μετρήσεις δοκιμών λευκού κουτιού
Όταν εκτελείτε δοκιμές λευκού κουτιού, οι κοινές μετρικές δοκιμών μπορούν να σας βοηθήσουν να μετρήσετε πόσο επιτυχείς και ολοκληρωμένες είναι οι δοκιμές λευκού κουτιού, καθώς και να κατανοήσετε την ποιότητα της εργασίας των προγραμματιστών σας.
Οι μετρικές δοκιμών ενημερώνουν τη διαδικασία ανάπτυξης, επειδή μπορούν να εντοπίσουν περιοχές προς βελτίωση ή να καθοδηγήσουν τη διαδικασία δοκιμών που προχωράει προς τα εμπρός.
1. Κάλυψη κώδικα
Ένα από τα κύρια χαρακτηριστικά των δοκιμών λευκού κουτιού είναι ότι πρέπει να καλύπτουν όσο το δυνατόν μεγαλύτερο μέρος του κώδικα και μπορείτε να μετρήσετε πόσο κώδικα έχετε καλύψει με μετρικές κάλυψης κώδικα.
Οι μετρικές κάλυψης κώδικα δείχνουν πόσο μέρος του συνολικού κώδικα της εφαρμογής έχετε επαληθεύσει χρησιμοποιώντας δοκιμές λευκού κουτιού. Γενικά, οι προγραμματιστές στοχεύουν να καλύψουν όσο το δυνατόν περισσότερο το 100% του κώδικα λογισμικού μέσω δοκιμών λευκού κουτιού.
Η κάλυψη κώδικα μπορεί να διαχωριστεί σε ξεχωριστές μετρήσεις, όπως η κάλυψη διαδρομής, τμήματος, εντολής και κλάδου.
Η κάλυψη σύνθετων συνθηκών είναι ένας άλλος τύπος μετρικής κάλυψης κώδικα που ελέγχει ότι κάθε συνθήκη εντός ενός συνόλου έχει ελεγχθεί παράλληλα με πολλαπλές διαδρομές και συνδυασμούς διαδρομών.
2. Μετρικές ελαττωμάτων
Οι μετρικές ελαττωμάτων αντικατοπτρίζουν πόσα ελαττώματα έχουν βρεθεί, πόσο καλές είναι οι δοκιμές λευκού κουτιού στον εντοπισμό ελαττωμάτων και ποια ποσοστά του κώδικα περνούν ή αποτυγχάνουν στις δοκιμές λευκού κουτιού.
Οι μετρικές ελαττωμάτων μπορούν να παρουσιάζονται ως αριθμός ελαττωμάτων ανά χίλιες γραμμές κώδικα ή ως αριθμός συνολικών ελαττωμάτων στο πρόγραμμα. Αν και ένας χαμηλός αριθμός ελαττωμάτων μπορεί να φαίνεται θετικός, οι προγραμματιστές πρέπει να διασφαλίσουν ότι αυτό δεν οφείλεται στο γεγονός ότι τα ελαττώματα παραλείπονται κατά τον έλεγχο.
3. Εκτέλεση δοκιμών
Οι μετρικές εκτέλεσης δοκιμών μπορούν να βοηθήσουν τους προγραμματιστές να δουν γρήγορα ποιο ποσοστό των συνολικών δοκιμών έχει εκτελεστεί μέχρι στιγμής και πόσες ανεκτέλεστες δοκιμές απομένουν. Οι μετρικές εκτέλεσης κειμένου βοηθούν τις ομάδες λογισμικού να κατανοήσουν πόσο προχωράει η διαδικασία δοκιμών λευκού κουτιού και αν οι αυτοματοποιημένες δοκιμές λογισμικού εκτελούνται όπως αναμενόταν.
Ωστόσο, είναι δυνατόν να έχουμε τόσο ψευδώς θετικά όσο και ψευδώς αρνητικά αποτελέσματα, τα οποία μπορούν να επηρεάσουν την ακρίβεια αυτής της μέτρησης.
4. Διάρκεια δοκιμής
Οι μετρικές διάρκειας δοκιμής μας λένε πόσος χρόνος χρειάζεται για την εκτέλεση αυτοματοποιημένων δοκιμών, κάτι που είναι ιδιαίτερα σημαντικό στις δοκιμές λευκού κουτιού, επειδή η αυτοματοποίηση είναι απαραίτητη για τη μεγιστοποίηση της αποτελεσματικότητας των δοκιμών και της κάλυψης των δοκιμών.
Η διάρκεια των δοκιμών είναι συχνά ένα σημείο συμφόρησης στην ευέλικτη ανάπτυξη λογισμικού, οπότε η κατανόηση του χρόνου που χρειάζονται οι δοκιμές λογισμικού για να εκτελεστούν μπορεί να βοηθήσει τις ομάδες ανάπτυξης να επιταχύνουν τη διαδικασία ανάπτυξης.
Ωστόσο, είναι σημαντικό να θυμάστε ότι οι μετρήσεις διάρκειας δοκιμών δεν σας λένε τίποτα για την ποιότητα των δοκιμών που εκτελείτε.
Εργαλεία δοκιμών λευκού κουτιού
Τα εργαλεία και η τεχνολογία μπορούν να κάνουν τις δοκιμές λευκού κουτιού σημαντικά πιο ακριβείς, αποτελεσματικές και ολοκληρωμένες. Τα εργαλεία δοκιμών λευκού κουτιού μπορούν να βοηθήσουν τους μηχανικούς λογισμικού να αυτοματοποιήσουν τις δοκιμές λευκού κουτιού, να καταγράψουν και να τεκμηριώσουν τη διαδικασία δοκιμών λευκού κουτιού και να διαχειριστούν τις δοκιμές λευκού κουτιού από την αρχή έως το τέλος.
5 καλύτερα δωρεάν εργαλεία δοκιμών λευκού κουτιού
Αν δεν θέλετε να επενδύσετε σε ακριβά εργαλεία δοκιμών λευκού κουτιού ακόμα, μπορείτε να δοκιμάσετε ένα πλήθος δωρεάν εργαλείων δοκιμών λευκού κουτιού στο διαδίκτυο χωρίς να πληρώσετε τίποτα.
Τα δωρεάν εργαλεία δοκιμών δεν προσφέρουν πάντα όλες τις ίδιες λειτουργίες με τα εργαλεία των επιχειρήσεων, αλλά είναι ένα καλό σημείο εκκίνησης για τους αρχάριους στις δοκιμές λευκού κουτιού και μπορούν να βοηθήσουν τις ομάδες ανάπτυξης να κατανοήσουν καλύτερα τα εργαλεία και τις τεχνολογίες που χρειάζονται.
1. ZAPTEST ΔΩΡΕΑΝ έκδοση
Το ZAPTEST είναι ένα εργαλείο δοκιμών λογισμικού και ένα λογισμικό αυτοματοποίησης ρομποτικών διαδικασιών που επιτρέπει στους προγραμματιστές και τους ελεγκτές QA να αυτοματοποιούν τόσο τις δοκιμές λευκού κουτιού όσο και τις δοκιμές μαύρου κουτιού.
Η δωρεάν έκδοση του ZAPTEST επιτρέπει πολλαπλούς εικονικούς χρήστες, πολλαπλές επαναλήψεις και υποστήριξη φόρουμ χρηστών. Η εφαρμογή λειτουργεί τόσο με τοπικές όσο και με εξωτερικές πηγές δεδομένων και ενσωματώνεται με το HP ALM, το Rally και το JIRA. Οι χρήστες στους οποίους αρέσει η δωρεάν προσφορά του ZAPTEST και θέλουν να δουν περισσότερα από όσα προσφέρει η εταιρεία μπορούν επίσης να ρωτήσουν για την αναβάθμιση στην έκδοση για επιχειρήσεις όταν είναι έτοιμη.
2. Bugzilla
Το Bugzilla είναι ένα πολύ δημοφιλές εργαλείο δοκιμών λογισμικού ανοικτού κώδικα που επιτρέπει στους προγραμματιστές να παρακολουθούν σφάλματα και ατέλειες στο λογισμικό και να διαχειρίζονται τον κύκλο ζωής των σφαλμάτων.
Το Bugzilla διευκολύνει την ανάθεση σφαλμάτων σε προγραμματιστές, την ιεράρχηση και επαλήθευση σφαλμάτων και το κλείσιμό τους μόλις διορθωθούν. Το Bugzilla είναι ένα εξαιρετικό εργαλείο για ομάδες που προσπαθούν ακόμα να τυποποιήσουν την προσέγγισή τους στην αναφορά σφαλμάτων και είναι εντελώς δωρεάν στη χρήση.
3. OpenGrok
Το OpenGrok είναι ένα πρόγραμμα περιήγησης κώδικα ανοικτού κώδικα και μια μηχανή αναζήτησης για την βάση κώδικα. Είναι συμβατό με κώδικα γραμμένο σε Java C++, JavaScript και Python μαζί με άλλες γλώσσες προγραμματισμού.
Αν θέλετε να μπορείτε να περιηγηθείτε γρήγορα σε μια μεγάλη βάση κώδικα κατά τη διάρκεια δοκιμών λευκού κουτιού, το OpenGrok είναι εντελώς δωρεάν και εύκολο στη χρήση.
4. SQLmap
Το SQLmap είναι ένα άλλο εργαλείο ανοιχτού κώδικα που θεωρείται σχεδόν απαραίτητο για τις δοκιμές λευκού κουτιού. Το SQLmap ρυθμίζει τη ροή της εκμετάλλευσης και της ανίχνευσης σφαλμάτων έγχυσης SQL.
Το SQLmap, ένα “εργαλείο δοκιμής διείσδυσης”, μπορεί να βοηθήσει τους δοκιμαστές λευκού κουτιού να εντοπίσουν και να εντοπίσουν σφάλματα ασφαλείας στον πηγαίο κώδικα και να τα διορθώσουν πριν προχωρήσουν.
5. Emma
Το Emma είναι μια εργαλειοθήκη ανοικτού κώδικα που μπορεί να μετρήσει την κάλυψη του κώδικά σας, αν εργάζεστε σε Java. Είναι ένας πολύ γρήγορος τρόπος για να διαπιστώνετε γρήγορα την κάλυψη του κώδικα και να παρακολουθείτε πόσο κώδικα έχει καλύψει κάθε μέλος της ομάδας ανάπτυξης σε ατομική βάση.
Η Emma υποστηρίζει κάλυψη κλάσεων, μεθόδων, γραμμών και βασικών μπλοκ και βασίζεται πλήρως στη Java.
5 Καλύτερα εργαλεία δοκιμών white box για επιχειρήσεις
Εάν αναζητάτε εργαλεία που προσφέρουν μεγαλύτερη λειτουργικότητα ή καλύτερη υποστήριξη, τα εργαλεία δοκιμών λευκού κουτιού για επιχειρήσεις μπορεί να είναι πιο κατάλληλα για την ομάδα ανάπτυξής σας.
1. Έκδοση ZAPTEST ENTERPRISE
Η επιχειρηματική έκδοση του ZAPTEST είναι η βελτιωμένη έκδοση του δωρεάν ZAPTEST. Σε αυτή την έκδοση, οι χρήστες μπορούν να επωφεληθούν από απεριόριστα πρότυπα OCR, απεριόριστες επαναλήψεις και απεριόριστα σενάρια VBScript και JavaScript.
Η επιχειρησιακή έκδοση του ZAPTEST προσφέρει μια πιο ολοκληρωμένη σειρά εργαλείων για ομάδες ανάπτυξης που επιθυμούν να στραφούν στην αυτοματοποίηση, ενώ η επιχειρησιακή έκδοση συνοδεύεται επίσης από υποστήριξη από ειδικούς για να διασφαλίσετε ότι η ομάδα σας θα αξιοποιήσει στο έπακρο την τεχνολογία αυτοματοποίησης και RPA της ZAPTEST για δοκιμές λογισμικού.
2. Βιολιστής
Το Fiddler είναι μια σουίτα εργαλείων από την Telerik που προορίζεται για τον έλεγχο εφαρμογών ιστού σε λευκό κουτί. Το Fiddler μπορεί να καταγράφει όλη την κυκλοφορία HTTP μεταξύ του συστήματός σας και του διαδικτύου και να αξιολογεί τα καθορισμένα σημεία διακοπής καθώς και να προσαρμόζει τα εξερχόμενα και εισερχόμενα δεδομένα. Διατίθεται σε διάφορες μορφές ανάλογα με τον προϋπολογισμό και τις απαιτήσεις σας, έτσι ώστε να υπάρχει μια έκδοση Fiddler σχεδόν για κάθε ομάδα.
3. Ενίσχυση HP
Το HP Fortify, παλαιότερα γνωστό ως Fortify, είναι ένα άλλο εργαλείο δοκιμών ασφαλείας που προσφέρει ολοκληρωμένες λύσεις ασφαλείας για δοκιμές λευκού κουτιού. Η σουίτα εργαλείων Fortify περιλαμβάνει το εργαλείο Fortify Source Code Analysis, το οποίο θα σαρώσει αυτόματα τον πηγαίο σας κώδικα για ευπάθειες που θα μπορούσαν να αφήσουν την εφαρμογή σας ανοιχτή σε κυβερνοεπιθέσεις.
4. Μονάδα ABAP
Η επιχειρησιακή έκδοση του ABAP Unit δίνει τη δυνατότητα στους προγραμματιστές λογισμικού να εκτελούν τόσο χειροκίνητες όσο και αυτοματοποιημένες δοκιμές μονάδας γρήγορα και απλά. Οι προγραμματιστές γράφουν δοκιμές μονάδας εντός της εφαρμογής ABAP και χρησιμοποιούν αυτές τις δοκιμές για να επαληθεύουν τις λειτουργίες του κώδικα και να εντοπίζουν σφάλματα στο πλαίσιο των δοκιμών μονάδας.
Οι ομάδες λογισμικού που θέλουν να δοκιμάσουν αυτό το εργαλείο μπορούν να ξεκινήσουν με τη δωρεάν έκδοση του ABAP Unit πριν προχωρήσουν στην έκδοση για επιχειρήσεις.
5. LDRA
Το LDRA είναι μια ιδιόκτητη σουίτα εργαλείων που μπορεί να χρησιμοποιηθεί για την κάλυψη δηλώσεων, την κάλυψη κλάδων και την κάλυψη αποφάσεων κατά τη διενέργεια δοκιμών λευκού κουτιού. Είναι ένα εξαιρετικό εργαλείο αν θέλετε να ελέγξετε ότι ο πηγαίος κώδικάς σας πληροί τις τυποποιημένες απαιτήσεις για συμμόρφωση, ανίχνευση και υγιεινή του κώδικα.
Πότε θα πρέπει να χρησιμοποιήσετε το enterprise
vs freemium εργαλεία δοκιμών λευκού κουτιού;
Τόσο τα επιχειρησιακά όσο και τα δωρεάν εργαλεία δοκιμών λογισμικού έχουν τη θέση τους σε κάθε σύγχρονη ομάδα ανάπτυξης λογισμικού. Καθώς η ομάδα σας μεγαλώνει και οι αυτοματοποιημένες δοκιμές γίνονται πιο σημαντικές για την προσέγγιση των δοκιμών λευκού κουτιού, είναι πιθανό να θέλετε να αναβαθμίσετε την εργασία σας από τα δωρεάν εργαλεία δοκιμών σε εργαλεία επιχειρήσεων που προσφέρουν περισσότερες λειτουργίες και απεριόριστες χρήσεις.
Ωστόσο, υπάρχουν συγκεκριμένα σενάρια στα οποία τα εργαλεία freemium μπορεί να είναι πιο κατάλληλα από τα επιχειρηματικά εργαλεία.
Πολλοί προγραμματιστές επιλέγουν να ξεκινήσουν με εργαλεία freemium όταν πειραματίζονται με νέα χαρακτηριστικά και τεχνολογίες, κυρίως για να αξιολογήσουν αν αυτές οι τεχνολογίες είναι κατάλληλες για την ομάδα τους πριν επενδύσουν σε εταιρικές τεχνολογίες.
Μπορείτε επίσης να δοκιμάσετε δωρεάν εκδόσεις εργαλείων για επιχειρήσεις, όπως το ZAPTEST, ώστε να τα δοκιμάσετε πριν τα αγοράσετε και να μάθετε περισσότερα για το τι προσφέρουν τα εργαλεία για επιχειρήσεις.
Τέλος, ορισμένα εργαλεία freemium, όπως το Emma και το Bugzilla, ειδικεύονται σε εξειδικευμένα αλλά σημαντικά χαρακτηριστικά που προσφέρουν συνεχή πλεονεκτήματα ακόμη και σε ομάδες λογισμικού που είναι προετοιμασμένες να πληρώσουν για επιχειρηματικές τεχνολογίες.
Δοκιμές λευκού κουτιού: λίστα ελέγχου, συμβουλές και κόλπα
Όταν είστε έτοιμοι να εκτελέσετε δοκιμές λευκού κουτιού, βεβαιωθείτε ότι έχετε όλα όσα χρειάζεστε πριν ξεκινήσετε. Ακολουθεί ένας κατάλογος με τα πράγματα που πρέπει να θυμάστε πριν ξεκινήσετε τις δοκιμές λευκού κουτιού για να μεγιστοποιήσετε την κάλυψη των δοκιμών σας και να βελτιώσετε την ακρίβεια των αποτελεσμάτων των δοκιμών λευκού κουτιού.
1. Χρήση εργαλείων αυτοματισμού
Τα εργαλεία αυτοματοποίησης μπορούν να επιταχύνουν σημαντικά τη διαδικασία διεξαγωγής δοκιμών λευκού κουτιού, καθώς και να μειώσουν το ποσοστό σφαλμάτων και να αυξήσουν τη συνολική ακρίβεια.
Σχεδόν όλες οι ομάδες λογισμικού χρησιμοποιούν σήμερα κάποιο επίπεδο αυτοματοποίησης για τη διεξαγωγή δοκιμών λευκού κουτιού, οπότε ο πειραματισμός με διάφορα εργαλεία και τεχνολογίες αυτοματοποίησης πριν ξεκινήσετε τις δοκιμές λευκού κουτιού μπορεί να σας βοηθήσει να επιλέξετε τα εργαλεία που θέλετε να χρησιμοποιήσετε πριν από την έναρξη των δοκιμών.
2. Στοχεύστε σε 100% κάλυψη δοκιμών
Πιθανώς δεν θα πετύχετε το στόχο σας για 100% κάλυψη δοκιμών, αλλά το να στοχεύετε να φτάσετε όσο το δυνατόν πιο κοντά σε αυτό το ποσοστό είναι το καλύτερο κατά την εκτέλεση δοκιμών λευκού κουτιού.
Χρησιμοποιήστε εργαλεία κάλυψης δοκιμών για να παρακολουθείτε και να μετράτε μεμονωμένες μετρήσεις, όπως η κάλυψη διαδρομών και η κάλυψη κλάδων, και να διασφαλίζετε ότι όλες οι πιο σημαντικές διαδρομές και κλάδοι του λογισμικού σας έχουν καλυφθεί κατά τη διάρκεια των δοκιμών λευκού κουτιού.
3. Παραγωγή σαφών εκθέσεων δοκιμών
Όπως συμβαίνει και με άλλες μορφές δοκιμών λογισμικού, βεβαιωθείτε ότι η ομάδα σας γνωρίζει πώς να συντάσσει ακριβείς και σαφείς αναφορές δοκιμών μετά τη διεξαγωγή κάθε φάσης δοκιμών.
Η έκθεση δοκιμών πρέπει να είναι γραμμένη σε εύληπτη μορφή και να περιλαμβάνει λεπτομέρειες σχετικά με την προσέγγιση των δοκιμών, καθώς και μια περίληψη των αποτελεσμάτων και των αποτελεσμάτων κάθε περίπτωσης δοκιμής που εκτελέστηκε. Η τελική έκθεση θα πρέπει να αιτιολογεί τα μέτρα που ελήφθησαν και να διατυπώνει συστάσεις για τα επόμενα βήματα.
4. Μετρήστε την επιτυχία σας με μετρήσεις δοκιμών
Οι μετρικές δοκιμών βοηθούν τις ομάδες λογισμικού να παρακολουθούν και να καταγράφουν την πρόοδο των δοκιμών λευκού κουτιού και προσφέρουν πολύτιμες πληροφορίες που μπορούν να ενημερώσουν τις μελλοντικές διαδικασίες ανάπτυξης.
Είναι σημαντικό οι προγραμματιστές να χρησιμοποιούν μετρήσεις για να κατανοήσουν πόσο αποτελεσματικές είναι οι δοκιμές που πραγματοποιούν και πόσο καθαρός ήταν ο αρχικός τους κώδικας, ώστε να μπορούν να βελτιώσουν τη δουλειά τους στο μέλλον.
Δοκιμές λευκού κουτιού:
Συμπέρασμα
Η δοκιμή λευκού κουτιού στη μηχανική λογισμικού είναι ένας βασικός τύπος δοκιμής λογισμικού που επαληθεύει την εσωτερική δομή και λογική του πηγαίου κώδικα μιας εφαρμογής λογισμικού.
Σε συνδυασμό με τη δοκιμή μαύρου κουτιού, η δοκιμή λευκού κουτιού δεν βεβαιώνει απλώς ότι το λογισμικό λειτουργεί όπως αναμένεται, αλλά ότι ο εσωτερικός κώδικας είναι λογικός, καθαρός και πλήρης.
Οι δοκιμές λευκού κουτιού διεξάγονται συχνότερα στις δοκιμές μονάδας και στις δοκιμές ολοκλήρωσης και πραγματοποιούνται πάντα από προγραμματιστές και μηχανικούς λογισμικού με πλήρη γνώση του εσωτερικού κώδικα του λογισμικού.
Ενώ ορισμένες δοκιμές λευκού κουτιού μπορούν να πραγματοποιηθούν χειροκίνητα, σήμερα πολλές δοκιμές λευκού κουτιού αυτοματοποιούνται λόγω των βελτιώσεων στην ταχύτητα, την αποτελεσματικότητα και την κάλυψη που προσφέρει η αυτοματοποίηση των δοκιμών λευκού κουτιού.
Συχνές ερωτήσεις και πόροι
Αν θέλετε να μάθετε περισσότερα για τις δοκιμές λευκού κουτιού, υπάρχουν πολλοί δωρεάν διαδικτυακοί πόροι που μπορείτε να συμβουλευτείτε. Μπορείτε να χρησιμοποιήσετε βίντεο, βιβλία και άλλους πόρους για να μάθετε πώς να διεξάγετε δοκιμές λευκού κουτιού και να διασφαλίσετε ότι τα πρότυπα δοκιμών λευκού κουτιού ακολουθούν τις βέλτιστες πρακτικές.
1. Τα καλύτερα μαθήματα για την αυτοματοποίηση δοκιμών white box
Αν θέλετε να μάθετε περισσότερα για την αυτοματοποίηση δοκιμών λευκού κουτιού, μπορείτε να παρακολουθήσετε ένα μάθημα σχετικά με τη δοκιμή λογισμικού και τη δοκιμή λευκού κουτιού. Ορισμένα από αυτά τα μαθήματα είναι διαπιστευμένα και προσφέρουν επίσημα προσόντα, ενώ άλλα είναι ανεπίσημα διαδικτυακά μαθήματα που έχουν σχεδιαστεί για να βοηθήσουν τους προγραμματιστές και τους ελεγκτές λογισμικού που θέλουν να βελτιώσουν τις γνώσεις τους σε ένα συγκεκριμένο θέμα.
Μερικά από τα καλύτερα μαθήματα δοκιμών λευκού κουτιού που είναι διαθέσιμα στο διαδίκτυο σήμερα περιλαμβάνουν:
2. Ποιες είναι οι πέντε κορυφαίες ερωτήσεις συνέντευξης σχετικά με την αυτοματοποίηση δοκιμών λευκού κουτιού;
Εάν προετοιμάζεστε για μια συνέντευξη όπου μπορεί να συζητήσετε για δοκιμές λευκού κουτιού, τεχνικές λευκού κουτιού και εργαλεία αυτοματοποίησης, είναι σημαντικό να γνωρίζετε.
- Ποια είναι η διαφορά μεταξύ των δοκιμών λευκού κουτιού και των δοκιμών μαύρου κουτιού;
- Γιατί είναι σημαντική η δοκιμή λευκού κουτιού;
- Ποιες είναι μερικές από τις διαφορετικές προσεγγίσεις που μπορείτε να ακολουθήσετε στη δοκιμή λευκού κουτιού;
- Ποιες διαδικασίες εμπλέκονται στις δοκιμές λευκού κουτιού και πώς μπορούμε να τις βελτιώσουμε;
- Ποια είναι μερικά από τα εργαλεία και τις τεχνολογίες που θα μπορούσατε να χρησιμοποιήσετε για να κάνετε τις δοκιμές λευκού κουτιού ταχύτερες ή πιο ακριβείς;
3. Τα καλύτερα σεμινάρια στο YouTube για δοκιμές λευκού κουτιού
Αν θέλετε να μάθετε περισσότερα για τις δοκιμές λευκού κουτιού, η παρακολούθηση σεμιναρίων στο YouTube μπορεί να σας βοηθήσει να καταλάβετε πώς λειτουργεί η δοκιμή λευκού κουτιού και να δείτε οπτικές επεξηγήσεις των διαδικασιών και των προσεγγίσεων που εμπλέκονται στις δοκιμές λευκού κουτιού.
Μερικά από τα πιο κατατοπιστικά σεμινάρια στο YouTube περιλαμβάνουν τώρα:
- Udacity: White Box Testing Παράδειγμα
- Guru99: Τι είναι η δοκιμή λευκού κουτιού;
- Δοκιμές White Box vs Black Box
- Τεχνικές δοκιμών White Box
- Μέντορας δοκιμών λογισμικού: Τι είναι η δοκιμή λευκού κουτιού;
4. Πώς να διατηρείτε δοκιμές λευκού κουτιού
Η συντήρηση δοκιμών λογισμικού εξασφαλίζει ότι κάθε φορά, οι δοκιμές που εκτελείτε είναι διεξοδικές και κατάλληλες για το σκοπό σας. Είναι σημαντικό να διατηρείτε όλους τους τύπους δοκιμών λογισμικού τόσο σε δοκιμές “μαύρου κουτιού” όσο και σε δοκιμές “λευκού κουτιού”, επειδή ο κώδικας στον οποίο εκτελείτε δοκιμές αλλάζει συνεχώς με κάθε επιδιόρθωση και επανάληψη σφαλμάτων. Αυτό σημαίνει ότι τα σενάρια δοκιμών σας πρέπει να αλλάξουν μαζί με αυτό.
Η διατήρηση των δοκιμών λευκού κουτιού περιλαμβάνει την ενημέρωση του πλαισίου αυτοματοποίησης δοκιμών και την επιβολή διαδικασιών που αποσκοπούν στην τακτική ενημέρωση των δοκιμών και των περιπτώσεων δοκιμών.
Μπορείτε να το κάνετε αυτό με:
Ενσωμάτωση της συντήρησης στο σχεδιασμό των δοκιμών σας:
Η εξέταση του μέλλοντος των δοκιμών λευκού κουτιού κατά την πρώτη κατασκευή και το σχεδιασμό των δοκιμών λευκού κουτιού θα διευκολύνει τη διατήρηση των δοκιμών στο μέλλον.
Ενεργοποιήστε τη σαφή επικοινωνία μεταξύ των ομάδων:
Βεβαιωθείτε ότι όλα τα μέλη της ομάδας ανάπτυξης διαθέτουν πολλαπλούς διαύλους επικοινωνίας, ώστε, μόλις γίνουν αλλαγές στον κώδικα, αυτές να μπορούν να αντικατοπτρίζονται γρήγορα στις δοκιμές.
Να είστε προσαρμόσιμοι:
Ορισμένες φορές, μπορεί να κάνετε αλλαγές στον κώδικα που δεν είχατε προβλέψει. Βεβαιωθείτε ότι η ομάδα σας γνωρίζει πώς να προσαρμόζεται γρήγορα σε αυτές τις αλλαγές και έχει τις δεξιότητες να παρακολουθεί αυτές τις αλλαγές στις δοκιμές.
Συνεχής επαναξιολόγηση των πρωτοκόλλων δοκιμών:
Τα πρωτόκολλα δοκιμών που εφαρμόσατε κατά την έναρξη των δοκιμών ενδέχεται να μην είναι κατάλληλα όταν το λογισμικό σας έχει υποστεί διάφορες αλλαγές και βελτιώσεις. Επαναξιολογήστε τα πρωτόκολλα δοκιμών σας σε τακτά χρονικά διαστήματα για να επαληθεύσετε αν εξακολουθούν να είναι κατάλληλα.
5. Τα καλύτερα βιβλία για τον έλεγχο λευκού κουτιού
Η δοκιμή λευκού κουτιού είναι ένα βαθύ θέμα που μπορεί να πάρει χρόνια για να το κατακτήσετε. Αν θέλετε να γίνετε ειδικός στις σύγχρονες δοκιμές λευκού κουτιού στον τομέα των δοκιμών λογισμικού, μπορείτε να διαβάσετε βιβλία σχετικά με τις δοκιμές λευκού κουτιού που έχουν γραφτεί από προγραμματιστές, ακαδημαϊκούς και μηχανικούς.
Μερικά από τα καλύτερα βιβλία για τις δοκιμές λευκού κουτιού και την αυτοματοποίηση δοκιμών σήμερα περιλαμβάνουν:
- Η τέχνη της δοκιμής λογισμικού, τρίτη έκδοση των Glenford J. Myers, Corey Sandler, Tom Badgett, Todd M. Thomas
- Δοκιμές λογισμικού: Jorgensen, τέταρτη έκδοση, του Paul C. Jorgensen
- Πώς να σπάσετε το λογισμικό: Whittaker
- Η αυτοματοποίηση δοκιμών λογισμικού Just Enough από τους Dan Mosley και Bruce Posey
Θα μπορείτε να βρείτε αυτά τα βιβλία σε ορισμένα βιβλιοπωλεία και βιβλιοθήκες καθώς και στο διαδίκτυο. Μπορείτε επίσης να βρείτε άλλο αναγνωστικό υλικό και άλλους μαθησιακούς πόρους στους καταλόγους αναγνωστικού υλικού καλών μαθημάτων και προγραμμάτων δοκιμών λογισμικού.