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

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

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

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

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

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

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

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

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

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

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

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

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

Test Data Management in Practice

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

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

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

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

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

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

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

The Simply Typed Lambda Calculus

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

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

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

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

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

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

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

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

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

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

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

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

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

C.S. 430 Assignment 6, Sample Solutions

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

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

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

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 11: Αρχιτεκτονική Cloud

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου. Σχεδίαση Συστήματος

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

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

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

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

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

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

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

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

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

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

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

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

Πρακτικές Agile Development στην Ανάπτυξη του le .me

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

07 Διαχείριση έργων λογισμικού ΙΙ

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

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

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

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

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

Προσομοίωση Συστημάτων Χειμερινό εξάμηνο Εξάμηνο 5 ο. Ατομική εργασία προς παράδοση στο CloudAnalyst

Εξελιγμένη διαχείριση της πλατφόρμας από τους Χρήστες:

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

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

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

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

Information and Communication Technologies in Education

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

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

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

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

Other Test Constructions: Likelihood Ratio & Bayes Tests

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

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

ΔΙΑΚΗΡΥΞΗ ΔAΠΜ ΕΡΓΟ :

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Πολιτικών Μηχανικών Τοµέας οµοστατικής ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΣΤΟΧΙΑΣ ΑΠΟ ΛΥΓΙΣΜΟ ΚΑΙ ΠΛΑΣΤΙΚΟΠΟΙΗΣΗ ΣΕ ΜΕΤΑΛΛΙΚΑ ΠΛΑΙΣΙΑ

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

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

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

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

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

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

Company LOGO. Nazaret Kazarian. 1

ΔΙΑΜΟΡΦΩΣΗ ΣΧΟΛΙΚΩΝ ΧΩΡΩΝ: ΒΑΖΟΥΜΕ ΤΟ ΠΡΑΣΙΝΟ ΣΤΗ ΖΩΗ ΜΑΣ!

BUSINESS SOFTWARE DIVISION

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

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

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

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

Ανθή Κατσιρίκου Διευθύντρια της Βιβλιοθήκης του Πολυτεχνείου Κρήτης Anthi Katsirikou Library Director, Technological University of Crete, Greece

Instruction Execution Times

Εισαγωγή. Ρόλοι και τύποι cloud. Ορισμός και σύγκριση.

Thin Film Chip Resistors

EGEE-SEE HELPDESK HG-04-CTI-CEID

Statistical Inference I Locally most powerful tests

TARGET2. 2 Ιουλίου 2007 Τράπεζα της Ελλάδος 1

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

ΑΥΤΟΜΑΤΟΠΟΙΗΣΗ ΜΟΝΑΔΑΣ ΘΡΑΥΣΤΗΡΑ ΜΕ ΧΡΗΣΗ P.L.C. AUTOMATION OF A CRUSHER MODULE USING P.L.C.

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

Transcript:

Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Υ Εθνικό Μετσόβιο Πολυτεχνείο Τεχνολογία Λογισμικού 7ο / 9ο Εξάμηνο 2018 19 Ν.Παπασπύρου, Αν.Καθ. ΣΗΜΜΥ, nickie@softlab.ntua,gr Β.Βεσκούκης, Αν.Καθ. ΣΑΤΜ, v.vescoukis@cs.ntua,gr Κ.Σαΐδης, ΠΔ 407, saiko@softlab.ntua.gr

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

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

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

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

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

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

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

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

Στατική ανάλυση κώδικα 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. 10

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

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

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

14

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

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

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

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

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

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

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

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

23

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

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

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

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

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

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

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

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

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. 32

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. 33

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. 34

35

36

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

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

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

Σύνδεση με τα προηγούμενα Κύκλος ζωής λογισμικού Διαχείριση έργου λογισμικού Συστατικά λογισμικού 40

Software Artifacts, Versions, Releases Κάθε release είναι ένα ξεχωριστό software artifact που προκύπτει από διαφορετική έκδοση του κώδικα, π.χ. git commit. Όλες οι εκδόσεις περνάνε από έλεγχο και επαλήθευση πριν διοχετευθούν στους χρήστες τους Pre release internal release Early Access EA Alpha Beta Release candidate Release General Availability, GA 41

Online service π.χ. Web app Όλες οι επαυξήσεις του λογισμικού όχι απαραίτητα ως δημοσιευμένες εκδόσεις, αλλά σίγουρα ως διαφορετικά artifacts περνάνε από έλεγχο και επαλήθευση πριν διοχετευθούν στους χρήστες τους. Developer workstation local tests, e.g. unit tests Testing server CI, e.g. integration tests Staging server user acceptance tests Production server production use 42