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

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

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

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

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

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

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

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

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

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

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

Approximation of distance between locations on earth given by latitude and longitude

Test Data Management in Practice

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

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

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

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

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

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

The Simply Typed Lambda Calculus

Ηλεκτρονικοί Υπολογιστές IV

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

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

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

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

MS SERIES MS DESK TOP ENCLOSURE APPLICATION EXAMPLE FEATURE. Measuring instruments. Power supply equipments

Practice Exam 2. Conceptual Questions. 1. State a Basic identity and then verify it. (a) Identity: Solution: One identity is csc(θ) = 1

Επιμέλεια: Αδαμαντία Τραϊφόρου (Α.Μ 263) Επίβλεψη: Καθηγητής Μιχαήλ Κονιόρδος

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

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

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

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

09 Διοίκηση έργων λογισμικού

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

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

C.S. 430 Assignment 6, Sample Solutions

Γιπλυμαηική Δπγαζία. «Ανθπυποκενηπικόρ ζσεδιαζμόρ γέθςπαρ πλοίος» Φοςζιάνηρ Αθανάζιορ. Δπιβλέπυν Καθηγηηήρ: Νηθφιανο Π. Βεληίθνο

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

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

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

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

Microsoft Visual Studio Γιώργος Καµαρινός Developer Programs Marketing Manager Microsoft Hellas

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Company LOGO. Nazaret Kazarian. 1

Μιχάλης Βαφόπουλος, vafopoulos.org

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

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

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

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

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

Thin Film Chip Resistors

Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002

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

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

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

Κατευθυντήριες γραµµές

MSN DESK TOP ENCLOSURE WITH STAND / CARRYING HANDLE

Μηχανική Μάθηση Hypothesis Testing

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

1. A fully continuous 20-payment years, 30-year term life insurance of 2000 is issued to (35). You are given n A 1

Reminders: linear functions

Εφαρµογή µεθόδων δυναµικής ανάλυσης σε κατασκευές µε γραµµική και µη γραµµική συµπεριφορά

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Τέτοιες λειτουργίες γίνονται διαμέσου του

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια

ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΘΕΜΑ»

2R2. 2 (L W H) [mm] Wire Wound SMD Power Inductor. Nominal Inductance Packing Tape & Reel. Design Code M ±20%

Information and Communication Technologies in Education

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

Εικονική Αναπαράσταση Νοηµατικής Γλώσσας στο ιαδίκτυο

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

Instruction Execution Times

TMA4115 Matematikk 3

Μηχανισμοί πρόβλεψης προσήμων σε προσημασμένα μοντέλα κοινωνικών δικτύων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

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

Απόκριση σε Μοναδιαία Ωστική Δύναμη (Unit Impulse) Απόκριση σε Δυνάμεις Αυθαίρετα Μεταβαλλόμενες με το Χρόνο. Απόστολος Σ.

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

Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων

ΜΟΝΤΕΛΑ ΛΗΨΗΣ ΑΠΟΦΑΣΕΩΝ

EGEE-SEE HELPDESK HG-04-CTI-CEID

Statistical Inference I Locally most powerful tests

ΠΩΣ ΕΠΗΡΕΑΖΕΙ Η ΜΕΡΑ ΤΗΣ ΕΒΔΟΜΑΔΑΣ ΤΙΣ ΑΠΟΔΟΣΕΙΣ ΤΩΝ ΜΕΤΟΧΩΝ ΠΡΙΝ ΚΑΙ ΜΕΤΑ ΤΗΝ ΟΙΚΟΝΟΜΙΚΗ ΚΡΙΣΗ

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

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

High Performance Voltage Controlled Amplifiers Typical and Guaranteed Specifications 50 Ω System

Επίπεδο δικτύου IP Forwading κτλ

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία

ΚΒΑΝΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

Τμήμα Πολιτικών και Δομικών Έργων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Ειδική διάλεξη 2: Εισαγωγή στον κώδικα της εργασίας

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

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

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

Ηµερίδα: Γεωπληροφορική και Εκπαίδευση Η Ελληνική Πραγµατικότητα Χαροκόπειο Πανεπιστήµιο ευτέρα και Τρίτη, Maΐου Γεώργιος Ν.

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

Transcript:

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

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

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

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

Επαλήθευση Παράγουμε το λογισμικό σωστά; Επιβεβαίωση Παράγουμε το σωστό λογισμικό; 5

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

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

Στατικός vs δυναμικός έλεγχος Static testing involves verification, whereas dynamic testing also involves validation. 8

Στατική ανάλυση κώδικα Static analysis tools are generally used by developers as part of the development and component testing process. The key aspect is that the code or other artefact is not executed or run but the tool itself is executed, and the source code we are interested in is the input data to the tool. 9

Εργαλεία για το JVM Γενικής χρήσης Checkstyle FindBugs PMD JDepend Jacoco ErrorProne SonarQube κ.ά Ειδικής χρήσης εργαλεία ανάλογα με την περίπτωση 10

Εκτέλεση σεναρίων / δοκιμασιών ελέγχου Αctually executing programmed code with a given set of test cases the program itself is run 11

Εργαλεία για το JVM JUnit unit testing TestNG unit testing Mockito mockup testing Selenium web browser automation Jenkins Continuous integration Travis Continuous integration Spock specifications 12

13

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

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

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

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

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

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

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

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

22

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

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

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

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

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

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

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

Performance / load testing Μια κατηγορία από μόνο του Load testing: stress, spike, soak testing Maximum usable capacity concurrent users, throughput Acceptable response time latency Παράδειγμα εργαλείου: Apache JMeter 30

Stress testing Stress testing sometimes called torture testing is a form of deliberately intense or thorough testing used to determine the stability of a given system or entity. It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results. 31

Spike testing Spike testing verifies a system's stability during bursts of concurrent user and or system activity to varying degrees of load over varying time periods. 32

Soak testing Soak testing involves testing a system with a typical production load, over a continuous availability period, to validate system behavior under production use. 33

34

35

Παρόμοιας λογικής Εndurance testing Resilience testing Saturation testing Scalability testing 36

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

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