Έλεγχος λογισμικού Ποιότητα Λογισμικού Black Box testing

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Διάγραμμα Παρουσίασης
Advertisements

Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Εισαγωγή στην SQL ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας.
MySQL + Γλώσσα Προγραμματισμού
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Τεχνολογία ΛογισμικούSlide 1 Έλεγχος Καταψύκτη (Ada) Τεχνολογία ΛογισμικούSlide 39 with Pump, Temperature_dial, Sensor, Globals, Alarm; use Globals ; procedure.
PL/SQL.
Βάσεις Δεδομένων (ΚΒΔ)
Αποθηκευμένες Διαδικασίες και Εναύσματα Δρ. Παναγιώτης Συμεωνίδης.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
JAVA και SQL Δαμιανός Χατζηαντωνίου
ORACLE PL/SQL Records. Εγγραφές (Records) DECLARE TYPE t_Rec1Type IS RECORD ( Field1 NUMBER, Field2 VARCHAR2(5)); TYPE t_Rec2Type IS RECORD ( Field1 NUMBER,
ORACLE PL/SQL Εξαιρέσεις Exceptions. ΟΡΙΣΜΟΣ Μια εξαίρεση (exception) είναι ένας δείκτης που ενεργοποιείται κατά την εκτέλεση του προγράμματος.
Ημέρα 1η.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Διασύνδεση Java Εφαρμογών με ΒΔ Π. Φιτσιλής 1.
1 Εναύσματα και Περιορισμοί Database Management Systems, Antonis Sidiropoulos.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Copyright © 2006 – Quality & Reliability SA PL/SQL TRIGGERS ΜΕΡΟΣ 1.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Εντολές Επιλογής και Αποφάσεων
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού ATM loop Print_input_message (” Welcome - Please enter your card”) ; exit when Card_input ; end loop.
1 26/6/2015 Προγραμματισμός Διαδικτύου – Lecture 8 LECTURE 8 Using Databases with PHP Scripts: Using MySQL Database with PHP Προγραμματισμός Διαδικτύου.
Βάσεις Δεδομένων II (Θ) Ενότητα 11: SQL διαγνωστικά σφαλμάτων (SQL error diagnostics), δήλωση Get Diagnostics Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής.
Βάσεις Δεδομένων II (Θ) Ενότητα 1: «Προσανατολισμού» (orientation) - Εισαγωγή Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο.
Βάσεις Δεδομένων II (Θ) Ενότητα 9: Συναλλαγές (Transactions) στο προϊόν mySQL Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο.
Βάσεις Δεδομένων II (Θ) Ενότητα 8: Συναλλαγές (Transactions) Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το.
Βάσεις Δεδομένων II (Θ) Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το.
ORACLE PL/SQL Cursors Μέρος 2. Cursors 2 Cursors με παραμέτρους Εισαγωγή παραμέτρου κατά την εκτέλεση Πολλά ανοίγματα με διαφορετικές παραμέτρους.
Επανάληψη και λυμένα θέματα του μαθήματος «Βάσεις Δεδομένων ΙΙ» για τη διδασκαλία του στo Τμήμα Πληροφορικής του ΤΕΙ Αθήνας. Διδάσκων: Χ. Σκουρλάς,
Μάθημα 4 Server side προγραμματισμός Βάσεις δεδομένων PHP.
Επανάληψη και λυμένα θέματα του μαθήματος «Βάσεις Δεδομένων ΙΙ» για τη διδασκαλία του στo Τμήμα Πληροφορικής του ΤΕΙ Αθήνας. Διδάσκων: Χ. Σκουρλάς,
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Σκοπός Μαθήματος Σκοπός: Παρουσιάζεται η διαχείριση βάσης δεδομένων με γλώσσα SQL, χρήση JDBC API, και τεχνολογίας JSP pages και λογισμικού mySQL. Στόχος.
Βάσεις Δεδομένων Ι 4η διάλεξη
Σύντομη περιγραφή Μια περιήγηση σε αφυπνιζόμενα προγράμματα (triggers), δηλαδή προγράμματα ενεργοποιούμενα από ενέργειες INSERT, UPDATE, DELETE στη βάση.
Η Γλώσσα Pascal Εντολή If
Σκοπός Μαθήματος Σκοπός: Παρουσιάζεται η διαχείριση βάσης δεδομένων με γλώσσα SQL, χρήση JDBC API, και τεχνολογίας JSP pages και λογισμικού mySQL. Στόχος.
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
Βάσεις Δεδομένων Ι Επανάληψη
Java DataBase Connectivity
Σκοπός & Στόχος Μαθήματος
Ενισχυτική διδασκαλία
Ποιότητα Λογισμικού Διαχείρισης Ποιότητας & Ποιοτικού Ελέγχου
Μοντελοποίηση Βαθμός Συσχέτισης Βαθμός μιας συσχέτισης ονομάζεται ο αριθμός των οντοτήτων που συνδέει. Συνήθως οι συσχετίσεις μεταξύ δύο οντοτήτων.
Βάσεις Δεδομένων και web-based Εφαρμογές
Ενισχυτική διδασκαλία
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι να κατανοήσουμε την έννοια της όψης της γλώσσας SQL. Χ. Σκουρλάς.
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Βάσεις Δεδομένων και web-based Εφαρμογές
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση δηλώσεων SQL που περιλαμβάνουν EXIST, ANY, ALL. Χ. Σκουρλάς.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Σκοπός Μαθήματος Σκοπός του μαθήματος είναι να παρουσιάσει τις έννοιες των Συναλλαγών (Transactions) στο προϊόν mySQL. 1.
Βάσεις Δεδομένων ΙΙ Triggers
Βάσεις Δεδομένων και web-based Εφαρμογές
Αρχιτεκτονική Συστημάτων
Βάσεις Δεδομένων και web-based Εφαρμογές
ΓΛΩΣΣΕΣ & ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
Βάσεις Δεδομένων ΙΙ Ενότητα 8: Συναλλαγές (Transactions) Χ. Σκουρλάς
Βάσεις Δεδομένων ΙΙ (SQL error diagnostics), δήλωση Get Diagnostics
Βάσεις Δεδομένων ΙΙ Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς
Databases Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Σχεσιακεσ βασεισ δεδομενων
Βάσεις Δεδομένων ΙΙ Ενότητα 5: Μελέτη περιπτώσεως:
Ενότητα # 5: Περιορισμοί ακεραιότητας
ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή
Εξαιρέσεις [Exceptions]
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

Έλεγχος λογισμικού Ποιότητα Λογισμικού Black Box testing White Box testing Χ. Σκουρλάς, cskourlas@teiath.gr       Α θ ή ν α 2015-16

Γίνεται παρουσίαση, με τη βοήθεια παραδειγμάτων. Σκοπός του μαθήματος είναι η παρουσίαση των απαραίτητων εννοιών ώστε οι φοιτητές να κατανοήσουν τον Έλεγχο Λογισμικού και ειδικότερα τις τεχνικές Black Box testing, White Box testing. Γίνεται παρουσίαση, με τη βοήθεια παραδειγμάτων. Χ. Σκουρλάς

Πότε Σταματά ο έλεγχος; Μόνο όταν το προϊόν αποσυρθεί οριστικά

Black box testing

Ακολουθούν παραδείγματα ελέγχου

έλεγχος: Τι θα συμβεί αν έχουμε Αστοχία του συστήματος (System fails) ή πρόβλημα δικτύου (the network connection breaks down) –για παράδειγμα μετά το πρώτο UPDATE-; Η δοσοληψία πρέπει να ακυρώνεται στο σύνολό της (rolled back). Το πρωτόκολλο (transaction protocol) εγγυάται ότι δεν υπάρχει απώλεια χρημάτων. έλεγχος: Τι θα συμβεί αν ένας από τους 2 λογαριασμούς δεν υπάρχει; Πρόβλημα Οι εντολές UPDATE θεωρείται ότι εκτελούνται «επιτυχώς» σε επίπεδο SQL. Λύση Θα πρέπει να εξετασθούν (inspect) τα SQL diagnostics και να ελεγχθεί ο αριθμός των γραμμών που επηρεάζονται από τις δύο εντολές UPDATE.

Η δοσοληψία (transaction) μπορεί να οδηγήσει σε λογικά λανθασμένη κατάσταση της βάσης δεδομένων (can lead into a logically erroneous state in the database) Η πρώτη εντολή UPDATE στην περίπτωση της mySQL μπορεί να οδηγεί σε προβληματική κατάσταση: το υπόλοιπο του λογαριασμού 1 ενδεχομένως γίνεται αρνητικό (παραβίαση του CHECK constraint) Τότε η εκτέλεση της δεύτερης εντολής UPDATE οδηγεί σε … Οι Application developers πρέπει να είναι ενήμεροι του τρόπου που το προϊόν DBMS mySQL«συμπεριφέρεται» και πως τα SQL diagnostics χρησιμοποιούνται.

Το επόμενο πρόγραμμα δεν είναι καλογραμμένο αλλά είναι ευκολονόητο για να «ξεκαθαρίσουμε» τη χρήση των ελέγχων Black Box και White Box. Δείτε πρώτα το πρώτο είδος ελέγχου και βεβαιωθείτε στη συνέχεια ότι γίνεται έλεγχος όλων των «μονοπατιών» εκτέλεσης στο πρόγραμμά μας.

DELIMITER // DROP PROCEDURE BankTransfer // CREATE PROCEDURE BankTransfer (IN fromAcct INT, IN toAcct INT, IN amount INT, OUT msg VARCHAR(100) ) P1: BEGIN DECLARE rows INT ; DECLARE newbalance INT; SELECT COUNT(*) INTO rows FROM Accounts WHERE acctID = fromAcct; UPDATE Accounts SET balance = balance - amount WHERE acctID = fromAcct; SELECT balance INTO newbalance FROM Accounts WHERE acctID = fromAcct; IF rows = 0 THEN ROLLBACK; SET msg = CONCAT('rolled back because of missing account ', fromAcct); ELSEIF newbalance < 0 THEN SET msg = CONCAT('rolled back because of negative balance of account ', fromAcct); ELSE SELECT COUNT(*) INTO rows FROM Accounts WHERE acctID = toAcct; UPDATE Accounts SET balance = balance + amount WHERE acctID = toAcct; SET msg = CONCAT('rolled back because of missing account ', toAcct); COMMIT; SET msg = 'committed'; END IF; END P1 // DELIMITER ;

mysql> SET @out = ' '; Query OK, 0 rows affected (0.00 sec) mysql> CALL BankTransfer (101, 202, 100, @out); mysql> SELECT @out; +-------------+ | @out | | committed | 1 row in set (0.00 sec) mysql> SELECT * FROM Accounts; +---------+-----------+ | acctID | balance | | 101 | 900 | | 202 | 2100 | 2 rows in set (0.00 sec)

mysql> CALL BankTransfer (100, 202, 100, @out); Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> SELECT @out; +------------------------------------------------------+ | @out | | rolled back because of missing account 100 | 1 row in set (0.00 sec) mysql> SELECT * FROM Accounts; +--------+----------+ | acctID | balance | | 101 | 900 | | 202 | 2100 | 2 rows in set (0.00 sec)

mysql> CALL BankTransfer (101, 200, 100, @out); Query OK, 0 rows affected (0.00 sec) mysql> SELECT @out; +--------------------------------------------------------+ | @out | | rolled back because of missing account 200 | +-------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT * FROM Accounts; +--------+----------+ | acctID | balance | | 101 | 900 | | 202 | 2100 | 2 rows in set (0.00 sec)

mysql> CALL BankTransfer (101, 202, 2000, @out); Query OK, 0 rows affected (0.00 sec) mysql> SELECT @out; +----------------------------------------------------------------------+ | @out | | rolled back because of negative balance of account 101 | 1 row in set (0.00 sec) mysql> SELECT * FROM Accounts; +--------+---------+ | acctID | balance | | 101 | 900 | | 202 | 2100 |

Developers and Error handling SQL standards have defined various diagnostic indicators some of which are implemented in most DBMS products, and some are not, while DBMS products have implemented indicators or exception handling methods of their own. Procedural extensions of SQL dialects are different, especially in terms of error handling.

Ερωτήσεις