Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring Παναγιώτης Σφέτσος, PhD
Advertisements

Ποιότητα Λογισμικού Ενότητα 6: Μέτρηση της κάλυψης των ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Ποιότητα Λογισμικού Ενότητα 1: Εισαγωγή στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Διδακτική Πληροφορικής
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Αντικειμενοστραφής Προγραμματισμός Ι
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Ανθρωπολογία του Θεάτρου Ενότητα 4 η : Βασικές αρχές της Τέχνης του Ηθοποιού Γιώργος Σαμπατακάκης, M.Phil. (Καίμπρητζ) – Ph.D. (Λονδίνο) Τμήμα Θεατρικών.
Τεχνολογία Ξύλου 1 Ενότητα 13: Ποιότητα και Πιστοποίηση Ξυλείας Διδάσκων: Δρ. Μιχάλης Σκαρβέλης, Αναπληρωτής Καθηγητής. Τμήμα Σχεδιασμού και Τεχνολογίας.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Εκπαιδευτικά Προγράμματα με Χρήση Η/Υ ΙΙ Θέμα «παιγνίδια» (website address) Διδάσκουσα: Καθηγήτρια Τζένη.
Τμήμα Τεχνολόγων Γεωπόνων Τίτλος Μαθήματος: ΚΑΛΛΩΠΙΣΤΙΚΑ ΔΕΝΤΡΑ ΚΑΙ ΘΑΜΝΟΙ Ενότητα 12: Οδηγίες δημιουργίας φυτολογίου Γρηγόριος Βάρρας Αν. Καθηγητής Άρτα,
Διοίκηση Ανθρωπίνων Πόρων Ενότητα 3: Προσέλκυση Ανθρώπινου Δυναμικού. Διδάσκων: Γεώργιος Ασπρίδης, Επίκουρος Καθηγητής. Τμήμα Διοίκησης Επιχειρήσεων.
Προγραμματισμός κινητών συσκευών
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Αντικειμενοστραφής Προγραμματισμός Ι
Προγραμματισμός κινητών συσκευών
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Προγραμματισμός κινητών συσκευών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
Ποιοτικός Έλεγχος Πρώτων Υλών
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(9)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΕνΟτητα # 9: Ms Word VI CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
Διαχείριση Κινδύνου Ενότητα 7: Παρακολούθηση Κινδύνων.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Διαχείριση Κινδύνου Ενότητα 3: Σχέδιο Διαχείρισης Κινδύνου.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(3)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός κινητών συσκευών
Επικοινωνιακός Προγραμματισμός Ι
Προγραμματισμός κινητών συσκευών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επιχειρησιακές Επικοινωνίες
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(7)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(4)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΕνΟτητα # 8: Ms Word V CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(5)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(10)
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός κινητών συσκευών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.

Άδειες χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην παρακάτω άδεια χρήσης Creative Commons (C C): Αναφορά δημιουργού (B Y), Παρόμοια Διανομή (S A), 3.0, Μη εισαγόμενο. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Τ.Ε.Ι. Θεσσαλίας» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Περιεχόμενα ενότητας 1) Τι είναι η σουίτα ελέγχων 2) Δημιουργία σουίτας ελέγχων Σουίτες Ελέγχων4

Τι είναι η σουίτα ελέγχων (Test Suite) Στην ενότητα αυτή, θα αναφέρουμε μία ειδική κλάση εκτέλεσης (Runner), που μας επιτρέπει να εκτελέσουμε πολλές περιπτώσεις ελέγχου (Test Cases) όλες μαζί. Αυτό, μας δίνει την δυνατότητα να ομαδοποιήσουμε διαφορετικά υποσύνολα των ελέγχων σε διαφορετικές ομάδες, και να εκτελούμε το κάθε υποσύνολο με μία μόνο εκτέλεση. Σουίτες Ελέγχων5

Η κλάση Calculator package domain; public class Calculator { public double add(double num1, double num2) { return num1 + num2; } Στις προηγούμενες ενότητες αναπτύξαμε την κλάση Calculator. Η κλάση αυτή παρέχει την μέθοδο add η οποία δέχεται δύο παραμέτρους double και επιστρέφει το άθροισμά τους. Σουίτες Ελέγχων6

Μία απλή κλάση ελέγχου για την Calculator.Add package domain; import static org.junit.Assert.*; import org.junit.Test; public class CalculatorTest public void testAdd() { Calculator c = new Calculator(); double result = c.add(50, 10); assertEquals(60, result, 0); } Η απλή αυτή κλάση ελέγχου, ελέγχει αν η μέθοδος Calculator.add επιστρέφει το ορθό αποτέλεσμα, αν κληθεί με 50 και 10 ως παραμέτρους. Σουίτες Ελέγχων7

Προσθήκη μίας άλλης κλάσης στην εφαρμογή Έστω πως θέλουμε να κάνουμε μία κλάση ExpenseList, η οποία θα διατηρεί μία λίστα εξόδων. Οι χρήστες θα μπορούν να προσθέτουν έξοδα στη λίστα (κάθε έξοδο θα είναι απλά ένας αριθμός double). Επίσης, οι χρήστες θα πρέπει να μπορούν να καλέσουν μία μέθοδο, και να τους πει τα συνολικά έξοδα. Αυτή τη μέθοδο θα την ονομάσουμε totalExpenses. Η μέθοδος totalExpenses θα χρησιμοποιεί εσωτερικά την μέθοδο Calculator.add, για να υπολογίσει το συνολικό άθροισμα των εξόδων. Σουίτες Ελέγχων8

Η κλάση ExpenseList (1 από 2) package domain; import java.util.ArrayList; import java.util.List; public class ExpenseList { private List expenseList; public ExpenseList() { expenseList = new ArrayList (); } public void addExpense(Double amount) { expenseList.add(amount); } Σουίτες Ελέγχων9

Η κλάση ExpenseList (2 από 2) public Double totalExpenses() { double total=0; Calculator c = new Calculator(); for (Double d : expenseList) { total = c.add(total, d); } return total; } Σουίτες Ελέγχων10

Μία απλή κλάση ελέγχου για την ExpenseList.totalExpenses package domain; import static org.junit.Assert.*; import org.junit.Test; public class ExpenseListTest public void testTotalExpenses() { ExpenseList el = new ExpenseList(); el.addExpense(100.0); el.addExpense(200.0); assertEquals(300.0,el.totalExpenses(),0); } Σουίτες Ελέγχων11

Σουίτα Ελέγχων Παραδείγματος Ο στόχος της δημιουργίας της Σουίτας Ελέγχων στο παράδειγμά μας, είναι η εκτέλεση των δύο περιπτώσεων ελέγχων που δημιουργήσαμε μαζί. Μία σουίτα ελέγχων είναι και αυτήν ένας έλεγχος, ο οποίος εκτελείται ακριβώς όπως και οι άλλοι έλεγχοι στο περιβάλλον του Eclipse. Στην συνέχεια, θα δούμε τα βήματα της δημιουργίας μίας σουίτας ελέγχων, για το παράδειγμα που κάναμε. Θα δημιουργήσουμε την σουίτα ελέγχων, και θα εντάξουμε τις δύο κλάσεις ελέγχου. Θα εκτελέσουμε την σουίτα ελέγχων, και θα εξετάσουμε το αποτέλεσμα. Σουίτες Ελέγχων12

Δημιουργία σουίτας ελέγχων Για την δημιουργία της σουίτας επιλέγουμε File  New  Other και από την κατηγορία Java  JUnit επιλέγουμε JUnit Test Suite όπως φαίνεται στην Εικόνα. Πατάμε το πλήκρο ‘Next’ για το επόμενο βήμα. Σουίτες Ελέγχων13

Ένταξη περιπτώσεων ελέγχου στην σουίτα ελέγχων Στο επόμενο βήμα του οδηγού, εντάσσουμε τις περιπτώσεις ελέγχου που επιθυμούμε στην σουίτα ελέγχων. Εξ ορισμού επιλέγονται οι περιπτώσεις ελέγχου που έχουμε ήδη δημιουργήσει, και η σουίτα ονομάζεται AllTests. Μπορούμε να δημιουργήσουμε πολλές διαφορετικές σουίτες, με διαφορετικές ομάδες ελέγχων (π.χ. SmallTests, LargeTests, ConcurrencyTests, και τα λοιπά) Σουίτες Ελέγχων14

Εμφάνιση της σουίτας ελέγχων στον Package Explorer του Eclipse Αφού πατήσετε το πλήκτρο Finish η σουίτα ελέγχων θα δημιουργηθεί και θα εμφανισθεί μαζί με τις άλλες κλάσεις στον package explorer του Eclipse. Για την εκτέλεση της σουίτας ελέγχων απλά κάνουμε δεξί κλικ στο αρχείο ‘AllTests.java’ και από το αναδυόμενο μενού επιλέγουμε Run As  JUnit Test. Σουίτες Ελέγχων15

Εξέταση του αποτελέσματος εκτέλεσης της σουίτας ελέγχων Η εκτέλεση της σουίτας ελέγχων συνεπάγεται την εκτέλεση και των δύο περιπτώσεων ελέγχου (ή κλάσεων ελέγχου αν προτιμάτε): CalculatorTest.testAdd, και ExpenseListTest.testTotalExpenses. Στο παράδειγμά μας επίσης φαίνεται πως εκτελέσθηκαν δύο έλεγχοι σε σύνολο δύο ελέγχων (2/2) και δεν υπήρχαν λάθη ή αποτυχίες. Σουίτες Ελέγχων16

Εξέταση του κώδικα της σουίτας ελέγχων (1 από 2) package domain; import org.junit.runner.RunWith; import org.junit.runners.Suite; CalculatorTest.class, ExpenseListTest.class }) public class AllTests { } Σουίτες Ελέγχων17

Εξέταση του κώδικα της σουίτας ελέγχων (2 από 2) Η κλάση AllTests που δημιουργήθηκε (δηλαδή η κλάση της σουίτας ελέγχων) είναι κενή. Η κλάση αυτή εκτελείται με έναν ειδικό Runner, όπως και οι παραμετρικές κλάσεις. Αυτός ο Runner είναι ο Suite runner. Για αυτό πρέπει να μπει η στην αρχή της κλάσης. Οι κλάσεις (περιπτώσεις) ελέγχου που θα εκτελεσθούν όταν τρέξει η σουίτα, προσδιορίζονται με την Η κλάση αυτή παράχθηκε αυτόματα από το Eclipse με την χρήση του οδηγού, αλλά αν θέλουμε να προσθέσουμε κάποιον νέο έλεγχο στην σουίτα, μπορούμε να το κάνουμε με την απλή προσθήκη του ονόματος της κλάσης, ακολουθούμενο από.class στην λίστα της Σουίτες Ελέγχων18

Τέλος ενότητας Επεξεργασία: Σοφιανίδου Γεωργία