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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ενότητα 1 η : Ανάπτυξη Λογισμικού & Προγραμματισμός

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Βασικά Στοιχεία Διαχείρισης Έργων

Πληροφορική. Ενότητα 1 η : Εισαγωγή. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

ΕΠΑΛΗΘΕΥΣΗ (VERIFICATION) ΚΑΙ ΕΓΚΥΡΟΠΟΙΗΣΗ (VALIDATION) ΒΚ

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

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

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

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 8: Επαλήθευση και Έλεγχος Αξιοπιστίας. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

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

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

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

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

Ευφυής Προγραμματισμός

Συμβουλές περί προγραμματισμού και χρήσης Η/Υ Εργαστήρια Ηλεκτρονικών Υπολογιστών Τμήμα Μαθηματικών, ΕΚΠΑ Πέμπτη, 29 Νοεμβρίου 2018 Νικολόπουλος Ν. Χρ

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

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

Ποιότητα Λογισμικού και Πιστοποίηση

ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Πτυχιακή Εργασία CONTINUOUS INTEGRATION (ΣΥΝΕΧΗΣ ΕΝΣΩΜΑΤΩΣΗ)

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Προδιαγραφές Απαιτήσεων Επικύρωση Απαιτήσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

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

Ειδικά θέματα τεχνολογίας λογισμικού

Παιχνιδοποίηση στην εκπαίδευση Οφέλη & περιορισμοί

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Η Διαδικασία Σχεδιασμού Συστημάτων

AMI-Pay (GR-NSG), Μάρτιος TARGET Instant Payments Settlement (TIPS)

ΦΟΡΗΤΟΣ ΗΛΕΚΤΡΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΤΗΣ ΑΝΑ ΜΑΘΗΤΗ. Δημόσια Διαβούλευση. Παρακαλούμε για την υποβολή των παρατηρήσεών σας έως

Οι περιπτώσεις χρήσης

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

ΣΧΕΔΙΑΣΗ & ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ

3. Διαχείριση Εύρους Στόχοι Εύρος Δομή Εργασιών Πακέτα Εργασίας. Σύνοψη

W.P.1 - ΠΑΡΑΔΟΤΕΟ 1 : Τεύχος αποτελεσμάτων έρευνας

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων

Tεχνητή Νοημοσύνη Εφαρμογές

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων

Συστήµατα Τηλεκπαίδευσης: Κύκλος ζωής εκπαιδευτικού υλικού

Οι διαδικασίες ενος CMS είναι σχεδιασμένες για να:

Περιεχόμενα. Πρόλογος Σημείωμα του συγγραφέα Υποστηρικτικό υλικό... 22

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

Πληροφορική ΙΙ Ενότητα 1

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

Δομημένος Προγραμματισμός

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

Περιεχόμενα Εισαγωγή Τυποποίηση των δοκιμών Τύποι δοκιμών. Δοκιμές. Τυπικός σχεδιασμός υπηρεσιών και πρωτοκόλλων. 11 Ιουνίου

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή

σφαλμάτων Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν. Πατρών

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

ΣΥΜΒΑΣΗ στο πλαίσιο του έργου: «Δράσεις ανοιχτού ψηφιακού περιεχομένου, λογισμικού και υποδομών»

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ.

Δομή και Στόχοι του Μαθήματος - Εισαγωγή

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία. Ενότητα 7: Κανόνες Σχεδίασης Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΑΡΧΕΙΟ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ

Σχεδιασμός Επεξεργασίας και Τηλεπεξεργασίας

Οδηγός Παρακολούθησης καταγραφών συστήματος i. Οδηγός Παρακολούθησης καταγραφών συστήματος

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

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

Ηλεκτρονική διακυβέρνηση στην Ελλάδα Επιτυχίες, προβλήματα και ο δρόμος προς τον ψηφιακό μετασχηματισμό

Τεχνικές προδιαγραφές αναβάθμισης του Ιστότοπου του ΓΝ Άρτας

Σχεδίαση της Διεπαφής Ανθρώπου-Υπολογιστή

Σύστηµα Προσαρµοστικής. Μαθητών Ε' & ΣΤ' ηµοτικού (ενότητα: Λογιστικά Φύλλα) Παρταλάς Σωκράτης M27/11

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

MEDLAB: Mediterranean Living Lab for Territorial Innovation

Διαχείριση Έργων. Ενότητα 7: Εκτέλεση, παρακολούθηση και έλεγχος έργου

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 7: Η επιλογή των πιθανοτικών κατανομών εισόδου

Θέματα Προγραμματισμού Η/Υ

Τεχνολογία Λογισµικού Ι Κεφάλαιο 3 Μια αναλυτικότερη προσέγγιση στην δραστηριότητα 3.10

Elite 3E. Κύρια πλεονεκτήματα:

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Transcript:

Τεχνολογία λογισμικού στην πράξη Έλεγχος λογισμικού Διομήδης Σπινέλλης Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας Οικονομικό Πανεπιστήμιο Αθηνών dds@aueb.gr http://www.dmst.aueb.gr/dds @CoolSWEng 2016-06-27 Άσκηση (Έλεγχος λογισμικού) Σε ένα σημαντικό-δημοφιλές έργο λογισμικού: να αναγνωρίσετε τα επίπεδα υλοποίησης ελέγχων, να εξετάσετε τις τεχνικές ελέγχου που χρησιμοποιεί, να αναδείξετε μετρικές που αξιολογούν την πληρότητα των ελέγχων για το συγκεκριμένο έργο με βάση κατάλληλα χαρακτηριστικά του έργου (π.χ. μέγεθος κώδικα, καταχωρημένα λάθη, αριθμός σεναρίων ελέγχου κ.α.), και να προτείνετε συμπληρωματικές τεχνικές ελέγχου και κατάλληλες κατηγορίες εργαλείων για το συγκεκριμένο έργο. Ορισμός Δυναμική επαλήθευση ότι το πρόγραμμα έχει την αναμενόμενη συμπεριφορά σε ένα κατάλληλα επιλεγμένο πεπερασμένο σύνολο περιπτώσεων ελέγχου Ορολογία Επαλήθευση (verification): Υλοποιούμε σωστά το λογισμικό; Επικύρωση (validation): Υλοποιούμε το σωστό λογισμικό; Ελάττωμα (fault) (οδηγεί σε) Αποτυχία (failure) Επίπεδα ελέγχου Έλεγχος μονάδας (unit testing) Έλεγχος συνένωσης (integration testing) Έλεγχος συστήματος (system testing) 1

Στόχοι ελέγχου Έλεγχος αποδοχής (acceptance testing) Έλεγχος εγκατάστασης (installation testing) Έλεγχος άλφα / βήτα (alpha/beta testing) Έλεγχος παλινδρόμησης (regression testing) Έλεγχος απόδοσης (performance testing) Δοκιμές καταπόνησης (stress testing) Έλεγχος ανάκτησης (recovery testing) Έλεγχος διεπαφών (interface testing) Έλεγχος σχηματισμών (configuration testing) Έλεγχος χρηστικότητας (usability testing) Χρήσιμες τεχνικές ελέγχου Ad hoc Διερευνητικά Ακραίες τιμές Τυχαίες τιμές Κάλυψη των ροών ελέγχου Κάλυψη των ροών δεδομένων Εικασία λαθών Χρήσιμα δεδομένα ελέγχου Ιστορικό ελαττωμάτων Κατηγοριοποίηση ελαττωμάτων Αριθμός ελαττωμάτων σε σχέση με κώδικα Προσδιορισμός αξιοπιστίας από τις αποτυχίες Τερματισμός ελέγχου με βάση την αξιοπιστία Αποτίμηση προόδου των ελέγχων Με βάση την κάλυψη Με βάση την εύρεση τεχνητών ελαττωμάτων Πρακτικές ελέγχου Αποδοχή ελαττωμάτων ως επιτυχία Διεργασία και οδηγός ελέγχου Τεκμηρίωση Ανάπτυξη οδηγούμενη από ελέγχος (TDD) Εσωτερική ή εξωτερική ομάδα 2

Απόφαση oλοκλήρωσης με βάση αποτίμηση κινδύνου Ενέργειες ελέγχου Σχέδιο ελέγχου Δημιουργία περιπτώσεων ελέγχου Περιβάλλον ελέγχου Εκτέλεση ελέγχου Αποτίμηση αποτελεσμάτων Αναφορές Παρακολούθηση λαθών Παράδειγμα: Σχέδιο ελέγχου Ταυτότητα Εισαγωγή Στοιχεία προς έλεγχο Χαρακτηριστικά που θα ελεγχθούν Χαρακτηριστικά που δε θα ελεγχθούν Μεθοδολογία Κριτήρια αποδοχής Κριτήρια αναστολής και απαιτήσεις επανάληψης Παραδοτέα Εργασίες ελέγχου Περιβάλλον ελέγχου Ευθύνες (ανά ομάδα) Προσωπικό και εκπαίδευση Χρονοδιάγραμμα Αντιμετώπιση προβλημάτων Έγκριση Παράδειγμα τεκμηρίωσης Προδιαγραφές σχεδίου ελέγχου Προδιαγραφές περίπτωσης ελέγχου 3

Προδιαγραφές διαδικασίας διεκπεραίωσης ελέγχου Έκθεση διαβίβασης οντοτήτων προς έλεγχο Ημερολόγιο ελέγχου Περιληπτική έκθεση ελέγχου Εργαλεία ελέγχου Ζυγός ελέγχου (test harness) Γεννήτρια ελέγχου Εργαλεία εγγραφής και επανάληψης Προγράμματα σύγκρισης Συστήματα εκτέλεσης ελέγχου Εργαλεία ελέγχου κάλυψης Εργαλεία εκτέλεσης ελέγχου μονάδας Εργαλεία ιχνηλάτησης Εργαλεία ελέγχου παλινδρόμησης Εργαλεία ιχνηλάτησης Παράδειγμα: έλεγχος κάλυψης με gcov 4

Figure 1: Perl statement coverage Figure 2: Perl branch coverage 5

Παράδειγμα: Κάλυψη εντολών (Perl) Παράδειγμα: Κάλυψη διακλαδώσεων (Perl) Παράδειγμα: Έλεγχοι μονάδας Παράδειγμα: JUnit Άσκηση (Συντήρηση λογισμικού) Επιλέξτε ένα δημοφιλές-σημαντικό έργο ανοιχτού λογισμικού και μελετήστε τη συντήρησή του: αναγνωρίστε ενέργειες συντήρησης και αντίστοιχες τεχνικές, προτείνετε κατάλληλες μετρικές για την αξιολόγηση της παρούσας συντήρησης του έργου, αναγνωρίστε ανάγκες για περαιτέρω συντήρηση και αντίστοιχες τεχνικές, και ταξινομήστε στις κατηγορίες συντήρησης τις ενέργειες και ανάγκες που αναγνωρίσατε. 6

Figure 3: JUnit execution 7

Άδεια διανομής Εκτός αν αναφέρεται κάτι διαφορετικό, όλο το πρωτότυπο υλικό της σελίδας αυτής του οποίου δημιουργός είναι ο Διομήδης Σπινέλλης παρέχεται σύμφωνα με τους όρους της άδειας Creative Commons Αναφορά-Παρόμοια διανομή 3.0 Ελλάδα. 8