Καθορίζουν το είδος των υπό δημιουργία περιπτώσεων ελέγχου.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προγραμματισμός PASCAL
Advertisements

Προγραμματισμός Ι Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Δομές Διακλάδωσης.
Μεθοδολογίες Προγραμματισμού ΙΙ Μ Ε Τ Ρ Ι Κ Ε Σ ΑΝΤΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΣΧΕΔΙΑΣΗΣ Ποιότητα Λογισμικού Παναγιώτης Σφέτσος, PhD
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος ε
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος δ
Γενική μορφή προγράμματος Pascal
Προγραμματισμός ΙΙ Διάλεξη #7: Περισσότερες Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Διαφάνειες παρουσίασης #3
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
National Technical University of Athens (NTUA), GreeceInstitute of Structural Analysis & Seismic Research (ISASR) Προχωρημένες υπολογιστικές τεχνικές και.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 12: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Β) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Διαφάνειες παρουσίασης #2
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΜΕΤΑΛΛΕΥΤΙΚΗ ΝΟΜΟΘΕΣΙΑ ΔΙΑΧΕΙΡΙΣΗΚΑΙ ΑΞΙΟΠΟΙΗΣΗ ΜΕΤΑΛΛΕΥΜΑΤΩΝ Τζίμας Σπύρος Μηχανικός Μεταλλείων – Μεταλλουργός ΕΜΠ.
Ο Άνθρωπος είναι ένα ον το οποίο φτιάχνει πολιτισμό και έχει βαθύ στοχασμό, συναισθήματα και σεβασμό στη ζωή των άλλων. Ορισμός.
Η καθημερινή ζωή στο Βυζάντιο Εργασία της μαθήτριας: Τζένη Αλουσάι στο μάθημα της Ιστορίας ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΗΤΡΙΑ:κα.Τσαούση.
1 Προγραμματισμός Ι Ενότητα 7 : Πίνακες I Αλέξανδρος Τζάλλας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Κάθετες και πλάγιες. Κάθετα και πλάγια τμήματα Έστω ευθεία ε και σημείο Α εκτός αυτής. ε Κ Β Α Από το Α διέρχεται μοναδική κάθετη. Έστω ζ μια άλλη ευθεία.
Test.
Test.
Διδακτική της Πληροφορικής
Εισαγωγή στον Προγ/μό Η/Υ
Κεφάλαιο 2 :: Σύνταξη των γλωσσών προγραμματισμού
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΟ ΝΕΟ ΓΥΜΝΑΣΙΟ ΠΔ 126/2016.
Η Γλώσσα Pascal Εντολή If
Ενότητα 12 : Ασκήσεις Επανάληψης Β’ Αλέξανδρος Τζάλλας
Εφαρμογές Υπολογιστών
ΤΗΣ ΣΧΟΛΙΚΗΣ ΚΟΙΝΟΤΗΤΑΣ ΓΙΑ ΟΡΘΟΛΟΓΙΚΗ ΔΙΑΧΕΙΡΙΣΗ ΔΙΑΤΡΟΦΙΚΩΝ ΕΠΙΛΟΓΩΝ
Ενότητα 5 : Υποπρογράμματα II Αλέξανδρος Τζάλλας
Ενότητα 1 : Εισαγωγικά Στοιχεία της Pascal Αλέξανδρος Τζάλλας
Ενισχυτική διδασκαλία
Δομές διακλάδωσης, επαναλήψεις, μέθοδοι
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Ενημέρωση για αλλαγές στο Γυμνάσιο
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
Πρότυπα Προγραμματισμού
ΓΛΩΣΣΕΣ & ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
Δομές Επανάληψης ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Η στήριξη και η κίνηση στους ζωικούς οργανισμούς
Ενότητα 8 : Πίνακες IΙ Αλέξανδρος Τζάλλας
Αντιμετώπιση Μαθησιακών Δυσκολιών στα Μαθηματικά
Η Κωνσταντινα και οι αραχνεσ τησ
Γλώσσα Προγραμματισμού V PHP
Οι αλλαγεΣ Στο ΓυμναΣιο
Κεφάλαιο 7 10/11/2018 Ξένιος Αντωνιάδης.
Μεταγλωττιστές Μεταγλωττιστής είναι το λογισμικό το οποίο πραγματοποιεί την μετάφραση ενός προγράμματος από μία γλώσσα σε μία άλλη. Γιατί ασχολούμαστε.
Η ΠΡΑΚΤΙΚΗ ΑΣΚΗΣΗ ΤΩΝ ΦΟΙΤΗΤΩΝ ΤΟΥ ΜΑΘΗΜΑΤΙΚΟΥ ΣΤΑ ΣΧΟΛΕΙΑ: ΜΙΑ ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ Εαρινό εξάμηνο
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Sắp thứ tự.
Εισαγωγή στον αλγεβρικό λογισμό
ΣΥΓΚΕΝΤΡΩΣΗ ΠΡΟΕΔΡΩΝ Π.Φ.Σ. 5 ΜΑΡΤΙΟΥ 2018.
11ο γυμνάσιο ΕΝΗΜΕΡΩΣΗ ΓΟΝΕΩΝ – ΚΗΔΕΜΟΝΩΝ Α΄ΤΑΞΗΣ …στη μεγαλύτερη βαθμίδα! … μεγαλύτερες απαιτήσεις! …νάτην και η εφηβεία!!
ΓΕΩΜΕΤΡΙΚΕΣ ΚΑΜΠΥΛΕΣ.
Мероприятие, посвященное восстанию студентов
Диффуз токсик букок 710-ГУРУХ ТАЛАБАСИ КАРИМОВА МУНИСА.
“ХХІ ғасыр өскіндері” интеллектуальдық сайыс 5-6 сынып
Екі векторды векторлық көбейту
«Επίπτωση-Ποσοστό» Επίπτωση-ποσοστό = Αριθμός νέων περιπτώσεων νοσήματος κατά τη διάρκεια της περιόδου παρακολούθησης (Προσωποστιγμές ατόμων-ΑΣΘΕΝΕΙΣ που.
Σύντομος οδηγός υποψηφίου δημάρχου/δημοτικού συμβούλου
Σύντομος οδηγός υποψηφίου δημάρχου/δημοτικού συμβούλου
Stack[ ] Queue[ ] 7 9 本試卷全部試題均須回答。
ΑΣΚΗΣΕΙΣ C.
Συμφωνία επί της ασφαλιστικής αξίας
Μεταγράφημα παρουσίασης:

Καθορίζουν το είδος των υπό δημιουργία περιπτώσεων ελέγχου. ΣΧΕΔΙΑΣΜΟΣ ΕΛΕΓΧΩΝ Προσεκτικός προγραμματισμός / σχεδίαση των παρακάτω βημάτων ελέγχου: Καθορίζουν το είδος των υπό δημιουργία περιπτώσεων ελέγχου. Προσδιορισμός στόχων ελέγχου. Σχεδίαση περιπτώσεων ελέγχου. Συγγραφή περιπτώσεων ελέγχου. Έλεγχος περιπτώσεων ελέγχου. Εκτέλεση ελέγχων. Αξιολόγηση αποτελεσμάτων ελέγχου. Κλειδί επιτυχίας του ελέγχου. Υπεύθυνη για την αντιπροσωπευτικότητα, και την λεπτομερή εξέταση εκ μέρους των περιπτώσεων ελέγχου των λειτουργιών που αποδεικνύουν την ορθότητα και εγκυρότητα του συστήματος. Η επιθεώρηση των περιπτώσεων ελέγχου στοχεύει στην επαλήθευση της ορθότητας, δυνατότητας υλοποίησης, παροχής επιθυμητού βαθμού κάλυψης και δοκιμασίας εκ μέρους τους της επιθυμητής λειτουργίας του εξεταζόμενου λογισμικού. Χ=5

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Αναλυτές ροής δεδομένων Στατική (static analysis) μη εκτέλεση προγράμματος Εργαλεία ανάλυσης κώδικα Ανάλυση Δυναμική (dynamic analysis) κατά την εκτέλεση προγράμματος Στατική ανάλυση Αυτόματη αξιολόγηση συστατικών (συντακτική καταλληλότητα). Επισήμανση συντακτικά λανθασμένων εντολών, δομών κώδικα που είναι επιρρεπείς σε σφάλματα, μη ορισμένων μεταβλητών. Αναλυτές κώδικα Για κάθε μεταβλητή κατασκευάζεται μία αλυσίδα ορισμών (definitions) δηλαδή μετατροπών του περιεχομένου της και χρήσεών της (references) <dr-chain> που αντανακλά τη ροή της μέσα στον εξεταζόμενο κώδικα. Η μελέτη των διάφορων dr-chains μπορεί ν’ αποκαλύψει ανωμαλίες της μορφής: r…. (άγνωστη η τιμή της μεταβλητής κατά την 1η χρήση της) …dd… (2 διαδοχικοί ορισμοί, συνεπώς άχρηστος ο 1ος) ….d (άχρηστος ο τελευταίος ορισμός) Αναλυτές ροής δεδομένων Παράδειγμα Μεταβλητή dr-chain x drrrr y drr z r a rr b d c ddr ….. int x, y, z, a, b, c; scanf(c); x = 7; y = x+a; b = x+y+a; c = y+2*x+z; printf(x,c); … Παρατηρηθείσες ανωμαλίες: Οι μεταβλητές z και a χρησιμοποιούνται χωρίς να έχουν αρχική τιμή. Η μεταβλητή c ορίζεται 2 φορές, συνεπώς η εντολή του 1ου ορισμού scanf(c) είναι άχρηστη. Ο ορισμός της μεταβλητής b είναι άχρηστος μιας και η b δεν χρησιμοποιείται στη συνέχεια.

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Εργαλεία ανάλυσης κώδικα Στατική ανάλυση Ελεγκτές δομής Δημιουργία γράφου ροής από τα παρεχόμενα συστατικά στην είσοδο του εργαλείου. Ο γράφος απεικονίζει τη λογική ροή του εξεταζόμενου λογισμικού. Ένας ελεγκτής δομής διερευνά πιθανά ελαττώματα δομής. Ένας ελεγκτής δομής μπορεί να: καθορίζει τη θέση όλων των βρόχων επισημάνει εντολές που δεν εκτελούνται ποτέ εντοπίσει διακλαδώσεις στο εσωτερικό βρόχων κ.ο.κ. Παράδειγμα αρχή i1 i<=max a[i] = s i  i+1 pos i τέλος false true Αντίστοιχος γράφος ροής ….. i  1; while i <= max do begin if a[i] = s then pos i; i  i+1; end; Οι γράφοι ροής συχνά συνοδεύονται από μία λίστα όλων των δυνατών μονοπατιών ενός προγράμματος, ώστε να δίνεται η δυνατότητα ελέγχου τους μέσω ορισμού κατάλληλων περιπτώσεων ελέγχου.

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Εργαλεία ανάλυσης κώδικα Στατική ανάλυση Εξέταση δομών δεδομένων, ορισμών δεδομένων και διασυνδέσεων συστατικών. Κατόπιν επισημαίνονται οι ακατάλληλες συνδέσεις μεταξύ συστατικών, οι συγκρουόμενοι ορισμοί δεδομένων και οι μη επιτρεπτές χρήσεις δεδομένων. Αναλυτές δεδομένων Παραδείγματα επισημάνσεων αναλυτών δεδομένων: κάποιος παρονομαστής παίρνει την τιμή 0 ορθή ή εσφαλμένη μεταβίβαση παραμέτρων (ορισμάτων) κατά την κλήση υποπρογραμμάτων κλπ Ελεγκτές ακολουθίας Έλεγχος ακολουθιών γεγονότων και επισήμανση κωδικοποίησης γεγονότων σε μη κατάλληλες ακολουθίες. Παράδειγμα επισήμανσης αναλυτών δεδομένων: κατά τον έλεγχο των συστατικών εισόδου – εξόδου ενός συστήματος κάποια αρχεία δεδομένων δεν ανοίχθηκαν πριν εφαρμοσθούν σ’ αυτά εργασίες ενημέρωσης ορισμένων εγγραφών τους Στην έξοδο πολλών εργαλείων στατικής ανάλυσης συμπεριλαμβάνονται μετρήσεις και χαρακτηριστικά δομής των εξεταζόμενων συστημάτων, π.χ. πλήθος εισόδων–εξόδων / αριθμός τελεστών-ορισμάτων / αριθμός σημείων απόφασης διάφορες μετρήσεις της δομικής πολυπλοκότητας του κώδικα πληροφορίες σχετικές με σφάλματα εσωτερικά ή διασύνδεσης στον κώδικα πλήθος μη αρχικοποιημένων μεταβλητών

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Εργαλεία ανάλυσης κώδικα Δυναμική ανάλυση Η φιλοσοφία σχεδίασης και λειτουργίας πολλών συστημάτων (π.χ. ταυτόχρονη υλοποίηση πολλών παράλληλων λειτουργιών ιδιαίτερα στα συστήματα πραγματικού χρόνου) δεν επιτρέπουν την πλήρη πρόβλεψη των δυνατών λειτουργιών τους σε κάθε περίπτωση και δυσκολεύουν την παραγωγή αντιπροσωπευτικών περιπτώσεων ελέγχου. Τα αυτοματοποιημένα εργαλεία δυναμικής ανάλυσης (παρατηρητές προγραμμάτων – program monitors) παρακολουθούν και ≠ αναφορά για τη συμπεριφορά των εξεταζόμενων προγραμμάτων κατά την εκτέλεσή τους. Επισημάνσεις παρατηρητών προγραμμάτων: πλήθος περιπτώσεων που καλείται ένα συστατικό πλήθος εκτελέσεων μιας γραμμής κώδικα ενεργοποίηση (ή μη) όλων των δυνατών διακλαδώσεων ενός σημείου απόφασης συνοπτική παρουσίαση ποσοστού καλυφθέντων εντολών / μονοπατιών / διακλαδώσεων από το σύνολο των εκτελεσθέντων περιπτώσεων ελέγχου πρόσθετες πληροφορίες για την αξιολόγηση της επίδοσης του συστήματος εκ μέρους των ελεγκτών, π.χ. - για συγκεκριμένες μεταβλητές στατιστικά αρχικής, τελικής, ελάχιστης / μέγιστης τιμής τους - αναφορά προσέγγισης ή υπέρβασης συγκεκριμένης τιμής από κάποια μεταβλητή μετά από ορισμό κατάλληλων σημείων διακοπής (breakpoints) μέσα στον κώδικα

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Εργαλεία ανάλυσης κώδικα Δυναμική ανάλυση Μέθοδοι δυναμικής ανάλυσης βασισμένες στην έννοια της κάλυψης Ποσοστό κάλυψης εκτελεσθέντων κόμβων του γράφου ροής (Test Effectiveness Ratio). εκτελεσθέντες κόμβοι ΠΚ1 = ---------------------------------------------- σύνολο κόμβων γράφου ροής Όλοι οι κόμβοι (εντολές) ενός προγράμματος εκτελούνται όταν το ποσοστό ΠΚ1 ισούται με 1. Παράδειγμα Γράφος ροής a b c d x=251 x≠251 Υποπρόγραμμα που σύμφωνα με τις προδιαγραφές δέχεται 2 ακέραιες τυπικές παραμέτρους (προσθετέους) x, y και επιστρέφει το (ακέραιο) άθροισμά τους sum: if x=251 then sum  x-y else sum  x+y Η συντριπτική πλειοψηφία των περιπτώσεων ελέγχου αφήνει τον κόμβο b ανεκτέλεστο αφού καλύπτει το μονοπάτι [a, c, d]. 3 ΠΚ1 = ---- 4 Μόνο η περίπτωση ελέγχου {x=251, y ≠ 0} οδηγεί στον εντοπισμό του λογικού λάθους.

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Εργαλεία ανάλυσης κώδικα Δυναμική ανάλυση Μέθοδοι δυναμικής ανάλυσης βασισμένες στην έννοια της κάλυψης καλυφθέντα βέλη ΠΚ2 = ---------------------------------------------- σύνολο βελών γράφου ροής Ποσοστό καλυφθέντων βελών του γράφου ροής. Πιο αξιόπιστη κάλυψη σε σχέση με το ΠΚ1 Παράδειγμα Γράφος ροής b c x<>0 x=1/x a x=1 x=0 . . . if x<>0 then x  1 x  1/x Η περίπτωση ελέγχου {x=16} εκτελεί το μονοπάτι [a, b, c, d] καλύπτοντας όλους τους κόμβους του γράφου (ΠΚ1=1) χωρίς να εντοπίζει το λογικό λάθος που προκύπτει αν ο κόμβος b δεν εκτελεστεί. 4 ΠΚ1 = ---- = 1 3 ΠΚ2 = ---- = 0,75 4 Μόνο η περίπτωση ελέγχου {x=0} οδηγεί σε διαίρεση με το 0 στον κόμβο d. {x=16}

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Εργαλεία ανάλυσης κώδικα Δυναμική ανάλυση Μέθοδοι δυναμικής ανάλυσης βασισμένες στην έννοια της κάλυψης καλυφθέντα ανεξάρτητα μονοπάτια ΠΚ3 = ---------------------------------------------- V(G) Ποσοστό πλήρους κάλυψης κόμβων απόφασης. Σκεπτικό Πιο αξιόπιστη κάλυψη σε σχέση με τα ΠΚ1 και ΠΚ2 αριθμός Mac Cabe Κάθε σημείο (εντολή) απόφασης του κώδικα πρέπει να καλυφθεί από τόσες διαφορετικές περιπτώσεις ελέγχου (σε ισάριθμες εκτελέσεις) όσο είναι και το πλεόνασμα ακμών αυτού του κόμβου, αυξημένο κατά 1. Πλήθος των απλών συνθηκών που εμφανίζονται σ’ ένα πρόγραμμα, αυξημένο κατά 1. Πλεόνασμα ακμών Πλήθος εξερχόμενων ακμών, μειωμένο κατά 1. Μόνο η περίπτωση ελέγχου {i = max} εκτελεί το μονοπάτι [a, b, d] και εντοπίζει το λογικό λάθος (εκτύπωση 0-στου στοιχείου του πίνακα α) αφού δεν εκτελεί το βρόχο while και αφήνει στη j την τιμή 0. Παράδειγμα Γράφος ροής b c d i>=max a j=0 i=i+1 j=j+1 i<max write (a[j] J  0; while i < max do begin i  i+1; j  j+1; end; write (a[j]); ….. Στον κώδικα ο πίνακας α έχει ορισθεί από το στοιχείο 1. Η περίπτωση ελέγχου {i = max-1} δεν εντοπίζει το λογικό λάθος. Αν και καλύπτει όλα τα βέλη (ΠΚ2=1) ενεργοποιώντας το μονοπάτι [a, b, c, b, d], εκτελεί μία μόνο φορά το βρόχο while δίνοντας στη μεταβλητή j την τιμή 1 και τερματίζει φυσιολογικά την εκτέλεση. Συνεπώς ο κόμβος b πρέπει να ελεγχθεί για όλες τις δυνατές τιμές αληθείας της συνθήκης που εκφράζει. Δηλαδή πρέπει να ορισθούν 2 περιπτώσεις ελέγχου (μία για κάθε εκτέλεση) που να καθιστούν διαδοχικά τη συνθήκη i < max αληθή και ψευδή (π.χ. {i = max-1} και {i = max}).

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Εργαλεία εκτέλεσης ελέγχων Αυτοματοποιούν το σχεδιασμό και την εκτέλεση των ίδιων των ελέγχων. Εργαλεία σύλληψης και επανάληψης / αναπαραγωγής Σε κάθε περίπτωση ελέγχου, δέχονται τις εισόδους του συστήματος και τις αναμενόμενες εξόδους από τις ενέργειες που ελέγχονται. Κατά την εκτέλεση του κώδικα τα εργαλεία αυτά συγκρίνουν τα αναμενόμενα αποτελέσματα με τα προκύπτοντα και παρέχουν στην ομάδα ελέγχων όλα τα δεδομένα που σχετίζονται με τις ασυμφωνίες που εντόπισαν. Ιδιαίτερα χρήσιμα για την επαλήθευση μιας διόρθωσης σφάλματος χωρίς την εισαγωγή νέων σφαλμάτων στον κώδικα. Εργαλεία δημιουργίας στελεχών και οδηγών Στην περίπτωση των οδηγών ελέγχου (προγράμματα εξέτασης συστατικών), τα εργαλεία αυτόματης δημιουργίας επεκτείνουν τις δυνατότητες τους: προετοιμασία των κατάλληλων μεταβλητών κατάστασης για κάποια περίπτωση ελέγχου και εκτέλεση αυτής της περίπτωσης προσομοίωση εισόδου από το πληκτρολόγιο και αποκρίσεων σε συνθήκες εισόδου που σχετίζονται με δεδομένα σύγκριση αναμενόμενων και αποκτούμενων αποτελεσμάτων παρακολούθηση εκτελεσθέντων μονοπατιών κατά την εκτέλεση επαναρύθμιση μεταβλητών (προετοιμασία) για επόμενη περίπτωση ελέγχου αλληλεπίδραση με λογισμικό εκσφαλμάτωσης για τον εντοπισμό και διόρθωση ενδεχόμενων σφαλμάτων κατά τη διάρκεια του ελέγχου Αυτοματοποιημένα περιβάλλοντα ελέγχου Περιβάλλοντα εκτέλεσης ελέγχων που συνδέονται με βάση δεδομένων ελέγχου, εργαλεία μετρήσεων, εργαλεία ανάλυσης κώδικα, επεξεργαστές κειμένου και εργαλεία προσομοίωσης και μοντελοποίησης για την πληρέστερη αυτοματοποίηση των διαδικασιών ελέγχου.

ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΑ ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ Εργαλεία δημιουργίας περιπτώσεων ελέγχου Αυτοματοποιούν τον λεπτομερή ορισμό των απαιτούμενων – ανά περίπτωση και μέθοδο - περιπτώσεων ελέγχου Εργαλεία δημιουργίας περιπτώσεων δομικού ελέγχου (structural test case generators) Ορίζουν περιπτώσεις ελέγχου με βάση το δομή του πηγαίου κώδικα. Απαριθμούν τις περιπτώσεις ελέγχου για τον έλεγχο εντολών / μονοπατιών / διακλαδώσεων. Πολλές φορές χρησιμοποιούν ευριστικές μεθόδους για την επίτευξη της καλύτερης κάλυψης. Εργαλεία ελέγχου ροής δεδομένων Βασίζουν τι περιπτώσεις ελέγχου τους στη ροή των δεδομένων που παράγουν οι χρησιμοποιούμενες μεταβλητές (αναλυτές ροής δεδομένων). Εργαλεία ελέγχου λειτουργιών Ορίζουν περιπτώσεις ελέγχου μετά από εφαρμογή όλων των πιθανών καταστάσεων που επηρεάζουν την ολοκλήρωση συγκεκριμένης λειτουργίας. Εργαλεία τυχαίου ελέγχου Παράγουν σύνολα τυχαίων δεδομένων ελέγχου, που χρησιμοποιούνται κυρίως στην υποστήριξη της μοντελοποίησης αξιοπιστίας ενός συστήματος.

εκτίμηση πλήθους εναπομεινάντων σφαλμάτων ΤΕΡΜΑΤΙΣΜΟΣ ΕΛΕΓΧΟΥ Παράδοξα ελέγχου … Shooman & Bolsky (1975) Συχνά, ο εντοπισμός τετριμμένων σφαλμάτων απαιτεί αρκετό χρόνο ενώ πολλά προβλήματα που πηγάζουν απ’ αυτά εμφανίζονται σε προχωρημένο στάδιο της διαδικασίας ελέγχου. Myers (1979) Σ’ ένα αυξανόμενο πλήθος εντοπιζόμενων σφαλμάτων αυξάνει και η πιθανότητα ύπαρξης πρόσθετων (μη εντοπισμένων) σφαλμάτων. Πιθανότητα ύπαρξης άλλων σφαλμάτων Πλήθος εντοπισθέντων σφαλμάτων Myers 1979 εκτίμηση πλήθους εναπομεινάντων σφαλμάτων τερματισμός διαδικασίας αναζήτησης σφαλμάτων απόκτηση βαθμού εμπιστοσύνης στο παραγόμενο λογισμικό πλήθος εναπομεινάντων σφαλμάτων μετά την παράδοση του λογισμικού προσπάθεια συντήρησης λογισμικού (εντοπισμός σφαλμάτων) ένδειξη

Κριτήριο τερματισμού: υπολογισμός σφαλμάτων λογισμικού ΤΕΡΜΑΤΙΣΜΟΣ ΕΛΕΓΧΟΥ Κριτήριο τερματισμού: υπολογισμός σφαλμάτων λογισμικού Εμφύτευση σφαλμάτων (fault seeding) Mils (1972) Σκεπτικό Από κάποιον ελεγκτή σκόπιμα εισάγεται στον προς εξέταση κώδικα γνωστό πλήθος σφαλμάτων. Ακολουθεί από άλλους ελεγκτές εντοπισμός όσο το δυνατό περισσότερων σφαλμάτων. Το πλήθος των μη εντοπισθέντων εμφυτευμένων σφαλμάτων αποτελεί ένδειξη του συνολικού πλήθους σφαλμάτων του κώδικα (εμφυτευμένων και μη). εντοπισθέντα εμφυτευμένα σφάλματα ----------------------------------------------------- σύνολο εμφυτευμένων σφαλμάτων εντοπισθέντα μη εμφυτευμένα σφάλματα --------------------------------------------------------- σύνολο μη εμφυτευμένων σφαλμάτων = Φιλοσοφία - Μειονέκτημα μεθόδου Τα εμφυτευόμενα σφάλματα είναι αντιπροσωπευτικά των πραγματικών (ιδίου τύπου και πολυπλοκότητας). Αύξηση πιθανότητας αντιπροσώπευσης εκτίμηση συνολικού πλήθους σφαλμάτων μέσω εκτίμησης της αποτελεσματικότητας δύο ανεξάρτητων ομάδων ελέγχου Ε1 και Ε2 Παράδειγμα Ε1: εντόπισε 25 σφάλματα Ε2: εντόπισε 30 σφάλματα Κοινά σφάλματα (εντοπισθέντα από Ε1 και Ε2): 15 Ζητείται μία εκτίμηση του συνολικού πλήθους σφαλμάτων στον κώδικα. Εκτίμηση αποτελεσματικότητας της Ε1: 15 / 30 = 0.5 Εκτίμηση αποτελεσματικότητας της Ε2: 15 / 25 = 0.6 Εκτίμηση συνολικού πλήθους σφαλμάτων: 15 / (0.5 * 0.6) = 50 σφάλματα

Κριτήριο τερματισμού: επίπεδο εμπιστοσύνης στο ελεγχόμενο λογισμικό ΤΕΡΜΑΤΙΣΜΟΣ ΕΛΕΓΧΟΥ Εμπιστοσύνη (confidence) ελεγχόμενου λογισμικού Ισχυρισμός το ελεγχόμενο λογισμικό δεν περιέχει σφάλματα με επίπεδο εμπιστοσύνης 95% Πιθανότητα να μη περιέχει κανένα σφάλμα το ελεγχόμενο λογισμικό είναι 0.95 Εκφράζει ποσοστιαία την πιθανότητα το λογισμικό να μην περιέχει κανένα σφάλμα. Υπολογισμός επιπέδου εμπιστοσύνης C S: σύνολο εμφυτευθέντων σφαλμάτων σε κάποιο λογισμικό 1, n > N C = S / (S – N + 1), n ≤ N N: ισχυριζόμενο πλήθος πραγματικών σφαλμάτων στο λογισμικό n: πλήθος εντοπισθέντων πραγματικών σφαλμάτων κατά τη διάρκεια των ελέγχων Παράδειγμα Ν = 0 (ισχυριζόμαστε ότι το λογισμικό δεν περιέχει κανένα σφάλμα) S = 10 (εμφυτεύσαμε 10 σφάλματα και τα εντοπίσαμε και τα 10 χωρίς να ανακαλυφθεί κάποιο γηγενές) Ζητείται το επίπεδο εμπιστοσύνης. C = 10 / 11 = 91% Παράδειγμα Απαίτηση από το συμβόλαιο για επίπεδο εμπιστοσύνης C = 98%) Ζητείται το πλήθος S των σφαλμάτων που πρέπει να εμφυτευθούν. S / (S – 0 + 1) = 98 / 100  S / (S + 1) = 98 / 100  S = 49 (το σύστημα πρέπει να ελεγχθεί μέχρι να εντοπισθούν και τα 49 – εφόσον δεν ανακαλυφθεί κάποιο γηγενές σφάλμα)

Έλεγχος εντολών / μονοπατιών / διακλαδώσεων ΤΕΡΜΑΤΙΣΜΟΣ ΕΛΕΓΧΟΥ Κριτήριο τερματισμού: πλήθος εντολών / μονοπατιών / διακλαδώσεων που έχουν απομείνει για έλεγχο Έλεγχος εντολών / μονοπατιών / διακλαδώσεων Πολλά αυτοματοποιημένα εργαλεία ελέγχου υπολογίζουν τιμές κάλυψης εντολών / μονοπατιών / διακλαδώσεων κατά τη διάρκεια εξέλιξης σχετικών ελέγχων και παρέχουν αντίστοιχες αναφορές για το πλήθος των μη καλυφθέντων (ο έλεγχος των οποίων προσδιορίζει και την ολοκλήρωση της ελεγκτικής διαδικασίας). Τεχνικές αναγνώρισης κώδικα επιρρεπή σε σφάλματα Κριτήριο τερματισμού: κώδικας επιρρεπής σε σφάλματα Για κάποιο συγκεκριμένο συστατικό μελετάται το ιστορικό σφαλμάτων που εντοπίστηκαν κατά την ανάπτυξη / συντήρηση παρόμοιων εφαρμογών (πλήθος σφαλμάτων συστατικού, μέγεθος συστατικού, αριθμός αποφάσεων / τελεστών / ορισμάτων / τροποποιήσεων συστατικού). Κατόπιν παράγονται εξισώσεις που αναδεικνύουν τα πιο επιρρεπή σε σφάλματα χαρακτηριστικά του συστατικού και «υποχρεώνουν» σε αναλυτικότερο έλεγχο αυτού του συστατικού. Ανάλυση δένδρων ταξινόμησης Porter & Selby (1990) Στατιστική τεχνική που αναλύει μέσω εξειδικευμένων εργαλείων πίνακες πληροφοριών από μετρήσεις χαρακτηριστικών των αναπτυσσόμενων συστατικών και καταλήγει σε ταξινόμησή τους μέσω της κατασκευής ενός δένδρου αποφάσεων. Το δένδρο αυτό βοηθά την ομάδα ελέγχων να αποφασίσει ποια από τα συστατικά ενός συστήματος περιέχουν πιθανότατα μεγάλο πλήθος σφαλμάτων. Παράδειγμα δένδρου ταξινόμησης μέγεθος - επιθεώρηση σχεδίου πλήθος αποφάσεων αλλαγές κώδικα <100 ΓΚ <5 ≥5 100-300 ΓΚ >300 ΓΚ ναι όχι + <15 ≥15 Αποφάσεις για συστατικά που μπορεί να είναι επιρρεπή σε σφάλματα - 100 – 300 γραμμές κώδικα (ΓΚ) και τουλάχιστον 15 αποφάσεις - πάνω από 300 ΓΚ, χωρίς να έχει γίνει επιθεώρηση σχεδίου και τουλάχιστον 5 αλλαγές