Αντικείμενο διαδικασίας ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Σε αντίθεση με τον έλεγχο μονάδων και ολοκλήρωσης (εξασφάλιση ότι ο κώδικας υλοποιεί σωστά το σχέδιο λογισμικού), ο έλεγχος συστήματος στοχεύει στην εξασφάλιση ότι το αναπτυχθέν σύστημα πραγματοποιεί τις απαιτήσεις του πελάτη. Στόχος Ανακάλυψη και εξάλειψη σφαλμάτων που μπορούν να οδηγήσουν σε ανεπιθύμητες καταστάσεις κατά τη χρήση του υλοποιηθέντος συστήματος. Αντικείμενο διαδικασίας Πηγές προέλευσης σφαλμάτων συστήματος Ανάλυση απαιτήσεων Λανθασμένες / ελλιπείς / ασαφείς απαιτήσεις Λανθασμένη / ασαφής μετάφραση Σχεδίαση συστήματος Λανθασμένες / ασαφείς προδιαγραφές σχεδίου Σχεδίαση προγράμματος Λανθασμένες / ασαφείς προδιαγραφές σχεδίου Παρερμηνεία στο σχέδιο του συστήματος Υλοποίηση προγράμματος Παρερμηνεία στο σχέδιο του συστήματος Λανθασμένη τεκμηρίωση / σύνταξη / σημασιολογία Έλεγχος μονάδων/ ολοκλήρωσης Ελλιπείς διαδικασίες ελέγχου Εισαγωγή νέων σφαλμάτων κατά τη διόρθωση παλιών Έλεγχος συστήματος Ελλιπείς διαδικασίες ελέγχου Λανθασμένα κείμενα τεκμηρίωσης Συντήρηση συστήματος Ακατάλληλοι ανθρώπινοι παράγοντες Εισαγωγή νέων σφαλμάτων κατά τη διόρθωση παλιών Αλλαγές στις απαιτήσεις
Ολοκληρωμένες μονάδες ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος λειτουργιών Έλεγχος επίδοσης Έλεγχος αποδοχής Έλεγχος εγκατάστασης Διαδικασία Ολοκληρωμένες μονάδες Απαιτήσεις λειτουργικότητας συστήματος Έλεγχος λειτουργίας Σύστημα που μπορεί να λειτουργήσει Άλλες απαιτήσεις λογισμικού Έλεγχος επίδοσης Επικυρωμένο / επαληθευμένο λογισμικό Προδιαγραφές απαιτήσεων πελάτη Έλεγχος αποδοχής Αποδεκτό σύστημα Περιβάλλον χρήστη Έλεγχος εγκατάστασης Σύστημα σε λειτουργία
Έλεγχος λειτουργιών (function test) Έλεγχος νήματος (thread testing) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος λειτουργιών (function test) ή Έλεγχος νήματος (thread testing) Βασίζεται στις λειτουργικές απαιτήσεις του συστήματος (αγνοεί τη δομή του και επικεντρώνεται στη λειτουργικότητά του). Κάθε λειτουργία εξετάζεται ξεχωριστά (δυνατή η εφαρμογή του πριν την κατασκευή ολόκληρου του συστήματος). Απαιτούμενα χαρακτηριστικά ελέγχου λειτουργιών μεγάλη πιθανότητα εντοπισμού σφαλμάτων χρήση ανεξάρτητης ομάδας ελέγχου σε σχέση με σχεδιαστές / προγραμματιστές γνωστές οι αναμενόμενες ενέργειες και η έξοδος έλεγχος έγκυρων και μη εισόδων απαγόρευση τροποποίησης συστήματος για ευκολότερο έλεγχό του Ύπαρξη κριτηρίων τερματισμού Συγκρίνει την πραγματική συμπεριφορά του συστήματος με τις απαιτήσεις (ο ορισμός περιπτώσεων ελέγχου βασίζεται στο έγγραφο απαιτήσεων).
Γράφοι αιτιών -αποτελεσμάτων (cause-and-effect-graph) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος λειτουργιών Μέθοδος αυτόματου ορισμού περιπτώσεων ελέγχου λειτουργιών συστήματος με βάση τις απαιτήσεις. Γράφοι αιτιών -αποτελεσμάτων (cause-and-effect-graph) IBM - Elmendorf ’73, ’74 Φιλοσοφία μεθόδου παράγει μη πλεονασματικές περιπτώσεις ελέγχου (μη επανεξέταση λειτουργιών) εντοπίζει ενδεχόμενες ατελείς / ασαφείς απαιτήσεις του συστήματος ελέγχει τη σημασιολογία των απαιτήσεων και τις επαναλαμβάνει ως λογικές συσχετίσεις μεταξύ εισόδων - εξόδων ή μεταξύ εισόδων - μετασχηματισμών του συστήματος παράγει το γράφο αιτιών – αποτελεσμάτων δηλαδή έναν λογικό γράφο απεικόνισης αυτών των συσχετίσεων οι κόμβοι που εκφράζουν τις εισόδους (αιτίες) τοποθετούνται στα αριστερά του γράφου και οι κόμβοι που εκφράζουν τους εξόδους – μετασχηματισμούς (αποτελέσματα) στα δεξιά του γράφου ο γράφος αιτιών – αποτελεσμάτων εμπλουτίζεται με πληροφορίες σχετικές με κανόνες σύνταξης και περιορισμούς Συμβολισμοί Αν Α τότε Β Α Β C AND: Αν (Α και Β) τότε C OR: Αν (Α ή Β) τότε C NAND: Αν όχι (Α και Β) τότε C NOR: Αν (όχι Α ούτε Β) τότε C NOT: Αν (όχι Α) τότε Β
Γράφοι αιτιών -αποτελεσμάτων (cause-and-effect-graph) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος λειτουργιών Γράφοι αιτιών -αποτελεσμάτων (cause-and-effect-graph) Μερικοί επιπρόσθετοι συμβολισμοί Α Β Ακριβώς ένα από τα Α, Β μπορεί να κληθεί Ε Ι Το πολύ ένα από τα Α, Β μπορεί να κληθεί Τουλάχιστον ένα από τα Α, Β μπορεί να κληθεί Φιλοσοφία μεθόδου (συνέχεια) ο γράφος αιτιών- αποτελεσμάτων μετατρέπεται στη συνέχεια σε πίνακα αποφάσεων, κάθε στήλη του οποίου αντιστοιχεί σε μία περίπτωση ελέγχου κάθε αιτία και κάθε αποτέλεσμα αντιστοιχεί σε μία γραμμή του πίνακα αποφάσεων για τον ορισμό των στηλών του πίνακα καταγράφουμε για κάθε αποτέλεσμα όλους τους συνδυασμούς γραμμών (αιτιών) που οδηγούν σ’ αυτό κάθε στήλη (περίπτωση ελέγχου) του πίνακα αποφάσεων παριστάνει ένα σύνολο καταστάσεων των αιτιών / αποτελεσμάτων την κατάσταση μιας αιτίας τη συμβολίζουμε με Ι όταν αυτή καλείται ή είναι αληθής, με S όταν δεν καλείται ή είναι ψευδής και με Χ όταν δεν μας ενδιαφέρει αν αυτή καλείται ή όχι οι δυνατές καταστάσεις ενός αποτελέσματος είναι P όταν αυτό είναι «παρόν» (παράγεται) ή A («απόν», δεν παράγεται) με τη χρήση γράφων αιτιών – αποτελεσμάτων μειώνεται αισθητά το πλήθος των περιπτώσεων ελέγχου που πρέπει να εξετασθούν (για n αιτίες, το σύνολο των περιπτώσεων ελέγχου που προκύπτει είναι 2n) επιπρόσθετη μείωση περιπτώσεων ελέγχου είναι δυνατή θέτοντας βαθμό προτεραιότητας για καθένα συνδυασμό αιτών.
Γράφοι αιτιών -αποτελεσμάτων (cause-and-effect-graph) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος λειτουργιών Παράδειγμα Σύστημα παρακολούθησης στάθμης νερού που στέλνει αναφορά σε υπηρεσία για τον έλεγχο υπερχείλισης. Γράφοι αιτιών -αποτελεσμάτων (cause-and-effect-graph) Απαίτηση για μία λειτουργία αποστολή μηνύματος στο χειριστή του φράγματος σχετικά με την ασφάλεια της στάθμης νερού. ΕΙΣΟΔΟΣ: Σύνταξη λειτουργίας: ΣΤΑΘΜΗ (Α, Β) με Α το ύψος του νερού (m) πίσω από το φράγμα και Β εκατοστά βροχόπτωσης τελευταίου 24ωρου. Αντίστοιχη περιγραφή σχεδίου ΕΠΕΞΕΡΓΑΣΙΑ: Η συνάρτηση υπολογίζει αν η τρέχουσα στάθμη του νερού βρίσκεται μέσα σε κάποια όρια ασφάλειας, είναι πολύ χαμηλή ή πολύ υψηλή. «ΣΤΑΘΜΗ = ΑΣΦΑΛΗΣ» για αποτέλεσμα ασφαλές ή χαμηλό «ΣΤΑΘΜΗ = ΥΨΗΛΗ» για αποτέλεσμα υψηλό «ΜΗ ΑΠΟΔΕΚΤΗ ΣΥΝΤΑΞΗ» για μη επιτρεπτό αποτέλεσμα του υπολογισμού ΕΞΟΔΟΣ: Εμφάνιση στην οθόνη ενός από τα μηνύματα Οι πρώτοι 6 χαρακτήρες της εντολής «ΣΤΑΘΜΗ». Η εντολή ακολουθείται από 2 ακριβώς παραμέτρους εντός παρενθέσεων που διαχωρίζονται με κόμμα. Οι παράμετροι Α, Β είναι πραγματικοί αριθμοί ώστε η στάθμη του νερού να υπολογίζεται ότι είναι ΧΑΜΗΛΗ. Οι παράμετροι Α, Β είναι πραγματικοί αριθμοί ώστε η στάθμη του νερού να υπολογίζεται ότι είναι ΑΣΦΑΛΗΣ. Οι παράμετροι Α, Β είναι πραγματικοί αριθμοί ώστε η στάθμη του νερού να υπολογίζεται ότι είναι ΥΨΗΛΗ. Διάκριση απαιτήσεων σε «αιτίες» Εμφανίζεται στην οθόνη το μήνυμα «ΣΤΑΘΜΗ = ΑΣΦΑΛΗΣ». Εμφανίζεται στην οθόνη το μήνυμα «ΣΤΑΘΜΗ = ΥΨΗΛΗ». Εμφανίζεται στην οθόνη το μήνυμα «ΜΗ ΑΠΟΔΕΚΤΗ ΣΥΝΤΑΞΗ». Διάκριση απαιτήσεων σε «αποτελέσματα»
Παράδειγμα (συνέχεια) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος λειτουργιών Παράδειγμα (συνέχεια) Κατασκευή γράφου αιτιών - αποτελεσμάτων Γράφοι αιτιών -αποτελεσμάτων (cause-and-effect-graph) Οι αιτίες και τα αποτελέσματα γίνονται κόμβοι του γράφου. Οι αιτίες τοποθετούνται στην αριστερή πλευρά του διαγράμματος και τα αποτελέσματα στη δεξιά σχηματίζοντας λογικές συσχετίσεις μέσω των διαθέσιμων συμβολισμών. Επειδή η λειτουργία περιέχει έναν έλεγχο στις παραμέτρους ώστε να εξασφαλισθεί ότι αυτές μεταφέρονται κατάλληλα, εκφράζουμε αυτόν τον έλεγχο με τους κόμβους: 1. Η εντολή είναι συντακτικά αποδεκτή και 2. Οι παράμετροι είναι συντακτικά αποδεκτές. Οι διακεκομμένες γραμμές στα αριστερά του γράφου δηλώνουν ότι ακριβώς μία από τις αιτίες 3, 4, και 5 μπορεί να κληθεί σε κάθε περίπτωση (μιας και το ζεύγος τιμών των Α, Β είναι μοναδικό κάθε φορά). 1 10 2 11 3 4 5 Ε3 Ε1 Ε2
Παράδειγμα (συνέχεια) Έλεγχος λειτουργιών ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Παράδειγμα (συνέχεια) Έλεγχος λειτουργιών Δημιουργία και ερμηνεία του πίνακα αποφάσεων Γράφοι αιτιών -αποτελεσμάτων (cause-and-effect-graph) 2 συνδυασμοί γραμμών προς το Ε1 1 συνδυασμός γραμμών προς το Ε2 2 γραμμές προς το Ε3 Περίπτωση ελέγχου 1η 2η 3η 4η 5η Αιτία 1 Ι S Αιτία 2 Χ Αιτία 3 I X Αιτία 4 Αιτία 5 Αποτέλεσμα1 P A Αποτέλεσμα2 Αποτέλεσμα3 3 πρώτες περιπτώσεις ελέγχου: αν οι αιτίες 1 και 2 είναι αληθείς (αποδεκτή εντολή και παράμετροι) το αποτέλεσμα εξαρτάται από το κατά πόσο οι αιτίες 3, 4 ή 5 είναι αληθείς. 4η περίπτωση ελέγχου: αν η αιτία 1 είναι ψευδής δεν μας ενδιαφέρει η τιμή των υπολοίπων αιτιών (ήδη καθορισμένο το αποτέλεσμα). 5η περίπτωση ελέγχου: αν η αιτία 1 είναι αληθής και η αιτία 2 ψευδής, δεν μας ενδιαφέρει η τιμή των υπολοίπων αιτιών αφού το αποτέλεσμα έχει ήδη καθορισθεί.
Έλεγχοι πίεσης (stress tests) Έλεγχοι όγκου (volume tests) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος επίδοσης Επικεντρώνεται στον τρόπο με τον οποίο εκτελούνται οι λειτουργίες του συστήματος. Η επίδοση συστήματος εκτιμάται σε σχέση με τις προδιαγραφές απόδοσης που καθορίζονται από τον πελάτη (μη λειτουργικές απαιτήσεις). Περιλαμβάνει έλεγχο τόσο του υλικού όσο και του λογισμικού του συστήματος. Στόχος Σχεδιάζεται / διευθύνεται από την ομάδα ελέγχου με συμμετοχή μηχανικών ειδικευμένων στο υλικό και τα αποτελέσματά του παρουσιάζονται στον πελάτη. Προσωπικό υλοποίησης Είδη ελέγχων επίδοσης Έλεγχοι πίεσης (stress tests) Το υπό αξιολόγηση σύστημα λειτουργεί σε οριακή καταπόνηση για κάποιο διάστημα και εκτιμάται η ανταπόκρισή του σε κάθε προδιαγραφή των μη λειτουργικών απαιτήσεων (π.χ. ανταπόκρισή του σε ταυτόχρονη ενεργοποίηση συγκεκριμένου αριθμού χρηστών / συσκευών). Έλεγχοι όγκου (volume tests) Εστιάζουν στη δυνατότητα των υπό έλεγχο συστημάτων να χειρίζονται μεγάλες ποσότητες δεδομένων (π.χ. ικανότητα - λόγω ορισμού του μεγέθους τους - δομών δεδομένων να χειρίζονται όλες τις δυνατές καταστάσεις, ικανότητα αποθήκευσης - λόγω μεγέθους – όλων των αναμενόμενων δεδομένων εκ μέρους των οριζόμενων πεδίων / εγγραφών / αρχείων. Εξέταση δυνατότητας κατάλληλης αντίδρασης του συστήματος κατά το χειρισμό δομών με το μέγιστο προβλεπόμενο μέγεθος.
Είδη ελέγχων επίδοσης (συνέχεια) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος επίδοσης Είδη ελέγχων επίδοσης (συνέχεια) Έλεγχοι σχηματισμών (configuration tests) Το υπό αξιολόγηση σύστημα λειτουργεί σε οριακή καταπόνηση για κάποιο διάστημα και εκτιμάται η ανταπόκρισή του σε κάθε προδιαγραφή των μη λειτουργικών απαιτήσεων (π.χ. ανταπόκρισή του σε ταυτόχρονη ενεργοποίηση συγκεκριμένου αριθμού χρηστών / συσκευών). Έλεγχοι συμβατότητας (compatibility tests) Θεμελιώδους σημασίας σε συστήματα που μέσω διασυνδέσεων επικοινωνούν με άλλα συστήματα. Εξετάζουν αν οι λειτουργίες διασύνδεσης υλοποιούνται με βάση τις απαιτήσεις του συστήματος (π.χ. εξέταση ταχύτητας / ακρίβειας μεταφοράς δεδομένων από / προς μία βάση δεδομένων). Έλεγχοι παλινδρόμησης (regression tests) Εφαρμόζονται σε συστήματα που αντικαθιστούν άλλα υπάρχοντα και εξασφαλίζουν ότι η επίδοση του νέου συστήματος είναι τουλάχιστον στα ίδια επίπεδα μ’ αυτή του παλιού. Υποχρεωτικά εφαρμόζονται σε περιπτώσεις ανάπτυξης συστημάτων σε επίπεδα. Έλεγχοι ασφάλειας (security tests) Στοχεύουν στην ικανοποίηση των απαιτήσεων ασφάλειας ενός συστήματος. Αντικείμενο εξέτασης τα χαρακτηριστικά του συστήματος που αφορούν στη διαθεσιμότητα, αρτιότητα και διατήρηση της εμπιστευτικότητας δεδομένων / υπηρεσιών.
Είδη ελέγχων επίδοσης (συνέχεια) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος επίδοσης Είδη ελέγχων επίδοσης (συνέχεια) Έλεγχοι χρονισμού (timing tests) Αξιολογούν χρονικές επιδόσεις του εξεταζόμενου συστήματος σε σχέση με τις υπάρχουσες απαιτήσεις (π.χ. χρόνος απόκρισης προς το χρήστη, χρόνος εκτέλεσης μιας λειτουργίας, πιστοποίηση εκτέλεσης μιας συνδιαλλαγής στο προβλεπόμενο χρονικό διάστημα κλπ.). Συχνά συνδυάζονται με ελέγχους πίεσης για να διαπιστωθεί κατά πόσο οι απαιτήσεις χρονισμού ικανοποιούνται σε συνθήκες οριακής (υψηλής) δραστηριότητας του συστήματος. Έλεγχοι περιβάλλοντος (environmental tests) Πιστοποιούν τη σωστή λειτουργία του εξεταζόμενου συστήματος στις (προβλεπόμενες από τις προδιαγραφές) συνθήκες του χώρου εγκατάστασής του (π.χ. ανοχή σε θερμοκρασία, υγρασία, φορητότητα, παρουσία ηλεκτρικών / μαγνητικών πεδίων, πτώση τάσης κλπ.). Έλεγχοι ποιότητας (quality tests) Από τους σπουδαιότερους και δυσκολότερους ελέγχους. Εξετάζουν την αξιοπιστία, συντηρησιμότητα και διαθεσιμότητα του συστήματος. Βασικό τους αντικείμενο ο υπολογισμός του μέσου όρου μεταξύ των δυσλειτουργιών, της διόρθωσης και της εύρεσης και αποκατάστασης σφάλματος. Έλεγχοι αποκατάστασης (recovery tests) Εξετάζουν τη συμπεριφορά (δυνατότητα κατάλληλης ανάκαμψης) του εξεταζόμενου συστήματος σε παρουσία σφαλμάτων ή συνθήκες απώλειας πόρων (π.χ. απώλεια δεδομένων / ισχύος / συσκευών – υπηρεσιών).
Είδη ελέγχων επίδοσης (συνέχεια) ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ Έλεγχος επίδοσης Είδη ελέγχων επίδοσης (συνέχεια) Έλεγχοι συντήρησης (maintenance tests) Αποφαίνονται για την ανάγκη μεταχείρισης διαγνωστικών εργαλείων / διαδικασιών με σκοπό τον εντοπισμό των πηγών προέλευσης σφαλμάτων (π.χ. διαγνωστικά προγράμματα, χάρτες μνήμης, αναφορές συνδιαλλαγών, διαγράμματα κυκλωμάτων κ.α.). Έλεγχοι τεκμηρίωσης (documentation tests) Πιστοποιούν τόσο την ύπαρξη όσο και την καταλληλότητα / ακρίβεια / ευαναγνωσία του περιεχομένου των προβλεπόμενων εγγράφων τεκμηρίωσης για το εξεταζόμενο σύστημα (οδηγοί χρήστη / συντήρησης, τεχνικά έγγραφα κλπ.). Έλεγχοι ανθρώπινου παράγοντα (human factors tests) Εξετάζουν το βαθμό ικανοποίησης των απαιτήσεων που σχετίζονται με τον τρόπο διασύνδεσης χρήστη – συστήματος (πχ. οθόνες, μηνύματα, μορφές μεταβίβασης δεδομένων). Περιλαμβάνουν επίσης και τον έλεγχο ικανοποίησης των προβλεπόμενων απαιτήσεων του συστήματος αναφορικά με τις διαδικασίες διαχειριστών και χρηστών (έλεγχοι ευχρηστίας – usability tests). Σε σχέση με τους ελέγχους λειτουργιών πραγματοποιούνται δυσκολότερα ιδίως όταν οι προβλεπόμενες απαιτήσεις δεν είναι σαφείς και λεπτομερείς. Χαρακτηριστικό ελέγχων επίδοσης