Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΕΛΕΓΧΟ ΛΟΓΙΣΜΙΚΟΥ"— Μεταγράφημα παρουσίασης:

1 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΕΛΕΓΧΟ ΛΟΓΙΣΜΙΚΟΥ
(SOFTWARE TESTING) Με την ολοκλήρωση της συγγραφής κώδικα των συστατικών λογισμικού. Ακολουθεί τη φάση της αναθεώρησης απαιτήσεων και σχεδίου οι οποίες διερευνούν ενδελεχώς ενδεχόμενη ύπαρξη προβλημάτων στα αρχικά στάδια της ανάπτυξης. Προϋποθέτει ορθότητα προδιαγραφών. Φάση ενεργοποίησης Εντοπισμός σφαλμάτων (faults) λογισμικού ή εμφάνιση δυσλειτουργιών σε κάποια πλευρά υλοποίησης του συστήματος. σαν αποτέλεσμα διαδικασιών ελέγχου. Εστίαση – Επιτυχία ελέγχου Εντοπισμός σφαλμάτων (όχι κατ’ ανάγκη της διόρθωσής τους) στα πλαίσια της παράδοσης ποιοτικού συστήματος στον πελάτη. Σκοπός ελέγχου Διαχείριση, εκ μέρους του λογισμικού, πλήθους καταστάσεων που διαχειρίζονται πολύπλοκους μαθηματικούς τύπους, ενέργειες και αλγορίθμους. Οι προβλεπόμενες ενέργειες του υπό ανάπτυξη συστήματος δεν ταυτίζονται στη σκέψη του προγραμματιστή και του πελάτη (με ευθύνη του δεύτερου συνήθως). Αυξημένη πολυπλοκότητα του υπό ανάπτυξη έργου τόσο λόγω του μεγέθους του όσο και λόγω του πλήθους των εμπλεκόμενων σ’ αυτό ατόμων. Αιτίες εμφάνισης σφαλμάτων

2 Έννοια δυσλειτουργίας (failure) Αιτίες δυσλειτουργίας
Απόκλιση του λογισμικού από τις προβλεπόμενες μέσω των απαιτήσεων λειτουργίες του (απομάκρυνσή του από τη ζητούμενη συμπεριφορά). Αποτέλεσμα ενός η περισσοτέρων σφαλμάτων σε κάποια πλευρά υλοποίησης του συστήματος. Έννοια δυσλειτουργίας (failure) Παράδειγμα: Σε αντίθεση με τις προδιαγραφές το λογισμικό αποκρίνεται σε μη εξουσιοδοτημένο χρήστη. Λανθασμένες ή ελλιπείς προδιαγραφές (μη ακριβής και πλήρης έκφραση των απαιτήσεων του πελάτη). Κάποιες απαιτήσεις στις προδιαγραφές είναι αδύνατο να υποστηριχθούν από το προβλεπόμενο υλικό και λογισμικό. Ενδεχόμενη ύπαρξη σφάλματος στο σχέδιο του συστήματος (προηγούμενο παράδειγμα). Ενδεχόμενη ύπαρξη σφάλματος στο σχέδιο του προγράμματος. Αιτίες δυσλειτουργίας Παράδειγμα: Στις περιγραφές των συστατικών του λογισμικού περιέχεται αλγόριθμος που δεν χειρίζεται σωστά τον έλεγχο πρόσβασης. Λανθασμένος κώδικας. (ακατάλληλη ή ανεπαρκής - μη ολοκληρωμένη - υλοποίηση κάποιου αλγορίθμου).

3 (fault identification)
Αναγνώριση σφάλματος (fault identification) Διαδικασία καθορισμού του σφάλματος (σφαλμάτων) που προκάλεσαν τη δυσλειτουργία. Διόρθωση (correction) ή Εξάλειψη (removal) σφάλματος Διαδικασία πραγματοποίησης αλλαγών στο σύστημα με σκοπό την εξάλειψη σφαλμάτων. Τύποι σφαλμάτων Αλγοριθμικό (algorithmic) Η «λογική» ενός συστατικού ή ο αλγόριθμος δεν παράγουν την κατάλληλη έξοδο για μία δεδομένη είσοδο λόγω προβλήματος στα βήματα επεξεργασίας. Εντοπισμός με τον έλεγχο έδρας -desk checking - (ανάγνωση προγράμματος) ή με εισαγωγή αναμενόμενων (κατά τη λειτουργία του προγράμματος) «αντιπροσώπων» δεδομένων εισόδου από τις διάφορες κλάσεις δεδομένων. Τυπικά αλγοριθμικά σφάλματα: διακλάδωση που γίνεται πολύ νωρίς ή αργά, έλεγχος λανθασμένης συνθήκης, παράλειψη αρχικοποίησης μεταβλητών ή καθορισμού σταθερών βρόχου, παράλειψη ελέγχου απαιτούμενης συνθήκης (π.χ. διαίρεση με το μηδέν), σύγκριση μεταβλητών διαφορετικού τύπου δεδομένων κ.α.. Συντακτικό (syntax) Μη ορθή σύνταξη των εντολών της χρησιμοποιούμενης γλώσσας (στην πλειοψηφία τους εντοπίζονται από τους μεταγλωττιστές).

4 Υπολογισμού (computation) και Ακρίβειας (precision)
Η σύνταξη κάποιου μαθηματικού τύπου είναι λανθασμένη ή τα αποτελέσματά του δεν χαρακτηρίζονται από τον απαιτούμενο βαθμό ακρίβειας. Παράδειγμα: Συνύπαρξη ακέραιων και σταθερής /κινητής υποδιαστολής μεταβλητών σε εντολή. Πρόκληση απώλειας ακρίβειας από ακατάλληλη χρήση δεδομένων κινητής υποδιαστολής, απροσδόκητη αποκοπή ψηφίων ή σειρά εκτέλεσης εντολών. Τεκμηρίωσης (documentation) Οι περιγραφές της τεκμηρίωσης παραβιάζονται από τις υλοποιούμενες λειτουργίες (λόγω σφαλμάτων) κατά την εκτέλεση του προγράμματος. Τεκμηρίωση: Συνήθως εξάγεται από το σχέδιο του προγράμματος και περιγράφει με σαφήνεια το σύνολο των προβλεπόμενων λειτουργιών του. Αυτού του είδους τα σφάλματα μπορούν να πολλαπλασιάσουν άλλα σφάλματα μέσα στον κύκλο ζωής του λογισμικού. Πίεσης (stress) ή Υπερφόρτωσης (overload) Σε ορισθείσες δομές δεδομένων επιχειρείται να φορτωθούν δεδομένα μεγαλύτερου μεγέθους από την καθορισμένη χωρητικότητα.. Με βάση τις προδιαγραφές απαιτήσεων (αριθμός χρηστών, συσκευών, ανάγκη επικοινωνίας στο σύστημα), ο σχεδιαστής προσαρμόζει τα χαρακτηριστικά του συστήματος και τα θέτει στο σχέδιο προγράμματος σαν όρια μήκους ουρών, μεγέθους καταχωρητών, διαστάσεων πινάκων κ.α.).

5 Χωρητικότητας (capacity) ή Ορίων / boundary)
Η απόδοση του συστήματος καθίσταται προβληματική (μη αποδεκτή) σε συνθήκες λειτουργίας που προσεγγίζουν ή υπερβαίνουν τα προκαθορισμένα όρια. Παράδειγμα: Αριθμός προβλεφθέντων και ενεργών συσκευών. Χωρητικότητα αποθηκευτικών μέσων σε σχέση με τον αριθμό προσβάσεων στο δίσκο, εργασιών που τρέχουν παράλληλα κλπ.). Χρονισμού (timing ) και Συγχρονισμού (coordination) Ο κώδικας που συγχρονίζει τις διάφορες διεργασίες που εκτελούνται ταυτόχρονα ή με αυστηρά καθορισμένη σειρά (σε συστήματα πραγματικού χρόνου - real time) είναι ανεπαρκής. Εντοπίζονται και διορθώνονται δύσκολα λόγω: δυσκολίας πρόβλεψης όλων των πιθανών καταστάσεων του συστήματος αδυναμίας επανάληψης της εσφαλμένης κατάστασης του συστήματος λόγω εμπλοκής πολλών παραγόντων στο χρονισμό και την επεξεργασία. Διεκπεραιωτικής ικανότητας (throughput) και Επίδοσης (performance) Η ταχύτητα του συστήματος αποκλίνει από την προδιαγραφόμενη στις απαιτήσεις. Οι χρονικοί περιορισμοί στην επίδοση του συστήματος τίθενται από τον πελάτη και δεν προκύπτουν από τον συγχρονισμό των διεργασιών.

6 Υλικού και Λογισμικού Συστήματος (hardware and system software)
Ανάκτησης (recovery) Συμβαίνουν σε εμφανίσεις δυσλειτουργιών του συστήματος κατά τις οποίες η συμπεριφορά του διαφέρει από την επιθυμητή (σχεδιαστές) ή την απαιτούμενη (πελάτης). Παράδειγμα: Μετά από ενδεχόμενη διακοπή ισχύος κατά τη διάρκεια της επεξεργασίας το σύστημα θα πρέπει να επαναφέρει όλα τα αρχεία στην προ της εμφάνισης της δυσλειτουργίας κατάστασή τους (αποδεκτή ανάκτηση κανονικής λειτουργίας είτε μέσω εφεδρικής πηγής ενέργειας είτε διατηρώντας αρχείο καταγραφής λειτουργιών για συνέχιση της επεξεργασίας με την επάνοδο της ισχύος). Υλικού και Λογισμικού Συστήματος (hardware and system software) Η λειτουργία του προμηθευόμενου (διαθέσιμου) υλικού ή λογισμικού του συστήματος δεν ανταποκρίνεται στις συνθήκες λειτουργίας και τις διαδικασίες που περιγράφονται στην έγγραφη τεκμηρίωση. Παράδειγμα: Για την επικοινωνία ενός συστήματος, ο επιλεγείς οδηγός (driver) δεν παράγει τις εντολές που αναμένονται ή/και δεν διαβάζει τις εντολές που λαμβάνει από ένα συγκεκριμένο modem Προτύπων και Διαδικασιών (standards and procedure) Ενδεχόμενα να μην επηρεάζουν πάντοτε την εκτέλεση των προγραμμάτων αλλά η ύπαρξή τους (λόγω μη τήρησης προτύπων / διαδικασιών του οργανισμού) δημιουργούν περιβάλλοντα υπόθαλψης σφαλμάτων καθώς το σύστημα υποβάλλεται σε ελέγχους και γίνονται τροποποιήσεις.

7 Προσέγγιση παρακολούθησης σφαλμάτων.
Ορθογώνια Ταξινόμηση Σφάλματος (ODC - Orthogonal Defect Classification) Προσέγγιση παρακολούθησης σφαλμάτων. Η εμπειρία από την καταγραφή παρατηρούμενων τύπων σφαλμάτων (σ’ οποιοδήποτε σημείο του συστήματος κι όχι μόνο στον κώδικα) διευκολύνει την πρόβλεψη τύπων σφαλμάτων που πιθανά περιέχει ο κώδικας). Ομάδες συγκεκριμένου τύπου εμφανιζόμενων σφαλμάτων μπορούν να υποδεικνύουν ποικίλες ενέργειες, από την επανεξέταση του σχεδίου μέχρι τον επαναπροσδιορισμό των απαιτήσεων του αναπτυσσόμενου συστήματος; Τρέχουσα πρακτική πρόληψης σφαλμάτων: στατιστική μοντελοποίηση σφαλμάτων και αιτιολογική ανάλυση. Ορθογώνια Ταξινόμηση Σφάλματος: Τα σφάλματα κατηγοριοποιούνται σχηματίζοντας συλλογικά μία εικόνα που δείχνει ποια μέρη της διαδικασίας ανάπτυξης του συστήματος χρήζουν προσοχής, ως υπεύθυνα αναπαραγωγής πολλών σφαλμάτων. Η μορφή της ταξινόμησης πρέπει να είναι ανεξάρτητη από προϊόν και οργανισμό και εφαρμόσιμη σ’ όλα τα στάδια ανάπτυξης. Με την ODC οι κατασκευαστές λογισμικού αναγνωρίζουν εκτός από τον τύπο του σφάλματος και το αν αυτό εισήχθη ή δημιουργήθηκε από παράλειψη. Σφάλμα παράλειψης (fault of omission) Λείπει τμήμα κώδικα από ένα συστατικό (π.χ. μη αρχικοποίηση μεταβλητής) Σφάλμα διάπραξης (fault of commission) Λανθασμένη ενέργεια (π.χ. λανθασμένη τιμή αρχικοποίησης μεταβλητής)

8 Ορθογώνια Ταξινόμηση Σφάλματος ΙΒΜ Ram Chillarege κ.α. - 1992
Ορθογωνιότητα: Ένα σχήμα ταξινόμησης είναι ορθογώνιο αν κάθε τμήμα που ταξινομείται ανήκει σε μία μόνο κατηγορία. Η ύπαρξη σφαλμάτων σε περισσότερες από μία τάξεις – κατηγορίες δεν οδηγεί σε ακριβή σύνοψη πληροφοριών σχετικά με τον αριθμό των σφαλμάτων σε κάθε τάξη. Αντίστοιχα η ταξινόμηση σφαλμάτων πρέπει να είναι σαφής ώστε η ταξινόμηση συγκεκριμένου σφάλματος από διαφορετικούς κατασκευαστές να γίνεται με τα ίδια κριτήρια. Επισημαίνει τους τύπους σφαλμάτων εντοπίζονται Η διαδικασία ταξινόμησης σφαλμάτων βελτιώνει τη συνολική διαδικασία ανάπτυξης ενός συστήματος αφού Επισημαίνει τις δραστηριότητες ανάπτυξης που εμπλέκονται με τα εντοπιζόμενα σφάλματα. Κατά την κατασκευή ενός συστήματος, κάθε τεχνική αναγνώρισης σφαλμάτων ή ελέγχου δημιουργεί ένα συγκεκριμένο προφίλ τύπων εντοπισμένων σφαλμάτων (διαφορετικές μέθοδοι πιθανόν να οδηγούν στην κατασκευή διαφορετικών προφίλ). Με βάση το δημιουργηθέν προφίλ τύπων σφαλμάτων ακολουθεί η υιοθέτηση στρατηγικών πρόληψης και εντοπισμού σφαλμάτων καθώς και δραστηριοτήτων μέσω των οποίων θα εντοπισθούν οι προελεύσεις τους. Τύπος σφάλματος Προέλευση - Σημασία - Αποτελέσματα Λειτουργία Επηρεάζει την ικανότητα, τις διασυνδέσεις του τελικού χρήστη και των προϊόντων, τις διασυνδέσεις με την αρχιτεκτονική του υλικού ή το σύνολο της δομής δεδομένων. Διασύνδεση Στην αλληλεπίδραση με άλλα συστατικά ή drivers μέσω κλήσεων / μακροεντολών / μπλοκ ελέγχου / λιστών παραμέτρων. Εξέταση δεδομένων Σφάλμα στη λογική του προγράμματος που προκαλεί αποτυχία επαλήθευσης δεδομένων / τιμών πριν τη χρησιμοποίησή τους. Ανάθεση Σφάλμα στη δομή δεδομένων ή την αρχικοποίηση των μπλοκ κώδικα. Χρονισμός / Συνέχιση Σφάλμα στο χρονισμό των διαμοιραζόμενων πόρων ή πόρων πραγματικού χρόνου. Κατασκευή - Ομαδοποίηση - Συγχώνευση Σφάλμα λόγω προβλημάτων στα μέσα αποθήκευσης, σε αλλαγές διαχείρισης ή σε έλεγχο έκδοσης. Τεκμηρίωση Επηρεάζει τις εκδόσεις / παρατηρήσεις στα πλαίσια της συντήρησης. Αλγόριθμος Αφορά στην αποδοτικότητα ή ορθότητα του αλγορίθμου ή στις δομές δεδομένων και όχι στο σχέδιο.

9 Κατάσταση λειτουργίας: Γιατί;
Ταξινόμηση Σφαλμάτων Προσέγγιση HEWLETT-PACKARD (Grady 1997) Προδιαγραφές / Απαιτήσεις 1 Περιβάλλον / Υποστήριξη Σχέδιο Κώδικας Τεκμηρίωση Άλλο Προδιαγραφές ή Απαιτήσεις Λειτουργικότητα Διασύνδεση Η/Υ Διασύνδεση SW Διασύνδεση χρήστη Περιγραφή λειτουργίας Επικοινωνία μεταξύ διεργασιών Ορισμός δεδομένων Σχεδίαση υπομονάδων Περιγραφή λογικής Έλεγχος σφαλμάτων Πρότυπα Λογική Υπολογισμός Χειρισμός δεδομένων Διασύνδεση / Υλοποίηση υπομονάδων Πρότυπα Έλεγχος Η/Υ Έλεγχος SW Ολοκλήρωση SW Εργαλεία ανάπτυξης 2 3 Ελλιπή Ασαφή Λανθασμένα Τροποποιημένα Καλύτερος τρόπος 1 Προέλευση: Που; 2 Τύπος: Τι; 3 Κατάσταση λειτουργίας: Γιατί; Σύνοψη στατιστικών στοιχείων σφαλμάτων ενός τμήματος της Hewlett-Packard.

10 Έλεγχος ολοκλήρωσης (integration testing)
Οργάνωση ελέγχων Έλεγχος υπομονάδων / συστατικών / μονάδων (module / component / unit testing) Το προς εξέταση συστατικό απομονώνεται από τα υπόλοιπα. Η ομάδα ελέγχου επαληθεύει τη σωστή λειτουργία του συστατικού στην εισαγωγή αναμενόμενων (με βάση το σχέδιο του συστατικού) τύπων εισόδων. Πιο συγκεκριμένα: εισάγει στο ελεγχόμενο συστατικό ένα προκαθορισμένο σύνολο δεδομένων εισόδου και παρακολουθεί τις ενέργειες και τα παραγόμενα δεδομένα εξόδου εξετάζει τις εσωτερικές δομές δεδομένων, τη λογική και τις συνοριακές συνθήκες για τα δεδομένα εισόδου και εξόδου. Έλεγχος ολοκλήρωσης (integration testing) Ακολουθεί τον έλεγχο μονάδων. Στοχεύει στην εξασφάλιση των σωστών ορισμών και της κατάλληλης διαχείρισης των διασυνδέσεων μεταξύ των συστατικών. Επαλήθευση της επιθυμητής λειτουργίας όλων μαζί των συστατικών (με βάση την περιγραφή της στις προδιαγραφές σχεδίου συστήματος και σχεδίου προγράμματος).

11 Έλεγχος λειτουργιών (function test)
Οργάνωση ελέγχων Έλεγχος λειτουργιών (function test) Ενεργοποιείται μετά την επιβεβαίωση της διακίνησης της πληροφορίας μεταξύ των συστατικών σύμφωνα με το σχέδιο και αποσκοπεί στην επαλήθευση της επιθυμητής λειτουργίας του υπό εξέταση συστήματος. Αξιολογείται ο βαθμός της σωστής εκτέλεσης - εκ μέρους του ολοκληρωμένου συστήματος - των λειτουργιών που περιγράφονται στις προδιαγραφές απαιτήσεων. Τεκμηρίωση απαιτήσεων ορολογία πελάτη Σύνολο απαιτήσεων SW+HW Συγκρίνει το υπό κατασκευή σύστημα με τις λειτουργίες που περιγράφονται στις προδιαγραφές απαιτήσεων του κατασκευαστή λογισμικού. Έλεγχος επίδοσης (performance test) To προς εξέταση σύστημα συγκρίνεται με τις υπόλοιπες απαιτήσεις SW και HW. Εκτελούμενος με επιτυχία σε πραγματικό περιβάλλον (πελάτης) παράγει ένα επικυρωμένο σύστημα (validated system). Έλεγχος αποδοχής (acceptance test) Ενεργοποιείται σε συνεργασία κατασκευαστή – πελάτη με σκοπό να επαληθευτεί ότι σύστημα λειτουργεί σύμφωνα και με τις δικές του προσδοκίες (εξέταση συστήματος με βάση την περιγραφή απαιτήσεων του πελάτη) και να χαρακτηρισθεί αποδεκτό. Έλεγχος εγκατάστασης (installation test) Πραγματοποιείται σ’ ένα αποδεκτό σύστημα (μετά την ολοκλήρωση του ελέγχου αποδοχής) με σκοπό την επαλήθευση της αναμενόμενης λειτουργίας του.

12 Ολοκληρωμένες μονάδες
Συσχέτιση ελέγχων Κώδικας συστατικού Έλεγχος μονάδων Ελεγμένο συστατικό Προδιαγραφές σχεδίου Κώδικας συστατικού Ελεγμένο συστατικό Έλεγχος μονάδων Έλεγχος ολοκλήρωσης Κώδικας συστατικού Έλεγχος μονάδων Ελεγμένο συστατικό Ολοκληρωμένες μονάδες Λειτουργικές απαιτήσεις συστήματος Έλεγχος λειτουργιών Άλλες απαιτήσεις λογισμικού Έλεγχος επίδοσης Έλεγχος συστήματος Προδιαγραφές απαιτήσεων πελάτη Έλεγχος αποδοχής Περιβάλλον χρήστη Έλεγχος εγκατάστασης Σύστημα σε λειτουργία

13 Όψη εξεταζόμενου αντικειμένου
Η άποψη του ελεγκτή για τα εξεταζόμενα αντικείμενα (συστατικά, ομάδες, υποσυστήματα, συστήματα) μπορεί να επηρεάσει τον τρόπο διεξαγωγής του ελέγχου τους. Φιλοσοφία ελέγχου Όψη εξεταζόμενου αντικειμένου Κλειστό / μαύρο κουτί (closed / black box) Ανοικτό / λευκό κουτί (open / white box) Έλεγχος Τροφοδοσία εισόδων και καταγραφή παραγόμενων εξόδων. Μεταχείριση της εσωτερικής δομής του εξεταζόμενου αντικειμένου. Στόχος η διασφάλιση εισαγωγής κάθε είδους εισόδου και η συμφωνία των παραγόμενων με τις αναμενόμενες εξόδους. Δυνατή η επινόηση διαφορετικών τρόπων ελέγχου (κάλυψη όλων των εντολών / μονοπατιών ελέγχου των συστατικών. Δεν είναι πάντα πρακτική η εφαρμογή μιας τέτοιας προσέγγισης (ύπαρξη μεγάλου πλήθους μονοπατιών σε συστατικά με πολλές διακλαδώσεις και επαναλήψεις). Δεν εμφανίζει περιορισμούς προερχόμενους από εσωτερική δομή και λογική του εξεταζόμενου αντικειμένου. Αδυναμία εκτέλεσης πλήρους ελέγχου (αδυναμία ορισμού συνόλου αντιπροσωπευτικών περιπτώσεων ελέγχου) λόγω μη καλής γνώσης της υλοποιούμενης εσωτερικής επεξεργασίας.

14 Φιλοσοφία ελέγχου Η μεταχείριση του κλειστού ή ανοικτού κουτιού δεν μπορεί να αποτελεί αποκλειστική επιλογή ελέγχου. Οι δύο παραπάνω τρόποι ελέγχου μπορούν να οριοθετούν τη συνολική διαδικασία ελέγχου επιτρέποντας την ενσωμάτωση μέσα της και κάθε άλλης τεχνικής ελέγχου. Διάφορες προσεγγίσεις ελέγχου (π.χ. προσέγγιση δομημένου κουτιού) συνδυάζουν διάφορα άλλα σημεία ανάμεσα στα δύο προαναφερθέντα άκρα (κλειστό / ανοικτό κουτί) με σκοπό την πολύπλευρη εξέταση ενός συστατικού. Η επιλογή της φιλοσοφίας ελέγχου εξαρτάται από διάφορους παράγοντες, όπως: Πλήθος πιθανών λογικών διαδρομών (μονοπατιών) Φύση των δεδομένων εισόδου Μέγεθος εμπλεκόμενων υπολογισμών Πολυπλοκότητα υιοθετούμενων αλγορίθμων ελέγχου


Κατέβασμα ppt "ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΕΛΕΓΧΟ ΛΟΓΙΣΜΙΚΟΥ"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google