Έλεγχος Αξιοπιστίας & Διασφάλιση Ποιότητας Λογισμικού 2025 Flashcards
(46 cards)
Τι είναι ποιότητα;
Η ποιότητα είναι υποκειμενική και αναφέρεται στο σύνολο χαρακτηριστικών ενός προϊόντος ή υπηρεσίας που ικανοποιούν τις προσδοκίες του πελάτη και τις καθορισμένες προδιαγραφές.
Τι είναι ποιότητα λογισμικού;
Αφορά τα χαρακτηριστικά εφαρμογών λογισμικού που ικανοποιούν τις ανάγκες του χρήστη, είτε ως αυτόνομες εφαρμογές είτε ως μέρος ενός συστήματος. Το σύστημα αποτελείται από εφαρμογές που συνεργάζονται, εκτελούν παράλληλες ή συμπληρωματικές διεργασίες και διευκολύνουν την αλληλεπίδραση με τον χρήστη.
Ποια είναι τα χαρακτηριστικά της ποιότητας (ονομαστικά);
- Λειτουργικότητα
- Αξιοπιστία
- Ευχρηστία
- Ασφάλεια
- Αποδοτικότητα
Τι ειναι Λειτουργικότητα; Δώσε 1-2 παραδείγματα
Η λειτουργικότητα αφορά το κατά πόσο το λογισμικό καλύπτει τις ανάγκες των χρηστών με σαφή και προβλέψιμο τρόπο.
1. Σε μια εφαρμογή τραπεζικών συναλλαγών, η διαδικασία μεταφοράς χρημάτων ολοκληρώνεται με τρία απλά βήματα, κάνοντας εύκολη τη χρήση για τους πελάτες.
2. Σε ένα λογισμικό επεξεργασίας βίντεο, η λειτουργία “Αναίρεση” επιτρέπει στους χρήστες να προβλέπουν και να επαναφέρουν το αποτέλεσμα που θέλουν με ασφάλεια.
Τι ειναι Αξιοπιστία; Δώσε 1-2 παραδείγματα
Αξιολογεί τη συνέπεια και τη σταθερότητα της λειτουργίας του λογισμικού σε διάφορες συνθήκες. Εξετάζεται αν το σύστημα αποδίδει σωστά χωρίς σφάλματα, ακόμα και σε περιπτώσεις αυξημένου φορτίου ή μερικής αστοχίας. Η αξιολόγηση γίνεται μέσω δοκιμών αντοχής, επαναληψιμότητας και διαχείρισης σφαλμάτων.
1. Ένα σύστημα ηλεκτρονικής κράτησης εισιτηρίων που συνεχίζει να λειτουργεί σωστά ακόμα και όταν η σύνδεση στο διαδίκτυο είναι ασταθής
2. Μια εφαρμογή αποθήκευσης δεδομένων που επανεκκινείται αυτόματα και αποκαθιστά τα αρχεία μετά από διακοπή ρεύματος χωρίς απώλειες
Τι ειναι Ευχρηστία; Δώσε 1-2 παραδείγματα
Η ευχρηστία (usability) είναι η ικανότητα ενός λογισμικού ή συστήματος να είναι κατανοητό, εύκολο στη χρήση και αποτελεσματικό για τον χρήστη, υπό καθορισμένες συνθήκες. Στόχος της είναι να βοηθά τους χρήστες να μαθαίνουν, να εκτελούν εργασίες και να πετυχαίνουν τους στόχους τους με ικανοποιητικό τρόπο.
1. Μια εφαρμογή κινητού με απλό και καθαρό μενού που οι χρήστες μαθαίνουν γρήγορα να χρησιμοποιούν χωρίς βοήθεια
2. Ένα λογισμικό με εικονίδια που απεικονίζουν ξεκάθαρα τις λειτουργίες, μειώνοντας τα λάθη των χρηστών
Ποια ειναι τα υποχαρακτηστικά της ευχριστίας; Δώσε ένα σύντομο παράδειγμα για κάθε ένα
- Καταλληλότητα (Appropriateness)
Το σύστημα καλύπτει τις ανάγκες του χρήστη στο πλαίσιο που το χρησιμοποιεί.
Παράδειγμα: Μια εφαρμογή παραγγελίας φαγητού έχει επιλογή “παραγγελία με ένα κλικ” για τακτικούς πελάτες. - Αναγνωρισιμότητα (Recognizability)
Ο χρήστης καταλαβαίνει εύκολα τον σκοπό και τις δυνατότητες του συστήματος.
Παράδειγμα: Ένα εικονίδιο με κάδο σημαίνει “διαγραφή” και είναι άμεσα αναγνωρίσιμο. - Ευκολία εκμάθησης (Learnability)
Ο χρήστης μπορεί να μάθει γρήγορα πώς να χρησιμοποιεί το σύστημα.
Παράδειγμα: Ένα εργαλείο επεξεργασίας κειμένου προσφέρει σύντομη ξενάγηση στην πρώτη χρήση. - Ευκολία χειρισμού (Operability)
Το σύστημα είναι εύκολο στη χρήση και στον έλεγχο κατά τη λειτουργία.
Παράδειγμα: Ένα app με καθαρά κουμπιά και λογική ροή για την κράτηση εισιτηρίων. - Προστασία από σφάλματα (User Error Protection)
Το σύστημα προλαμβάνει ή βοηθά στη διόρθωση λαθών του χρήστη.
Παράδειγμα: Μήνυμα επιβεβαίωσης πριν τη μόνιμη διαγραφή αρχείου. - Αισθητική διεπαφής (User Interface Aesthetics)
Ο σχεδιασμός είναι ευχάριστος, καθαρός και δεν κουράζει τον χρήστη.
Παράδειγμα: Μια εφαρμογή με απαλά χρώματα, καθαρές γραμματοσειρές και ομοιόμορφα εικονίδια. - Μινιμαλιστικός σχεδιασμός (Minimalist Design)
Περιέχει μόνο τα απαραίτητα στοιχεία, χωρίς περιττές πληροφορίες.
Παράδειγμα: Μια αρχική σελίδα με τρία βασικά κουμπιά: “Έναρξη”, “Ρυθμίσεις”, “Βοήθεια”. - Προσβασιμότητα (Accessibility)
Το σύστημα είναι λειτουργικό και για άτομα με αναπηρίες ή ειδικές ανάγκες.
Παράδειγμα: Υποστήριξη ανάγνωσης οθόνης και επιλογή υψηλής αντίθεσης για χρήστες με προβλήματα όρασης.
Τι ειναι Ασφάλεια; Δώσε 1-2 παραδείγματα
Ο βαθμός στον οποίο ένα προϊόν ή σύστημα αντιστέκεται σε πρότυπα επίθεσης από κακόβουλους παράγοντες και προστατεύει πληροφορίες και δεδομένα, έτσι ώστε πρόσωπα ή άλλα προϊόντα/συστήματα να έχουν πρόσβαση ανάλογη με το επίπεδο εξουσιοδότησής τους.
1. Ένα τραπεζικό app που απαιτεί έλεγχο ταυτότητας δύο παραγόντων (2FA) για να επιβεβαιώσει την ταυτότητα του χρήστη
2. Ένα σύστημα αρχείων που κρατά αρχείο καταγραφής (log) όλων των αλλαγών που γίνονται σε ευαίσθητα δεδομένα
Ποια ειναι τα υποχαρακτηστικά της ασφάλειας;
- Εμπιστευτικότητα (Confidentiality): Πρόσβαση στα δεδομένα μόνο από εξουσιοδοτημένους χρήστες
- Ακεραιότητα (Integrity): Προστασία από μη εξουσιοδοτημένη τροποποίηση ή διαγραφή
- Μη Αποποίηση Ευθύνης (Nonrepudiation): Απόδειξη ότι ενέργειες ή γεγονότα πραγματοποιήθηκαν
- Λογοδοσία (Accountability): Ιχνηλασιμότητα και καταγραφή ενεργειών χρηστών
- Γνησιότητα (Authenticity): Βεβαίωση της ταυτότητας χρηστών ή συστημάτων
- Ανθεκτικότητα (Resistance): Ικανότητα λειτουργίας του συστήματος υπό επίθεση
Τι ειναι Αποδοτικότητα; Δώσε 1-2 παραδείγματα
Η αποδοτικότητα μετρά πόσο καλά το σύστημα χρησιμοποιεί τους διαθέσιμους πόρους, όπως χρόνο επεξεργασίας και μνήμη, για να ολοκληρώσει τις εργασίες του. Αξιολογείται με βάση την ταχύτητα απόκρισης και τη χρήση πόρων υπό διαφορετικές συνθήκες λειτουργίας. Η αξιολόγηση περιλαμβάνει δοκιμές απόδοσης και παρακολούθηση της κατανάλωσης πόρων.
1. Ένα πρόγραμμα επεξεργασίας εικόνων που χρησιμοποιεί την κάρτα γραφικών για γρήγορη απόκριση και ελάχιστη καθυστέρηση
2. Μια ιστοσελίδα που φορτώνει μέσα σε 2 δευτερόλεπτα ακόμα και όταν πολλοί χρήστες την επισκέπτονται ταυτόχρονα
Τι είναι εσωτερική ποιότητα; δώσε παραδείγματα
Εστιάζει στον τρόπο δημιουργίας του λογισμικού από τον προγραμματιστή.
Αναφέρεται στα δομικά και τεχνικά χαρακτηριστικά του λογισμικού, όπως αυτά φαίνονται στον πηγαίο κώδικα, την αρχιτεκτονική, και τα εσωτερικά πρότυπα σχεδίασης
Παραδείγματα:
o Ευανάγνωστος, τεκμηριωμένος και δομημένος κώδικας
o Χαμηλή κυκλωματική πολυπλοκότητα
o Χρήσιμη για: προγραμματιστές, testers, ομάδες συντήρηση
Τι είναι εξωτερική ποιότητα; δώσε παραδείγματα
Εξετάζει τη λειτουργία του λογισμικού στο περιβάλλον χρήσης.
Αναφέρεται στον τρόπο που αντιλαμβάνεται την ποιότητα ο τελικός χρήστης, δηλαδή στη συμπεριφορά του λογισμικού κατά τη χρήση του στο λειτουργικό του περιβάλλον.
Παραδείγματα:
o Η εφαρμογή αποθηκεύει σωστά τα δεδομένα του χρήστη
o Λειτουργεί αποδοτικά κατά τη διάρκεια χρήσης
o Χρήσιμη για: τελικούς χρήστες, πελάτες, αξιολογητές εμπειρίας χρήστη (UX evaluators)
Τι είναι ποιότητα στη χρήση; δώσε παραδείγματα
Αναλύει πώς χρησιμοποιεί ο χρήστης το λογισμικό.
Π . χ. Λανθασμένη χρήση μηχανής αναζήτησης της Google
Διαχωρισμός τρόπου χρήσης από εξωτερική: επικεντρώνεται στη συμπεριφορά του χρήστη
Ποια είναι η διαφορά μεταξύ εσωτερικής και εξωτερικής ποιότητας;
Η εσωτερική αφορά τον σχεδιασμό και την ανάπτυξη, ενώ η εξωτερική την εμπειρία του τελικού χρήστη. Και οι δύο είναι απαραίτητες για τη συνολική επιτυχία ενός συστήματος λογισμικού.
Ανέπτυξε την επαλήθευση (verification). Τι είναι, πότε γίνεται και τι περιλαμβάνει. Δώσε παραδειγμα
Αφορά τον έλεγχο του πώς αναπτύσσεται το λογισμικό και αν ακολουθεί τις προκαθορισμένες προδιαγραφές.
Ερώτηση: Αναπτύσσουμε σωστά το προϊόν;
Χρονική στιγμή: Κατά τη διάρκεια του σχεδιασμού (planning).
Περιλαμβάνει:
o code reviews
o static analysis
o unit testing
o τεκμηρίωση και έλεγχος απαιτήσεων
Παράδειγμα: Σε ένα πληροφοριακό σύστημα διαχείρισης φοιτητών, η επαλήθευση εξετάζει εάν η φόρμα εισαγωγής βαθμολογίας υλοποιεί σωστά τη δομή και τους ελέγχους που ορίζονται στις προδιαγραφές (π.χ., τιμές από 0 έως 10, χρήση dropdown).
Ανέπτυξε την επιύρωση (validation). Τι είναι, πότε γίνεται και τι περιλαμβάνει. Δώσε παραδειγμα
Αφορά τον έλεγχο του αν το λογισμικό ανταποκρίνεται στις πραγματικές ανάγκες των χρηστών.
Ερώτηση: Αναπτύξαμε το σωστό προϊόν;
Περιλαμβάνει:
o usability testing
o acceptance testing
o beta testing
o συνεντεύξεις με χρήστες
Παράδειγμα: Στο ίδιο πληροφοριακό σύστημα, η επικύρωση εξετάζει αν η διαδικασία καταχώρησης βαθμολογίας είναι κατανοητή, γρήγορη και ικανοποιεί τις ανάγκες του διοικητικού υπαλλήλου που τη χρησιμοποιεί.
Ποια είναι η διαφορά μεταξύ επαλήθευσης (verification) και επικύρωσης (validation);
Η επαλήθευση διασφαλίζει την τεχνική ορθότητα και την τήρηση των απαιτήσεων, ενώ η επικύρωση αξιολογεί την καταλληλότητα του προϊόντος για τον τελικό χρήστη. Και οι δύο είναι απαραίτητες για την εξασφάλιση της συνολικής ποιότητας ενός πληροφοριακού συστήματος.
Ποιοι είναι οι κανόνες του Nielsen; (ονομαστικά)
- Ενημέρωση για την κατάσταση του συστήματος
- Αντιστοίχιση συστήματος-πραγματικού κόσμου
- Ελευθερία και έλεγχος από το χρήστη
- Συνέπεια και συνέχεια και χρήση στάνταρ
- Αποφυγή λαθών
- Αναγνώριση αντί για ανάκληση
- Προσαρμοστικότητα και αποδοτικότητα χρήσης
- Καλαίσθητος και μινιμαλιστικός σχεδιασμός
- Αναγνώριση και ανάνηψη από λάθη
- Βοήθεια
Εξήγησε τον κανόνα Nielsen: Ενημέρωση για την κατάσταση του συστήματος
Δώσε ένα παράδειγμα
Το σύστημα πρέπει να ενημερώνει τους χρήστες για το τι συμβαίνει, παρέχοντας κατάλληλη ανατροφοδότηση σε εύλογο χρονικό διάστημα.
Εφαρμογή στη Google:
a. Κατά την πληκτρολόγηση ενός ερωτήματος, η Google παρέχει άμεσες προτάσεις (autocomplete), υποδεικνύοντας ότι κατανοεί την είσοδο του χρήστη.
b. Κατά την αναζήτηση, εμφανίζεται γραμμή προόδου στο πάνω μέρος του παραθύρου, ή απλώς αλλαγή περιεχομένου στη σελίδα, δηλώνοντας ότι τα αποτελέσματα φορτώνονται.
c. Όταν δεν βρίσκονται αποτελέσματα ή υπάρχει πρόβλημα σύνδεσης, εμφανίζονται σαφή μηνύματα συστήματος, καθιστώντας κατανοητή την κατάσταση.
Εξήγησε τον κανόνα Nielsen: Αντιστοίχιση συστήματος-πραγματικού κόσμου
Δώσε ένα παράδειγμα
Το σύστημα πρέπει να χρησιμοποιεί έννοιες, γλώσσα και οπτικά στοιχεία που είναι οικεία στους χρήστες από την καθημερινή τους ζωή. Διευκολύνει τη δημιουργία νοητικών μοντέλων, μειώνει την καμπύλη εκμάθησης και αυξάνει την ευχρηστία.
Διαχείριση αρχείων στους υπολογιστές
a. “Φάκελοι” (Folders) για την οργάνωση αρχείων, όπως και τα φυσικά ντοσιέ
b. “Επιφάνεια εργασίας” (Desktop) ως χώρος εργασίας
c. “Καλάθι ανακύκλωσης” (Recycle Bin/Trash) για διαγραφή αρχείων
Εξήγησε τον κανόνα Nielsen: Ελευθερία και έλεγχος από το χρήστη
Δώσε ένα παράδειγμα
Οι χρήστες πρέπει να μπορούν να κάνουν και να αναιρούν ενέργειες εύκολα.
Gmail - Αναίρεση αποστολής email:
a. Το Gmail παρέχει την επιλογή “Αναίρεση αποστολής” για μερικά δευτερόλεπτα μετά την αποστολή ενός email
b. Αυτό επιτρέπει στους χρήστες να ανακτήσουν ένα μήνυμα σε περίπτωση λάθους
Εξήγησε τον κανόνα Nielsen: Συνέπεια και συνέχεια και χρήση στάνταρ
Δώσε ένα παράδειγμα
Οι χρήστες δεν πρέπει να αναρωτιούνται αν διαφορετικές λέξεις, καταστάσεις ή ενέργειες σημαίνουν το ίδιο πράγμα.
Εφαρμογή στη Google:
a. Και στις δύο περιπτώσεις, ο τρόπος αναζήτησης παραμένει ίδιος:
i. Το κουμπί “Αναζήτηση Google” έχει την ίδια θέση και μορφή
ii. Η επιλογή “Αναζήτηση εικόνων” είναι επίσης συνεπής
b. Το λογότυπο της Google διατηρεί τα ίδια χρώματα και στιλ, προσαρμοσμένο μόνο με την ένδειξη “Ελλάς” για την ελληνική έκδοση
c. Η διάταξη των στοιχείων ακολουθεί το ίδιο μοτίβο:
i. Πλοήγηση στο πάνω μέρος
ii. Λογότυπο στο κέντρο
Εξήγησε τον κανόνα Nielsen: Αποφυγή λαθών
Δώσε ένα παράδειγμα
Eπικεντρώνεται στην πρόληψη σφαλμάτων πριν αυτά συμβούν, αντί να εστιάζει απλώς στην αντιμετώπισή τους αφού εμφανιστούν. Ο σχεδιασμός που προλαμβάνει τα λάθη είναι πάντα καλύτερος από τα καλοσχεδιασμένα μηνύματα σφάλματος.
Πρόληψη απώλειας δεδομένων:
a. Αυτόματη αποθήκευση εγγράφων (Google Docs, Microsoft Office)
b. Προειδοποιήσεις αποχώρησης από σελίδες με μη αποθηκευμένο περιεχόμενο
c. Προστασία από κατά λάθος κλείσιμο εφαρμογών με μη αποθηκευμένες αλλαγές
Εξήγησε τον κανόνα Nielsen: Αναγνώριση αντί για ανάκληση
Δώσε ένα παράδειγμα
Οι επιλογές του χρήστη πρέπει να είναι εμφανείς, ώστε να μειώνεται η ανάγκη για μνήμη.
Πλοήγηση και μενού Σταθερά μενού πλοήγησης:
a. Τα σύγχρονα ιστοσελίδες και εφαρμογές διατηρούν σταθερά μενού πλοήγησης που παραμένουν ορατά καθώς ο χρήστης κινείται στη σελίδα
b. Παράδειγμα: Το μενού πλοήγησης του Facebook στα αριστερά παραμένει πάντα ορατό