Κωδικοποίηση και Έλεγχος Ορθότητας

Σχετικά έγγραφα
Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού: Αυτοµατοπιηµένος Έλεγχος Λογισµικού

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού:Γενική Επισκόπηση - επισηµάνσεις

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Έλεγχος Προγραμμάτων και Συστήματος

Εισαγωγή στη Σχεδίαση Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Τεχνολογία Λογισµικού Ι Κεφάλαιο 6

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Λύσεις Θεμάτων Επαναληπτικών Εξετάσεων Ενιαίου Λυκείου 2015

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Ερωτηματολόγιο. Τρόποι χορήγησης: α) Με αλληλογραφία β) Με απευθείας χορήγηση γ) Τηλεφωνικά

Συγγραφή Προγραμμάτων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ

Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

Ονοματεπώνυμο: Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Δομή Ακολουθίας και Επιλογής Κεφ: 2.1, 2.3, , 6.3, , 8.1, 8.1.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον»

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

Α. Ερωτήσεις Ανάπτυξης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Παρο υσίαση αλ γόριθμου

Η αβεβαιότητα στη μέτρηση.

710 -Μάθηση - Απόδοση

710 -Μάθηση - Απόδοση

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

Μεθοδική Ανάπτυξη Δικτυακής Υποδομής. Παρουσίαση στην ημερίδα για Σύγχρονες τάσεις στις Τηλεπικοινωνίες και Τεχνολογίες Αιχμής

Στόχος της ψυχολογικής έρευνας:

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

ΑΝ.ΕΦ. Γ ΛΥΚΕΙΟΥ Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται µεταξύ των λέξεων ΤΟΤΕ και και η εκτέλεση του προγράµµατος συνεχίζετα

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

ΤΕΧΝΙΚΕΣ ΔΕΙΓΜΑΤΟΛΗΨΙΑΣ ΓΕΩΡΓΙΟΣ ΛΑΓΟΥΜΙΝΤΖΗΣ, ΒΙΟΧΗΜΙΚΟΣ, PHD ΙΑΤΡΙΚΗΣ

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

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

8.4. Δραστηριότητες - ασκήσεις

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

Προσεγγιστικοί Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι

Ανάλυση Περιπτώσεων Χρήσης

HELLENIC OPEN UNIVERSITY School of Social Sciences ΜΒΑ Programme. Επιλογή δείγματος. Κατερίνα Δημάκη

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΣΤΑΤΙΣΤΙΚΗ ΤΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ. Κεφάλαιο 5 Συλλογή Δεδομένων & Δειγματοληψία

m + s + q r + n + q p + s + n, P Q R P Q P R Q R F G

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Δειγματοληψία στην Ερευνα. Ετος

Περίγραμμα ελεγκτικής διαδικασίας (audit process)

Αναδρομικός αλγόριθμος

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ 1. ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦ.

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Εισαγωγή στην Πληροφορική

Μαλούτα Θεανώ Σελίδα 1

Αριθμητική Λύση Μη Γραμμικών Εξισώσεων Η ΜΕΘΟ ΟΣ ΤΗΣ ΙΧΟΤΟΜΙΣΗΣ 01/25/05 ΜΜΕ 203 ΙΑΛ 2 1

Ανάπτυξη Εφαρμογών. (Μονάδες 8) Α2. α. να αναφέρετε ονομαστικά τα κριτήρια που πρέπει απαραίτητα να ικανοποιεί ένας αλγόριθμος.

ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΤΙΣ ΕΞΕΤΑΣΕΙΣ. 2. Τι περιλαμβάνει ο στενός και τι ο ευρύτερος δημόσιος τομέας και με βάση ποια λογική γίνεται ο διαχωρισμός μεταξύ τους;

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Προσδιορισμός Δείκτη Ποιότητας Κτηματολογικής Βάσης

Υπολογιστικό Πρόβληµα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Εισαγωγή στην. Γιάννης Σμαραγδάκης

Ανάλυση και Σχεδιασμός Μεταφορών Ι Ανάλυση Διακριτών Επιλογών

Δείχτες Επιτυχίας και Δείχτες Επάρκειας

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium iv

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

710 -Μάθηση - Απόδοση

[1]Ο βαθμός ενός μαθητή είναι δεδομένο, ο χαρακτηρισμός του ("άριστα". "λίαν καλός") είναι πληροφορία.

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού - Μετρικές

Τεχνολογία Λογισμικού

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 24/04/2019

Ι. Αναζήτηση και αναδοχή πελάτη (9.1) Βήματα στην αναζήτηση και αναδοχή πελάτη

Προσεγγιστικοί Αλγόριθμοι

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

Προγραμματισμός I (Θ)

Κανόνες του Εργαστηρίου Ψηφιακών Συστημάτων Βαθμολογία του Εργαστηρίου Υλικά και εξοπλισμός που θα χρησιμοποιηθούν σωστός τρόπος χειρισμού τους και

Ο σχεδιασμός και η. συγγραφή σεναρίων και το ζήτημα της επιλογής

Επιμόρφωση στους Δείκτες Επιτυχίας και Δείκτες Επάρκειας

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Μάθηση Απόδοση. Διαφοροποιήσεις στην Κινητική Συμπεριφορά. Μάθημα 710 Μάθηση - Απόδοση Διάλεξη 3η

Transcript:

Κωδικοποίηση και Έλεγχος Ορθότητας

περιεχόμενα περουσίασης Κωδικοποίηση Πρότυπα και διαδικασίες κωδικοποίησης Τεκμηρίωση Διαχείριση εκδόσεων Έλεγχος ορθότητας λογισμικού

κωδικοποίηση

διαχείριση εκδόσεων Ένα σύστημα διαχείρισης εκδόσεων προσφέρει: Την παροχή της αναίρεσης στην ομάδα ανάπτυξης. Διατήρηση διαφορετικών εκδόσεων ενός αρχείου του πηγαίου κώδικα. Ελεγχόμενη πρόσβαση στον πηγαίο κώδικα του λογισμικού. Παράλληλη εργασία των προγραμματιστών στην ίδια βάση κώδικα. Εύκολος εντοπισμός για το ποιος έχει κάνει αλλαγές στον κώδικα και γιατί. Την παραγωγή πολλών κυκλοφοριών (releases) του λογισμικού. Μία χρονομηχανή που είναι σε θέση να μας δώσει την ακριβή εικόνα του έργου σε μία συγκεκριμένη ημερομηνία.

αποθετήριο

βασική γραμμή (κορμός) Βασική γραμμή κώδικα Συγκρούσεις

διακλάδωση - συγχώνευση Διακλάδωση Συγχώνευση

έλεγχος ορθότητας Κατηγορίες σφαλμάτων αλγοριθμικά σφάλματα υπολογιστικά λάθη και λάθη ακρίβειας σφάλματα υπερφόρτωσης σφάλματα ορίων ή χωρητικότητας σφάλματα χρονισμού ή σφάλματα συντονισμού σφάλματα απόδοσης σφάλματα ανάκαμψης σφάλματα υλικού και λογισμικού συστήματος σφάλματα τεκμηρίωσης

στάδια ελέγχου

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

παράδειγμα: έλεγχος κλειστού κουτιού Έστω η μέθοδος calculatesalary(int month), της κλάσης Employee. Η μέθοδος υπολογίζει τη μισθοδοσία ενός υπαλλήλου για κάποιο μήνα του χρόνου. Η είσοδος σε αυτή τη μέθοδος είναι ένας ακέραιος ο οποίος αναπαριστά τον μήνα για τον οποίο υπολογίζεται η μισθοδοσία. Είναι προφανές ότι δεν μπορούμε να ελέγξουμε τη μέθοδο με όλους τους δυνατούς ακέραιους, αλλά δε θα πρέπει και πάλι να ελέγχουμε «στην τύχη».

διαμερισμός ισοδυναμίας Μία τεχνική η οποία χρησιμοποιείται πολύ συχνά για τον έλεγχο κλειστού κουτιού είναι ο διαμερισμός ισοδυναμίας (equivalence partitioning). Σύμφωνα με αυτή την τεχνική θα πρέπει να χωρίσουμε το χώρο των δυνατών εισόδων σε κλάσεις ισοδυναμίας (equivalence classes), έτσι ώστε η επιλογή μίας δοκιμασίας ελέγχου από κάθε διαφορετική κλάση να θεωρείται ως αντιπροσωπευτική για όλη την κλάση. Με αυτό τον τρόπο περιορίζουμε τον αριθμό των δοκιμασιών ελέγχου, έχοντας ταυτόχρονα αυξήσει την πιθανότητα να ανακαλύψουμε κάποιο σφάλμα.

παράδειγμα: διαμερισμός ισοδυναμίας Στο παράδειγμα της μεθόδου calculatesalary μπορούμε να χωρίσουμε το χώρο της εισόδου της μεθόδους σε τρεις κλάσεις. Η πρώτη κλάση περιλαμβάνει μία δοκιμασία ελέγχου για month μικρότερο του 1, η δεύτερη κλάση περιλαμβάνει μία δοκιμασία ελέγχου για month μεταξύ 1 και 12 και η τρίτη κλάση για month μεγαλύτερο του 12.

διαμερισμός ισοδυναμίας Οι κλάσεις ισοδυναμίας θα πρέπει να ικανοποιούν τα ακόλουθα κριτήρια: Κάθε πιθανή είσοδος ανήκει σε μια από τις κλάσεις Κανένα σύνολο δεδομένων εισόδου δεν ανήκει σε περισσότερες από μια κλάσεις Αν η εκτέλεση του προγράμματος δείχνει την ύπαρξη ενός σφάλματος, όταν ένα συγκεκριμένο μέλος μιας κλάσης χρησιμοποιείται ως είσοδος, τότε το ίδιο σφάλμα μπορεί να προκύψει και με τη χρησιμοποίηση κάθε άλλου μέλους της κλάσης ως εισόδου

ανάλυση συνοριακών τιμών Μία δεύτερη τεχνική είναι η ανάλυση των συνοριακών τιμών (boundary value analysis). Η εμπειρία στον έλεγχο του λογισμικού έχει δείξει ότι η πιθανότητα ανακάλυψης σφαλμάτων αυξάνεται, όταν οι δοκιμασίες ελέγχου σχετίζονται με τις συνοριακές συνθήκες (boundary conditions). Αν επανέλθουμε στο παράδειγμα της μεθόδου calculatesalary, οι συνοριακές τιμές οι οποίες θα πρέπει να συμπεριληφθούν στις δοκιμασίες ελέγχου είναι οι τιμές 0, 1, 12, 13.

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

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

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

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

καλύψεις στον έλεγχο ανοικτού κουτιού Υπάρχουν τρεις διαφορετικές κατηγορίες καλύψεων, έτσι ώστε να αξιολογήσουμε την κάλυψη του κώδικα για τις δοκιμασίες ελέγχου που επιλέγουμε. Κάλυψη εντολών (statement coverage): Κάθε εντολή της μονάδας εκτελείται τουλάχιστον μία φορά. Κάλυψη διακλαδώσεων (branch coverage): Για κάθε σημείο απόφασης στη μονάδα επιλέγεται κάθε διακλάδωση τουλάχιστον μία φορά. Κάλυψη διαδρομών (path coverage): Κάθε διακριτή διαδρομή του προγράμματος εκτελείται τουλάχιστον μια φορά.

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

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

συμπεράσματα Υπάρχει επίσης ο κίνδυνος να καταλήξουμε σε έναν έλεγχο του τι κάνει το πρόγραμμα και όχι του τι θα έπρεπε να κάνει. Όταν ελέγχουμε το λογισμικό, δε χρειάζεται να επιλέξουμε αποκλειστικά μεταξύ του ανοικτού και του κλειστού κουτιού. Μπορούμε να θεωρήσουμε αυτούς τους δύο τρόπους ελέγχου ως τα δύο άκρα μιας νοητής συνεχούς γραμμής ελέγχου. Κάθε προσέγγιση ελέγχου μπορεί να βρίσκεται κάπου ενδιάμεσα. Το ποια προσέγγιση θα διαλέξουμε εξαρτάται από ένα σύνολο παραγόντων στους οποίους συμπεριλαμβάνονται οι ακόλουθοι: ο αριθμός των πιθανών λογικών διαδρομών, η φύση των δεδομένων εισόδου, η έκταση και n ποσότητα των υπολογισμών που απαιτούνται και η πολυπλοκότητα των αλγορίθμων