οκιμασία και πλάνο δοκιμασίας

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

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

12 Έλεχος και επαλήθευση λογισμικού

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

10α Έλεγχος και επαλήθευση λογισμικού

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

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

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

17 Έλεγχος και επαλήθευση λογισμικού

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

Τεχνολογία λογισμικού στην πράξη

Προδιαγραφές Απαιτήσεων Γιάννης Σμαραγδάκης

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

Αποτελέσματα προόδου

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

Η τιµή εξόδου κάποιας συνάρτησης µπορεί να είναι δείκτης, π.χ.

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Έλεγχος Λογισμικού. Software Testing

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Παράδειγμα #1 ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΕΠΙΜΕΛΕΙΑ: Ι. Λυχναρόπουλος

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

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

ΦΥΣ 145 Υπολογιστικές Μέθοδοι στη Φυσική. Πρόοδος 26 Μαρτίου 2007 Ομάδα 1 η

Κεφάλαιο 5ο: Εντολές Επανάληψης

ΦΥΣ 145 Υπολογιστικές Μέθοδοι στη Φυσική. Πρόοδος 26 Μαρτίου 2007 Ομάδα 1 η

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Επαλήθευση μοντέλου. (model Verification) Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων

Έλεγχος Συστήματος. Επαλήθευση (verification) Έλεγχος και Εγκατάσταση Συστήματος. Επαλήθευση (verification)

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

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

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Εισαγωγή στην Επιστήμη των Υπολογιστών

Θέματα ποιότητας (1/5)

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

LOGO. Εξόρυξη Δεδομένων. Δειγματοληψία. Πίνακες συνάφειας. Καμπύλες ROC και AUC. Σύγκριση Μεθόδων Εξόρυξης

Αρχές Προγραμματισμού Υπολογιστών

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ιαφάνειες παρουσίασης #5

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

ΕΦΑΡΜΟΣΜΕΝΗ ΣΤΑΤΙΣΤΙΚΗ Ι Συμπληρωματικές Σημειώσεις Δημήτριος Παντελής

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια συνάρτηση; ΣΥΝΑΡΤΗΣΕΙΣ. Δήλωση συνάρτησης sq. Παράδειγμα συνάρτησης: υπολογισμός τετραγώνου

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

Υπολογιστές Ι. Άδειες Χρήσης. Συναρτήσεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Πληρουορική Γ Γσμμασίοσ

Οδηγίες εγκατάστασης και χρήσης του Quartus

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

ιαφάνειες παρουσίασης #6

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

ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

ΜΑΗΣ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

Υπο-προγράμματα στη Fortran

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

ΚΕΦΑΛΑΙΑ XIII, XIV. Εκσφαλμάτωση προγράμματος - Κύκλος Ζωής Λογισμικού

Μεθοδολογίες Παραγωγής Λογισµικού

Πριν ξεκινήσουμε: Γά Γιάννης Σμαραγδάκης

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

Υποπρογράµµατα Συναρτήσεις. Στόχοι Μαθήµατος. Οι µαθητές να µπορούν:

Pascal - Βασικές Έννοιες

Διάλεξη 17: Έλεγχος Λογισμικού

Αρχιτεκτονική Νευρωνικών Δικτύων

ΦΥΣ 145 Μαθηματικές Μέθοδοι στη Φυσική. Γράψτε το ονοματεπώνυμο και αριθμό ταυτότητάς σας στο πάνω μέρος της αυτής της σελίδας.

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Εισαγωγή στην Αριθμητική Ανάλυση

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

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

Εισόδημα Κατανάλωση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ. Να μελετηθεί η λειτουργία του ακόλουθου κυκλώματος. Ποιος ο ρόλος των εισόδων του (R και S) και πού βρίσκει εφαρμογή; S Q

ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ Μεταπτυχιακό Τραπεζικής & Χρηματοοικονομικής

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Εισαγωγή στον Προγραμματισμό

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

Άσκηση εφαρμογής της μεθόδου Newton Raphson

Πανελλήνιες Εξετάσεις Ημερήσιων Γενικών Λυκείων. Εξεταζόμενο Μάθημα: Μαθηματικά Θετικής και Τεχνολογικής Κατεύθυνσης, Ημ/νία: 27 Μαΐου 2013

Pascal, απλοί τύποι, τελεστές και εκφράσεις

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΧΡΟΝΙΚΕΣ ΣΕΙΡΕΣ. Παπάνα Αγγελική

Άσκηση 1. O υπολογισμός να γίνει: α) με την τεχνική αθροίσματος σε μεταβλητή

ΟΙΚΟΝΟΜΕΤΡΙΑ. Παπάνα Αγγελική

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Οι μαθηματικές δραστηριότητες ως εργαλείο Διδασκαλίας και Αξιολόγησης. Ε.Κολέζα

Στατιστική Ι (ΨΥΧ-1202) ιάλεξη 3

πινάκων Σύγχρονα Προγραματιστικά Περιβάλλοντα ΠΕΡΙΕΧΟΜΕΝΑ

ιαδικασίες Τεχνολογίας Λογισμικού Γιάννης Σμαραγδάκης

Transcript:

οκιμασία και πλάνο ς Γιάννης Σμαραγδάκης

Η επιχειρεί να απαντήσει Κάνει το λογισμικό αυτό που υποτίθεται; Πότε μπορεί να έχει πρόβλημα; Πόσο γρήγορα τρέχει; Πόσο ακριβή είναι τα αποτελέσματα; Όταν έχει πρόβλημα, τι κάνει; Σε τι μπορώ να στηρίζομαι; Ποια είναι τα δυνατά/αδύναμα του στοιχεία;

Βασικοί ορισμοί Αστοχία (failure): ασυνέπεια μεταξύ συμπεριφοράς και προδιαγραφής Σφάλμα (error): διαφορά στην εσωτερική κατάσταση του προγράμματος από την αναμενόμενη. Μπορεί να οδηγήσει σε αστοχία ή όχι Ελάττωμα (fault): αιτία πιθανού σφάλματος μέσα στο λογισμικό οκιμασία: συστηματική (;) έρευνα στο χώρο εισόδων του προγράμματος σε αναζήτηση αστοχίας Debugging: ή ερεύνα για το ελάττωμα που προκάλεσε την αστοχία

Προδιαγραφές απαιτήσεων ο κώδικας πρέπει να υλοποιεί τις προδιαγραφές κώδικας

Προδιαγραφές απαιτήσεων τεράστιο άλμα ο κώδικας πρέπει να υλοποιεί τις προδιαγραφές κώδικας

Απλοϊκή θεώρηση Χώρος εισόδων Πρόγραμμα Χώρος εξόδων

Πιο ρεαλιστική θεώρηση πρόγραμμα χώρος εισόδων χωρισμένος σε ομαλούς υπό-χώρους

Η είναι δειγματοληψία του χώρου εισόδων Πρόβλημα: ποιος είναι ο χώρος εισόδων; και ποιες οι επιθυμητές έξοδοι; Υποπρόβλημα: Ο χώρος εισόδων είναι τεράστιος μια διάσταση για κάθε είσοδο κάθε διάσταση έχει πολλά στοιχεία (π.χ. 2**32 ακεραίους) Πόσο διαφορετικά; Ποιες διαφορές έχουν σημασία; Βασικό πρόβλημα: πώς να πάρουμε δείγματα από το χώρο εισόδων; Πότε σταματάμε; Είναι καλό ή κακό να βρίσκουμε ολοένα και άλλα ελαττώματα;

Ποιος είναι ο χώρος εισόδων; Πόσες είσοδοι παράγουν αστοχία; Προδιαγραφή Το sum_of_roots παίρνει μια αυθαίρετα μεγάλη ακολουθία πραγματικών αριθμών και υπολογίζει το άθροισμα των τετραγωνικών τους ριζών. Η ακολουθία τελειώνει με τον αριθμό 9999.99 Υλοποίηση Program sum_of_roots; Real sum, x, r; sum := 0; Do forever print sum; end; input x; if x = 9999.99 then exit else end do; r := sqrt(x); sum := sum + r;

Φάσεις ς Μοναδιαία / τμημάτων (unit/module testing) σύγκριση με το σχεδιασμό του τμήματος οκιμασία ενσωμάτωσης (integration testing) του συνδυασμού τμημάτων ώστε να επιβεβαιώσουμε τη συνέπειά του οκιμασία λογισμικού (software system testing) σύγκριση ενός ολοκληρωμένου λογισμικού με τις προδιαγραφές απαιτήσεων οκιμασία (system testing) εκτίμηση ενός ολοκληρωμένου λογισμικού και υλικού

Φάσεις ανάπτυξης Προδιαγραφή Αρχιτεκτονική Σχεδιασμός συγγραφή απαιτήσεων κώδικα λογισμικού ενσωμάτωσης μοναδιαία Φάσεις ς

Φτιάξτε πλάνα ς το συντομότερο δυνατόν Οι επιθυμητές συμπεριφορές πρέπει να ορίζονται από τις προδιαγραφές και όχι από τον κώδικα Η βοηθάει να αποσαφηνίσουμε τις προδιαγραφές και αργότερα να βρούμε εύκολα τα σφάλματα στον κώδικα

Ξεκινάμε με: Προδιαγραφή απαιτήσεων πλάνο ς

Προδιαγραφή απαιτήσεων πλάνο ς Αρχιτεκτονική πλάνο ς λογισμικού λογισμικού

Προδιαγραφή Αρχιτεκτονική Σχεδιασμός απαιτήσεων πλάνο πλάνο ς πλάνο ς ς ας λογισμικού ενσωμάτωσης λογισμικού ενσωμάτωσης

Φάσεις ανάπτυξης Προδιαγραφή Αρχιτεκτονική Σχεδιασμός συγγραφή απαιτήσεων κώδικα πλάνο πλάνο ς πλάνο πλάνο ς ς ας μοναδιαίας λογισμικού ενσωμάτωσης ς πλάνα ς λογισμικού ενσωμάτωσης μοναδιαία Φάσεις ς

Η μας δίνει γνώση με αντίτιμο κόστος Χρειαζόμαστε προσπάθεια ανάπτυξης δοκιμασιών, χρόνο εκτέλεσης και εξέτασής τους Αξίζει η γνώση το κόστος; Το πλάνο ς είναι κι αυτό μέρος του λογισμικού Αναπτύσεται και εκτιμάται με τον ίδιο τρόπο όπως το τελικό πρόγραμμα

Ανατομία πλάνου ς Συλλογή (πιθανόν ιεραρχική) από στοιχεία ς Στοιχεία ς (προδιαγραφή-υλοποίηση test cases) στόχοι, απαιτήσεις τι δοκιμάζεται τι πόροι χρειάζονται για τη (π.χ. βάσεις δεδομένων, χρήστες, κλπ.) πώς στήνεται η δεδομένα εισόδου αναμενόμενα αποτελέσματα χειρισμός λαθών... Παράδειγμα: ας φτιάξουμε πλάνο για τη συνάρτηση SQRT (περιπτώσεις, στήσιμο, αποτελέσματα, κτλ.) πιο δύσκολο: για σενάριο επιλογής μαθημάτων

ιαφανής/αδιαφανής (white-/black-box b testing) ti Αδιαφανής καμμία γνώση εσωτερικών χαρακτηριστικών της υλοποίησης η βασίζεται στην παρατήρηση εξωτερικής συμπεριφοράς ταιριάζει σε χρήστες, πελάτες, κτλ. ιαφανής χρησιμοποιεί γνώση της δομής του προγράμματος εξετάζει την εσωτερική κατάσταση συχνά χρησιμοποιείται από προγραμματιστές

ιαφανής/αδιαφανής (white-/black-box box testing) SELECTED INPUTS RESULTANT OUTPUTS DESIRED OUTPUT BLACK BOX TESTING SELECTED INPUTS RESULTANT OUTPUTS INTERNAL BEHAVIOR DESIRED OUTPUT SOFTWARE DESIGN WHITE BOX TESTING (CLEAR BOX TESTING)

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

Επαλήθευση και Επιβεβαίωση (verification and validation) μη-τυπικές απαιτήσεις επιβεβαίωση τυπικές απαιτήσεις επαλήθευση υλοποίηση