Δοκιμή λευκού κουτιού
Το White Box Testing είναι μια τεχνική δοκιμής λογισμικού στην οποία δοκιμάζεται η εσωτερική δομή, ο σχεδιασμός και η κωδικοποίηση του λογισμικού για την επαλήθευση της ροής εισόδου-εξόδου και τη βελτίωση του σχεδιασμού, της χρηστικότητας και της ασφάλειας. Στη δοκιμή λευκού κουτιού, ο κώδικας είναι ορατός στους δοκιμαστές, οπότε ονομάζεται επίσης δοκιμή Clear box, Δοκιμή Open box, Transparent box testing, Code-based testing και Glass box testing.
Είναι ένα από τα δύο μέρη της προσέγγισης Box Testing στη δοκιμή λογισμικού. Το αντίστοιχο, δοκιμές Blackbox, περιλαμβάνει δοκιμές από μια εξωτερική άποψη ή από πλευράς τύπου τελικού χρήστη. Από την άλλη πλευρά, η δοκιμή White Box στη μηχανική λογισμικού βασίζεται στις εσωτερικές λειτουργίες μιας εφαρμογής και περιστρέφεται γύρω από εσωτερικές δοκιμές.
Ο όρος "WhiteBox" χρησιμοποιήθηκε λόγω της ιδέας "διάφανο κουτί". Το διαυγές πλαίσιο ή το όνομα WhiteBox συμβολίζει την ικανότητα να βλέπει μέσω του εξωτερικού κελύφους του λογισμικού (ή "κουτί") τις εσωτερικές λειτουργίες του. Παρομοίως, το "μαύρο κουτί" στο "Black Box Testing" συμβολίζει τη μη εμφάνιση των εσωτερικών λειτουργιών του λογισμικού, έτσι ώστε να μπορεί να ελεγχθεί μόνο η εμπειρία του τελικού χρήστη.
Σε αυτό το σεμινάριο δοκιμών λευκού κουτιού, θα μάθετε-
- Τι είναι το White Box Testing;
- Τι επαληθεύετε στο White Box Testing;
- Πώς εκτελείτε τη δοκιμή White Box;
- Παράδειγμα δοκιμής WhiteBox
- Τεχνικές δοκιμής λευκού κουτιού
- Τύποι δοκιμών λευκού κουτιού
- Εργαλεία δοκιμής λευκού κουτιού
- Πλεονεκτήματα της δοκιμής White Box
- Μειονεκτήματα της δοκιμής WhiteBox
Τι επαληθεύετε στο White Box Testing;
Η δοκιμή λευκού κουτιού περιλαμβάνει τη δοκιμή του κώδικα λογισμικού για τα ακόλουθα:
- Εσωτερικές τρύπες ασφαλείας
- Κατεστραμμένες ή κακώς δομημένες διαδρομές στις διαδικασίες κωδικοποίησης
- Η ροή συγκεκριμένων εισόδων μέσω του κώδικα
- Αναμενόμενη έξοδος
- Η λειτουργικότητα των βρόχων υπό όρους
- Δοκιμή κάθε δήλωσης, αντικειμένου και λειτουργίας σε ατομική βάση
Ο έλεγχος μπορεί να γίνει σε επίπεδο συστήματος, ολοκλήρωσης και μονάδας ανάπτυξης λογισμικού. Ένας από τους βασικούς στόχους της δοκιμής whitebox είναι η επαλήθευση της ροής λειτουργίας μιας εφαρμογής. Περιλαμβάνει τον έλεγχο μιας σειράς προκαθορισμένων εισόδων έναντι των αναμενόμενων ή των επιθυμητών εξόδων, έτσι ώστε όταν μια συγκεκριμένη είσοδος δεν έχει ως αποτέλεσμα την αναμενόμενη έξοδο, έχετε αντιμετωπίσει ένα σφάλμα.
Κάντε κλικ εδώ εάν το βίντεο δεν είναι προσβάσιμο
Πώς εκτελείτε τη δοκιμή White Box;
Για να σας δώσουμε μια απλοποιημένη εξήγηση της δοκιμής λευκού κουτιού, την έχουμε χωρίσει σε δύο βασικά βήματα . Αυτό κάνουν οι υπεύθυνοι δοκιμών κατά τη δοκιμή μιας εφαρμογής χρησιμοποιώντας την τεχνική δοκιμής λευκού κουτιού:
ΒΗΜΑ 1) ΚΑΤΑΝΟΗΣΤΕ ΤΟΝ ΚΩΔΙΚΟ ΠΗΓΗΣ
Το πρώτο πράγμα που συχνά θα κάνει ένας υπεύθυνος δοκιμών είναι να μάθει και να κατανοήσει τον πηγαίο κώδικα της εφαρμογής. Δεδομένου ότι η δοκιμή λευκού κουτιού περιλαμβάνει τη δοκιμή των εσωτερικών λειτουργιών μιας εφαρμογής, ο ελεγκτής πρέπει να είναι πολύ γνώστης στις γλώσσες προγραμματισμού που χρησιμοποιούνται στις εφαρμογές που δοκιμάζουν. Επίσης, το άτομο δοκιμών πρέπει να γνωρίζει πολύ καλά τις ασφαλείς πρακτικές κωδικοποίησης. Η ασφάλεια είναι συχνά ένας από τους πρωταρχικούς στόχους της δοκιμής λογισμικού. Ο υπεύθυνος δοκιμών θα πρέπει να μπορεί να εντοπίζει ζητήματα ασφάλειας και να αποτρέπει επιθέσεις από χάκερ και αφελείς χρήστες που ενδέχεται να εισάγουν κακόβουλο κώδικα στην εφαρμογή είτε εν γνώσει είτε άγνωστα.
Βήμα 2) ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΠΤΩΣΕΩΝ ΔΟΚΙΜΗΣ ΚΑΙ ΕΚΤΕΛΕΣΗ
Το δεύτερο βασικό βήμα για τη δοκιμή λευκού κουτιού περιλαμβάνει τον έλεγχο του πηγαίου κώδικα της εφαρμογής για σωστή ροή και δομή. Ένας τρόπος είναι να γράψετε περισσότερο κώδικα για να ελέγξετε τον πηγαίο κώδικα της εφαρμογής. Ο ελεγκτής θα αναπτύξει μικρές δοκιμές για κάθε διαδικασία ή σειρά διαδικασιών στην εφαρμογή. Αυτή η μέθοδος απαιτεί ότι ο υπεύθυνος δοκιμών πρέπει να έχει οικεία γνώση του κώδικα και συχνά γίνεται από τον προγραμματιστή. Άλλες μέθοδοι περιλαμβάνουν τη μη αυτόματη δοκιμή, τη δοκιμή και τη δοκιμή σφαλμάτων και τη χρήση εργαλείων δοκιμής, όπως θα εξηγήσουμε περαιτέρω σε αυτό το άρθρο.
Παράδειγμα δοκιμής WhiteBox
Εξετάστε το ακόλουθο κομμάτι κώδικα
Printme (int a, int b) {------------ Το Printme είναι μια συνάρτησηint αποτέλεσμα = a + b;Εάν (αποτέλεσμα> 0)Εκτύπωση ("Θετικό", αποτέλεσμα)ΑλλούΕκτύπωση ("Αρνητικό", αποτέλεσμα)} ----------- Τέλος του πηγαίου κώδικα
Ο στόχος της δοκιμής WhiteBox στη μηχανική λογισμικού είναι να επαληθεύσει όλους τους κλάδους αποφάσεων, βρόχους, δηλώσεις στον κώδικα.
Για να ασκήσετε τις δηλώσεις στο παραπάνω παράδειγμα δοκιμής λευκού κουτιού, θα ήταν οι περιπτώσεις δοκιμής WhiteBox
- A = 1, B = 1
- A = -1, B = -3
Τεχνικές δοκιμής λευκού κουτιού
Μια μεγάλη τεχνική δοκιμής Λευκού κουτιού είναι η ανάλυση Κάλυψης Κώδικα. Η ανάλυση Code Coverage εξαλείφει τα κενά σε μια δοκιμαστική σουίτα. Προσδιορίζει περιοχές ενός προγράμματος που δεν ασκούνται από ένα σύνολο δοκιμαστικών περιπτώσεων. Μόλις εντοπιστούν κενά, δημιουργείτε δοκιμαστικές θήκες για την επαλήθευση μη δοκιμασμένων τμημάτων του κώδικα, αυξάνοντας έτσι την ποιότητα του προϊόντος λογισμικού
Υπάρχουν διαθέσιμα αυτοματοποιημένα εργαλεία για την εκτέλεση ανάλυσης κάλυψης κώδικα. Ακολουθούν μερικές τεχνικές ανάλυσης κάλυψης που μπορεί να χρησιμοποιήσει ένας δοκιμαστής κουτιού:
Κάλυψη δήλωσης : - Αυτή η τεχνική απαιτεί κάθε δοκιμαστική δήλωση στον κώδικα να δοκιμάζεται τουλάχιστον μία φορά κατά τη διάρκεια της διαδικασίας δοκιμής της μηχανικής λογισμικού.
Κάλυψη υποκαταστήματος - Αυτή η τεχνική ελέγχει κάθε πιθανή διαδρομή (αν-αλλιώς και άλλους υπό όρους βρόχους) μιας εφαρμογής λογισμικού.
Εκτός από τα παραπάνω, υπάρχουν πολλοί τύποι κάλυψης όπως Κάλυψη Συνθήκης, Κάλυψη πολλαπλών συνθηκών, Κάλυψη διαδρομής, Κάλυψη λειτουργιών κ.λπ. Κάθε τεχνική έχει τα δικά της πλεονεκτήματα και προσπαθεί να δοκιμάσει (να καλύψει) όλα τα μέρη του κώδικα λογισμικού. Χρησιμοποιώντας την κάλυψη Statement and Branch επιτυγχάνετε γενικά 80-90% κάλυψη κώδικα που είναι επαρκής. Ακολουθούν σημαντικές τεχνικές δοκιμών WhiteBox:
- Κάλυψη δήλωσης
- Κάλυψη αποφάσεων
- Κάλυψη υποκαταστήματος
- Κάλυψη κατάστασης
- Κάλυψη πολλαπλών συνθηκών
- Κάλυψη μηχανών πεπερασμένης κατάστασης
- Κάλυψη διαδρομής
- Έλεγχος ροής ελέγχου
- Δοκιμή ροής δεδομένων
Ανατρέξτε σε αυτό το άρθρο για να μάθετε περισσότερες λεπτομέρειες https://www.guru99.com/code-coverage.html
Τύποι δοκιμών λευκού κουτιού
Η δοκιμή λευκού κουτιού περιλαμβάνει διάφορους τύπους δοκιμών που χρησιμοποιούνται για την αξιολόγηση της χρηστικότητας μιας εφαρμογής, ενός μπλοκ κώδικα ή ενός συγκεκριμένου πακέτου λογισμικού. Παρατίθενται παρακάτω -
-
Δοκιμή μονάδας: Είναι συχνά ο πρώτος τύπος δοκιμών που πραγματοποιείται σε μια εφαρμογή. Ο έλεγχος μονάδας πραγματοποιείται σε κάθε μονάδα ή μπλοκ κώδικα καθώς αναπτύσσεται. Ο έλεγχος μονάδας γίνεται ουσιαστικά από τον προγραμματιστή. Ως προγραμματιστής λογισμικού, αναπτύσσετε μερικές γραμμές κώδικα, μία λειτουργία ή ένα αντικείμενο και το δοκιμάζετε για να βεβαιωθείτε ότι λειτουργεί προτού συνεχίσετε τη δοκιμή μονάδας, βοηθώντας στον εντοπισμό των περισσότερων σφαλμάτων, στην αρχή του κύκλου ζωής ανάπτυξης λογισμικού. Τα σφάλματα που εντοπίζονται σε αυτό το στάδιο είναι φθηνότερα και εύκολο να διορθωθούν.
-
Έλεγχος για διαρροές μνήμης : Οι διαρροές μνήμης είναι οι κύριες αιτίες των πιο αργών εφαρμογών. Ένας ειδικός της QA που έχει εμπειρία στην ανίχνευση διαρροών μνήμης είναι απαραίτητος σε περιπτώσεις όπου έχετε μια εφαρμογή λογισμικού αργής εκτέλεσης.
Εκτός από τα παραπάνω, μερικοί τύποι δοκιμών αποτελούν μέρος των δοκιμών μαύρου κουτιού και λευκού κουτιού. Παρατίθενται ως εξής
- Δοκιμή διαπερατότητας λευκού κουτιού: Σε αυτήν τη δοκιμή, ο ελεγκτής / προγραμματιστής έχει πλήρη στοιχεία σχετικά με τον πηγαίο κώδικα της εφαρμογής, λεπτομερείς πληροφορίες δικτύου, σχετικές διευθύνσεις IP και όλες τις πληροφορίες διακομιστή στην οποία εκτελείται η εφαρμογή. Ο στόχος είναι να επιτεθεί ο κώδικας από πολλές οπτικές γωνίες για να εκθέσει απειλές ασφαλείας
- White Box Mutation Testing : Το Mutation testing χρησιμοποιείται συχνά για να ανακαλύψει τις καλύτερες τεχνικές κωδικοποίησης που χρησιμοποιούνται για την επέκταση μιας λύσης λογισμικού.
Εργαλεία δοκιμής λευκού κουτιού
Παρακάτω είναι μια λίστα με τα κορυφαία εργαλεία δοκιμής λευκού κουτιού.
- Parasoft Jtest
- EclEmma
- NUnit
- PyUnit
- HTMLUnit
- CppUnit
Πλεονεκτήματα της δοκιμής White Box
- Βελτιστοποίηση κώδικα εντοπίζοντας κρυφά σφάλματα.
- Οι θήκες δοκιμών λευκού κουτιού μπορούν να αυτοματοποιηθούν εύκολα.
- Οι δοκιμές είναι πιο διεξοδικές καθώς καλύπτονται συνήθως όλες οι διαδρομές κώδικα.
- Οι δοκιμές μπορούν να ξεκινήσουν νωρίς στο SDLC, ακόμη και αν το GUI δεν είναι διαθέσιμο.
Μειονεκτήματα της δοκιμής WhiteBox
- Η δοκιμή λευκού κουτιού μπορεί να είναι αρκετά περίπλοκη και ακριβή.
- Οι προγραμματιστές που συνήθως εκτελούν δοκιμαστικές θήκες λευκού κουτιού το μισούν. Ο έλεγχος του λευκού κουτιού από τους προγραμματιστές δεν είναι λεπτομερής μπορεί να οδηγήσει σε σφάλματα παραγωγής.
- Η δοκιμή λευκού κουτιού απαιτεί επαγγελματικούς πόρους, με λεπτομερή κατανόηση του προγραμματισμού και της εφαρμογής.
- Η δοκιμή λευκού κουτιού είναι χρονοβόρα, οι μεγαλύτερες εφαρμογές προγραμματισμού χρειάζονται χρόνο για να δοκιμάσουν πλήρως.
Τελικές σημειώσεις:
- Η δοκιμή λευκού κουτιού μπορεί να είναι αρκετά περίπλοκη. Η πολυπλοκότητα έχει να κάνει με την εφαρμογή που δοκιμάζεται. Μια μικρή εφαρμογή που εκτελεί μία απλή λειτουργία θα μπορούσε να δοκιμαστεί σε λευκό κουτί σε λίγα λεπτά, ενώ οι μεγαλύτερες εφαρμογές προγραμματισμού χρειάζονται ημέρες, εβδομάδες και ακόμη περισσότερο για να δοκιμάσουν πλήρως.
- Η δοκιμή λευκού κουτιού στη δοκιμή λογισμικού πρέπει να γίνεται σε μια εφαρμογή λογισμικού καθώς αναπτύσσεται μετά τη σύνταξη και ξανά μετά από κάθε τροποποίηση