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

Σχετικά έγγραφα
12 Έλεχος και επαλήθευση λογισμικού

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

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

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

02α Διαχείριση Έργων Λογισμικού

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

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

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

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

05 Ανάλυση απαιτήσεων

Εισαγωγή στην. Γιάννης Σμαραγδάκης

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

11β Δομικά πρότυπα σχεδίασης

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός

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

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

05 Ανάλυση Απαιτήσεων

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

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

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

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

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

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

Company LOGO. Nazaret Kazarian. 1

Αρχιτεκτονική Λογισμικού

02 Αντικειμενοστρεφής Προγραμματισμός

03 Τεχνική διαχείριση έργων λογισμικού

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

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

ΕΡΓΑΣΙΑ: Ετήσιας Συντήρησης και Υποστήριξης Λειτουργίας Δημοτικής Διαδικτυακής Πύλης

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Πύλη Φαρμακευτικών Υπηρεσιών Υπουργείου Υγείας Κύπρου. System Architecture Overview

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

ΚΑΤΑΛΟΓΟΣ ΕΚΠΑΙΔΕΥΣΗΣ

Λογισμικό - Προγράμματα

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Τεχνικές εξασφάλισης ποιότητας σε συστήματα ειδικού σκοπού (Bluetooth Low Energy) - Αυτοματοποίηση ελέγχου ποιότητας λογισμικού

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

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

CAD / CAM. Ενότητα #10: Βιομηχανικά Συστήματα Ελέγχου. Δημήτριος Τσελές Τμήμα Μηχανικών Αυτοματισμού T.E.

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

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

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

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

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

Μεταπτυχιακή Εργασία Διαχείριση Επιχειρησιακών Διαδικασιών με τη χρήση Τεχνολογίας BPMN

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress

ΤΕΧΝΟΛΟΓΙΑ, ΚΑΙΝΟΤΟΜΙΑ ΚΑΙ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ 9 Ο εξάμηνο Χημικών Μηχανικών

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

εοντολογία και εφαρμογή ψυχομετρικών τεστ στην online εποχή: Το παράδειγμα ενός συστήματος αξιολόγησης 360

Πριν ξεκινήσουμε: Γά Γιάννης Σμαραγδάκης

Αρχιτεκτονικές Συστημάτων

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

ιαδικασίες Τεχνολογίας Λογισμικού Γιάννης Σμαραγδάκης

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

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας

Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass. Γνωριμία με την Open eclass

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

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

The Customization Process for Organizational Package Information Systems: A Challenge for Participatory Design

Προγραμματισμός και Επιλογή Συστημάτων

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

IBM Runbook Automation

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

Ασφάλεια Πληροφοριακών Συστημάτων

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

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

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

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

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

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

Ανοικτά Δεδομένα. Η εμπειρία του OpenDataCloud

Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών

11α Κατασκευαστικά πρότυπα σχεδίασης

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Εισαγωγή στην Τεχνολογία Λογισμικού. Ματίνα Μπίμπη Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων, Πανεπιστήμιο Θεσσαλίας

Ανάλυση ευαισθησίας Ανάλυση ρίσκου

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος

Αποστολή προγράμματος οδήγησης. Οδηγός διαχειριστή

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

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

Αντώνης Κουρράς ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Ελληνικό Ανοικτό Πανεπιστήμιο

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Σκοπός του μαθήματος

ΕΡΓΟ: «ΠΛΑΙΣΙΟ ΣΥΜΒΑΣΗΣ ΓΙΑ ΤΗ ΣΥΝΕΡΓΑΣΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΚΑΙ ΙΝΤΕΡΑΜΕΡΙΚΑΝ» ΚΩΔΙΚΟΣ ΕΡΓΟΥ ΦΚ:

05β Η ιδεατή μηχανή της Java

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

ΑΝΑΚΟΙΝΩΣΗ ΠΡΟΣΚΛΗΣΗΣ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΕΤΗΣΙΑΣ ΤΕΧΝΙΚΗΣ ΥΠΟΣΤΗΡΙΞΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕΡΟΥΣ (S/W) ΕΞΟΠΛΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις)

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

Βασίλειος Κοντογιάννης ΠΕ19

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

Transcript:

10α Έλεγχος και επαλήθευση λογισμικού Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr

Δύο κύρια ερωτήματα 1. Πώς εξασφαλίζουμε ότι το λογισμικό είναι σύμφωνο με τις απαιτήσεις και προσδοκίες των χρηστών λειτουργικές απαιτήσεις ; 2. Πώς διαφυλάσσουμε την ποιότητα του λογισμικού μη λειτουργικές απαιτήσεις ; 2

Σε πολλούς άξονες: Χρηστικότητα / ευχρηστία Επεκτασιμότητα / βιωσιμότητα Ασφάλεια / ακεραιότητα δεδομένων Αποδοτικότητα / αποκρισιμότητα κ.λπ. 3

Έλεγχος, επαλήθευση και επιβεβαίωση λογισμικού Έλεγχος Επιθεωρήσεις Reviews Δοκιμασίες Testing Στατική ανάλυση Static analysis Επαλήθευση Παράγουμε το λογισμικό σωστά; Επιβεβαίωση Παράγουμε το σωστό λογισμικό; 4

Ελαττώματα defects, bugs There are two ways to write error free programs; only the third one works. Alan J. Perlis 5

Ελαττώματα defects, bugs Σοβαρότητα severity Critical Major Minor Trivial 6

Κύκλος ζωής δοκιμασιών test life cycle Επισκόπηση απαιτήσεων Σχεδιασμός δοκιμασιών Καθορισμός περιβάλλοντος δοκιμασιών Εκτέλεση δοκιμασιών Παραγωγή αναφορών 7

Πλάνο δοκιμασιών test plan Έγγραφο, επιμέρους ή συνολικό π.χ. master test plan Τι θα ελεγχθεί και πώς προσέγγιση Παραδοτέα Εκτιμήσεις χρόνου/κόστους Προγραμματισμός, προσωπικό, εκπαίδευση, έλεχγοι/ αποδοχή, κτλ. 8

Σενάριο δοκιμής Test case Συνθήκες ή μεταβλητές που καθορίζουν την ορθή συμπεριφορά του χαρακτηριστικού που υπόκειται σε έλεγχο Συνήθως γράφεται απευθείας σε κάποιο εργαλείο 9

Test scripts Αυτοματοποιημένοι έλεγχοι test automation Continuous integration CI 10

Βασικά επίπεδα δοκιμασιών Από το μικρό στο μεγάλο: Μοναδιαία δοκιμασία unit test Δοκιμασία ολοκλήρωσης integration test Δοκιμασία συστήματος system test Δοκιμασία αποδοχής acceptance test 11

Μέθοδοι εκτέλεσης δοκιμασιών Black box testing behavioral testing Έλεγχος της "εξωτερικής" συμπεριφοράς ενός συστατικού ως συνόλου π.χ. εκτελώντας πειράματα στο public interface του White box testing structural testing Έλεγχος της "εσωτερικής" δομής / συμπεριφοράς ενός συστατικού π.χ. εκτελώντας πειράματα στην εσωτερική του κατάσταση Gray box testing συνδυασμός 12

Unit testing Έλεγχος μοναδιαίων ενοτήτων του λογισμικού Το ελάχιστο στοιχείο του λογισμικού που μπορεί να ελεγχθεί π.χ. μέθοδος White box testing όλες οι μέθοδοι, public, private, κ.λπ Δειγματοληψία των πιθανών εισόδων και δοκιμή τους αν παράγουν αστοχία σφάλμα, λανθασμένη έξοδο 13

Integration testing Έλεγχος "συνδυασμού" πολλών ενοτήτων Διαλειτουργικότητα μεταξύ ενοτήτων όχι αναγκαστικά μοναδιαίων Είτε white, είτε black, είτε gray box testing 14

15

System testing Έλεγχος του συστήματος συνολικά Ως ολότητα σε σχέση με το λειτουργικό του περιβάλλον Δικτύωση, υπηρεσίες, συστήματα αποθήκευσης, υλικό, κ.λπ. 16

Acceptance testing Έλεγχος αποδοχής του λογισμικού Customer / user acceptance testing Black box testing Ad hoc testing 17

Τύποι δοκιμασιών ανεξάρτητα επιπέδου Smoke testing Functional testing Usability testing Security testing Performance testing Regression testing Βebugging Mutation testing κ.ά 18

Smoke testing Επίπεδα: Integration, System, Acceptance Μήπως πήρε φωτιά; Δουλεύει τίποτα ή έχουν αποτύχει όλα; Κάλυψη όλων των βασικών λειτουργιών οριζόντια, αλλά όχι σε βάθος κάθετα Να προχωρήσουμε σε επιμέρους δοκιμασίες ή το σύστημα δεν είναι ώριμο ακόμα θέλει "κι άλλη δουλειά" ; 19

Functional testing Επίπεδα: Unit, System, Acceptance Επαλήθευση συμβατότητας με προδιαγραφές και απαιτήσεις Καλό είναι να εκτελούνται από τους "χρήστες" Domain driven design, behavior driven development Automated tests/specifications 20

Usability testing Επίπεδα: System, Acceptance Ad hoc testing Α/Β testing σε ευρεία χρήση στις διαδικτυακές εφαρμογές για τη "μέτρηση" της αποτελεσματικότητας μιας UI/UX επιλογής 21

Security testing Μια κατηγορία από μόνο του Για διαδικτυακές εφαρμογές: owasp.org 22

Performance testing Μια κατηγορία από μόνο του Load testing stress, spike, soak testing Εndurance testing, resilience testing, saturation testing, scalability testing Maximum usable capacity concurrent users, throughput Acceptable response time latency Εργαλείο: Apache JMeter 23

24

25

Regression testing Οπισθοδρόμηση Έλεγχος ότι μια νέα έκδοση του λογισμικού new feature, bug fix, κτλ. δεν προκαλεί πρόβλημα στην υπάρχουσα λειτουργικότητα Από τους βασικούς ελέγχους σε παραγωγικό λογισμικό 26

Επίσης Bebugging Εκ προθέσεως εισαγωγή σφαλμάτων στον κώδικα με στόχο να ανακαλυφθούν από τις δοκιμασίες Mutation testing Mutation του κώδικα π.χ. αλλαγή εκφράσεων σε συντακτικό επίπεδο με αντίστοιχη λογική 27

Εργαλεία ελέγχου στο JVM JUnit unit testing TestNG unit testing Mockito mockup testing Selenium web browser automation Jenkins Continuous integration Spock specifications 28

Σε επόμενο φρονιστήριο Θα δούμε παραδείγματα από: Junit Spock 29

30