icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

35
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ. Μαθήματος: 321-4002 http://www.icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

description

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ. Μαθήματος: 321-4002. http://www.icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD). Έλεγχος Λογισμικού - Διόρθωση. Ορισμός: - PowerPoint PPT Presentation

Transcript of icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

Page 1: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥΧειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ.

Μαθήματος: 321-4002 http://www.icsd.aegean.gr/kotis/softTech06/

Διδάσκων: Κων/νος Κώτης (BSc, PhD)

Page 2: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

2

Έλεγχος Λογισμικού - Διόρθωση Ορισμός:

Εξέταση λογισμικού με χρήση ειδικά σχεδιασμένων τεχνικών

Σκοπός: εύρεση και διόρθωση σφαλμάτων

Σφάλματα (2 είδη): Αντίφασης Αποτελεσμάτων και Απαιτήσεων

Τρόπος ελέγχου: Επικύρωση (validation) Υλοποίησης

Τρόπος ελέγχου: Επαλήθευση (verification)

Page 3: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

3

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

Βασική Παραδοχή: Δεν υπάρχει λογισμικό χωρίς σφάλματα !!!

Άρα, πετυχημένος έλεγχος είναι αυτός που εντοπίζει έστω και ένα !!!!

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

Page 4: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

4

Προγραμματισμός Ελέγχου

Προγραμματισμός σωστή εκτέλεση Καταγράφεται σε έγγραφο (πλάνο ελέγχου)

Το πλάνο ελέγχου (test plan) περιέχει: Το σκοπό του ελέγχου Στη στρατηγική ελέγχου Τους πόρους που θα απαιτηθούν

Πρότυπο του ΙΕΕΕ (Std 829-1991)

Page 5: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

5

Πλάνο ΕλέγχουΠρότυπο του ΙΕΕΕ (Std 829-1991)

Page 6: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

6

Τεχνικές Ελέγχου Βασική Αρχή:

Εκτέλεση τμήματος εφαρμογής με Γνωστά δεδομένα εισόδου Με γνωστά δεδομένα εξόδου (αναμενόμενα)

Αν τα αποτελέσματα δεν είναι τα αναμενόμενα, τότε υπάρχει σφάλμα στο τμήμα αυτό της εφαρμογής

Η διαδικασία αυτή καλείται «Δοκιμή» (test) του τμήματος.

Δοκιμές που γίνονται με διαφορετικά δοκιμαστικά δεδομένα (test data), θεωρούνται διαφορετικές

Η «Περίπτωση Ελέγχου» (test case) είναι το σύνολο τέτοιων δοκιμών για ένα συγκεκριμένο τμήμα ή απαίτηση από το λογισμικό

Page 7: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

7

Τεχνικές Ελέγχου Ροή Ελέγχου μονάδας λογισμικού

Page 8: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

8

Τεχνικές Ελέγχου Δεν είναι εφικτή η δοκιμή όλων των δυνατών

περιπτώσεων ελέγχου Απαιτείται επιλογή βάση στρατηγικής Βασικές στρατηγικές για την επιλογή των

περιπτώσεων ελέγχου Στρατηγική του «μαύρου κουτιού»

Βασίζεται στις προδιαγραφές του λογισμικού Δεν «κοιτάει» τον κώδικα

Στρατηγική του «γυάλινου κουτιού» Εξετάζεται ο κώδικας

Page 9: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

9

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Βασίζεται στις προδιαγραφές του λογισμικού Δεν «κοιτάει» τον κώδικα Εξετάζει μόνο τις εισόδους (Input) και τα αποτελέσματα

(output) που θα πρέπει να αντιστοιχούν σε αυτές (βάση των προδιαγραφών)

Δοκιμάζουμε αν είναι δυνατόν όλα τα πιθανά δεδομένα εισόδου που μπορεί να προκαλέσουν σφάλμα (πιθανές περιπτώσεις ελέγχου)

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

Page 10: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

10

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Page 11: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

11

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Προσέγγιση της «Ισοδύναμης Διαμέρισης» Εύρεση Κλάσεων Ισοδύναμων τιμών Εισόδου-Εξόδου

Δηλ. αν μία τιμή της κλάσης (δηλ. του συνόλου) προκαλεί λάθος, τότε και οι υπόλοιπες θα το κάνουν (Άκυρες κλάσεις) ενώ το αντίθετο (δεν προκαλούν λάθος δηλ. Έγκυρες)

Επιλογή των περιπτώσεων ελέγχου με βάση τις κλάσεις Μέχρι να ελεγχθούν όλες οι έγκυρες κλάσεις, ορίζεται μια

καινούργια περίπτωση ελέγχου που να καλύπτει όσο το δυνατόν περισσότερες ακάλυπτες έγκυρες κλάσεις

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

Page 12: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

12

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

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

υπάρχει μία έγκυρη κλάση (δηλ. το δεδομένο εισόδου ανήκει στο διάστημα αυτό), και υπάρχει μία ή δύο άκυρες κλάσεις (δηλ. το δεδομένο εισόδου δεν ανήκει στο διάστημα αυτό)

Αν μία συνθήκη εισόδου προδιαγράφει πλήθος αλλά και τη μέγιστη τιμή ορίζεται μια καινούργια περίπτωση ελέγχου που να καλύπτει του, υπάρχει μία έγκυρη κλάση (δηλ. το δεδομένο εισόδου είναι μεγαλύτερο του 0 και το πολύ ίσο με τη μέγιστη τιμή του), και υπάρχουν 2 άκυρες κλάσεις δηλ. το δεδομένο εισόδου δεν ανήκει στο διάστημα αυτό)

Page 13: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

13

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Προσέγγιση «Συνοριακών Τιμών» (boundary values) …είναι οι τιμές των άκρων μιας κλάσης ισοδύναμων τιμών Οι προγραμματιστές συνήθως λαμβάνουν υπόψη τυπικές τιμές

αλλά όχι τις συνοριακές (αρχή και τέλος των διαστημάτων) Απαιτείται έλεγχος μεθοδικός για αποφυγή σφαλμάτων

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

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

Page 14: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

14

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Προσέγγιση «Αιτίου - Αποτελέσματος» Με τη βοήθεια γράφου (cause and effect graphing) Αρχικοί κόμβοι είναι τα «αίτια», στους ενδιάμεσους έχει τους

«περιορισμούς», και στους τελικούς τα «αποτελέσματα». Με βάση το γράφο, κατασκευάζεται πίνακας απόφασης, από

τον οποίο μπορούν να παραχθούν περιπτώσεις ελέγχου

Κοπιαστική και σπάνια η χρήση της προσέγγισης αυτής

Page 15: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

15

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Προσέγγιση «Μαντέματος» Διορατικότητα Προγραμματιστή Ανεπίσημη Συχνά αποτελεσματική

Page 16: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

16

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Παραδείγματα

Page 17: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

17

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Παραδείγματα (Ισοδύναμη Διαμέριση)

Page 18: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

18

Τεχνικές Ελέγχου Στρατηγική του «μαύρου κουτιού»

Παραδείγματα (Συνοριακών τιμών)

Page 19: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

19

Τεχνικές Ελέγχου Στρατηγική του «γυάλινου ή άσπρου κουτιού»

Ορατή η δομή και ο τρόπος λειτουργίας του λογισμικού Μελέτη του κώδικα και της δομής του Επιλογή περιπτώσεων ελέγχου με βάση το λεπτομερές

σχέδιο της μονάδας λογισμικού προς έλεγχο + Κώδικα Κριτήρια Επιλογής («κριτήρια κάλυψης»):

Όλα τα ανεξάρτητα μονοπάτια εκτέλεσης του ελεγχόμενου κώδικα πρέπει να εκτελούνται τουλάχιστον μία φορά.

Οι εντολές (όλες οι διακλαδώσεις) των If-then-else πρέπει να εκτελούνται τουλάχιστον μια φορά

Οι βρόγχοι επανάληψης (for, while, repeat) θα πρέπει να εκτελούνται για οριακές τιμές επαναλήψεων αλλά και αριθμό επαναλήψεων εντός των ορίων

Page 20: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

20

Έλεγχος Λογισμικού Τέσσερα στάδια ελέγχου:

Page 21: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

21

Εκτέλεση Ελέγχου

Στάδιο 1ο: Έλεγχος μονάδας Κάθε μονάδα δοκιμάζεται μεμονωμένα Με οποιαδήποτε στρατηγική ή και με τις δύο Για κάθε μονάδα που ελέγχεται κατασκευάζουμε

μία βοηθητική μονάδα (Μη αυξητική τεχνική) Η βοηθητική (“driver”) «καλεί» την μονάδα, της

παρέχει δεδομένα εισόδου και τυπώνει τα αποτελέσματά της

Σημαντικός έλεγχος, δεν θα πρέπει να παραλείπεται.

Page 22: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

22

Εκτέλεση Ελέγχου - Στάδιο 1ο: Έλεγχος μονάδας

Page 23: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

23

Εκτέλεση Ελέγχου

Στάδιο 2ο: Έλεγχος συνένωσης Ελέγχονται σύνθετα τμήματα (περισσότερες από

μία μονάδες) Ομαλή συνεργασία μονάδων? Και οι δύο στρατηγικές Σημασία έχει η υλοποίηση των Interfaces των

μονάδων Πρέπει να εκτελεστούν όλες οι μονάδες ενός

τμήματος

Page 24: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

24

Εκτέλεση Ελέγχου - Στάδιο 2ο: Έλεγχος συνένωσης

Page 25: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

25

Εκτέλεση Ελέγχου

Στάδιο 2ο: Έλεγχος συνένωσης Εκτέλεση ελέγχου με την αυξητική τεχνική:

Κάθε μονάδα ελέγχεται με τον «έλεγχο μονάδας» Στη συνέχεια ενώνεται με το υπόλοιπο τμήμα και

εκτελείται ο «έλεγχος συνένωσης» Επανάληψη για κάθε μονάδα ενός τμήματος λογισμικού

Δύο είδη εκτέλεσης: top-down & bottom-up

Page 26: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

26

Εκτέλεση Ελέγχου Στάδιο 2ο: Έλεγχος συνένωσης (παράδειγμα)

Διάγραμμα δομής προγράμματος

Page 27: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

27

Εκτέλεση Ελέγχου Στάδιο 2ο: Έλεγχος συνένωσης (παράδειγμα)

Σειρά εκτέλεσης ελέγχου:Αυξητική τεχνική top-down

Page 28: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

28

Εκτέλεση Ελέγχου Στάδιο 3ο: Έλεγχος συστήματος

Έλεγχος ολόκληρης της εφαρμογής λογισμικού Δοκιμές, επιδείξεις Στρατηγική «μαύρου κουτιού» Έλεγχος λειτουργικών και μη απαιτήσεων Μη λειτουργικές:

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

Έλεγχοι πίεσης (μετρήσεις μνήμης, πόρων) Έλεγχοι όγκου δεδομένων (συναλλαγές με μεγάλο όγκο

δεδομένων, όχι στιγμιαία, αλλά σε σταθερή βάση) Έλεγχοι ασφάλειας (προσβασιμότητα) Έλεγχοι ανάκτησης (ανάνηψη από αιφνίδιες διακοπές

λειτουργίας)

Page 29: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

29

Εκτέλεση Ελέγχου Στάδιο 4ο: Έλεγχος αποδοχής

Υπεύθυνος για την επιλογή των περιπτώσεων ελέγχου είναι ο Πελάτης

Ο έλεγχος διεξάγεται στο χώρο του Πελάτη Ακολουθούνται διαδικασίες ελέγχου όμοιες με του

«ελέγχου συστήματος» αλλά σε μικρότερη κλίμακα (υποσύνολο)

Ο Πελάτης πρέπει να «πειστεί» όχι να «πιεστεί» Εκτελείται για όσο χρόνο χρειαστεί ώστε να

ικανοποιηθεί ο Πελάτης

Page 30: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

30

Αναφορές ελέγχου

Αναφορά Σφάλματος Λεπτομερής καταγραφή σφάλματος

Page 31: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

31

Αναφορές ελέγχου

Ημερολόγιο Ελέγχου

Page 32: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

32

Αναφορές ελέγχου Περιληπτική Έκθεση Ελέγχου

Page 33: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

33

Διόρθωση Σφαλμάτων

Debugging techniques Συλλογή στοιχείων για κάθε σφάλμα που

βοηθούν το debugging Μέθοδοι συγκέντρωσης στοιχείων:

Εισαγωγή σε διάφορα σημεία του κώδικα εντολές για εκτύπωση διαγνωστικών μηνυμάτων (τιμές μεταβλητών) «αμυντικός προγραμματισμός»

Τοποθέτηση σημείων διακοπής (breakpoints) του προγράμματος (με debugger)

Page 34: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

34

Ερωτήσεις – Απορίες - Συζήτηση

Page 35: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

35

Ασκήσεις – Πιθανά Θέματα Εξέτασης Όλα είναι πιθανά