1 of 49

�Ένα Μάθημα Δράκου για το�Software Testing

Kari Kakkonen

5.2.2021

Έκδοση 1.0

© Dragons Out Oy

1

12.2.2022

2 of 49

Σχετικά με την Παρουσίαση

2

© Dragons Out Oy

3 of 49

Σχετικά με την παρουσίαση

  • Αυτή η παρουσίαση συγκρίνει τα γεγονότα της πληροφορικής, του coding και του software testing με τον κόσμο των φανταστικών ιστοριών

  • Αυτή η παρουσίαση έχει σκοπό να υποστηρίξει τη διδασκαλία στα σχολεία, για 1 ή για 2 μαθήματα.

  • Αυτή η παρουσίαση έχει άδεια Creative Commons, δηλαδή μπορεί να χρησιμοποιηθεί ελεύθερα για μη εμπορικούς σκοπούς

  • Η παρουσίαση θα ενημερώνεται και οι ενημερωσεις θα βρίσκονται εδώ:

  • Ιδέες προς βελτίωση μπορούν να σταλούν εδώ
    • feedback@dragonsout.com

  • Ας εξοικιώσουμε τις νέες γενιές στο software testing!

© Dragons Out Oy

3

12.2.2022

Έξω οι Δράκοι- ένα μάθημα δράκου για το software testing PowerPoint από τον Kari Kakkonen, με άδεια χρήσης Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

4 of 49

Σχετικά με το βιβλίο “Έξω οι Δράκοι”

  • Αυτή η παρουσίαση βασίζεται στον κόσμο και τους χαρακτήρες του βιβλίου “Εξω οι Δράκοι”!

  • Το βιβλίο συμπληρώνει τη μαθησιακή εμπειρία, αλλά δεν απαιτείται για τη χρήση αυτής της παρουσίασης στη διδασκαλία.

  • Συγγραφέας: Kari Kakkonen

  • Μετάφραση: Greek Software Testing Board, Δάφνη Κατσουλιέρη, Ειρήνη Κεφαλά, Έλενα Χρονοπούλου, Ελένη Καρακίζη , Κυριακή Βαδέσκα , Χάρης Σταμάτης , Δημήτρης Μεταξάκης
  • Εικονογράφος: Adrienn Széll Δικαιώματα κειμένου και εικονογράφησης= Εξω οι Δράκοι
  • Πληροφορίες: www.dragonsout.com

© Dragons Out Oy

4

5 of 49

Σχετικά με τις ασκήσεις

  • Ασκήσεις ζωγραφικής
    • Χρειάζεστε χαρτί και μολύβια.
    • Μπορείτε να βγάλετε φωτογραφία το σχέδιο και να το ανεβάσετε π.χ. σε μια υπηρεσία

https://padlet.com

      • Ο δάσκαλος πρέπει να δημιουργήσει έναν «πίνακα» Padlet για τους σκοπούς του μαθήματος.
      • Είναι ένα διασκεδαστικό και διαδραστικό μέρος του μαθήματος

    • Χρειάζεστε ένα κινητό τηλέφωνο για τη λήψη των φωτογραφιών
  • Ασκήσεις Testing
    • Χρειάζεστε το δικό σας τηλέφωνο ή tablet και οποιαδήποτε εφαρμογή θέλετε να δοκιμάσετε.
    • Μπορείτε να μοιραστείτε το τηλέφωνο σας με έναν φίλο και να κάνετε την άσκηση ως ζευγάρι.

  • Μπορείτε να εκτελέσετε τις ασκήσεις ως ασκήσεις ταχύτητας 5 λεπτών ή μπορείτε να χρησιμοποιήσετε όσο χρόνο θέλετε για αυτές

© Dragons Out Oy

5

12.2.2022

6 of 49

Δράκοι/ Defects

6

© Dragons Out Oy

7 of 49

Τι είναι το λογισμικό ;

  • Υπάρχει λογισμικό παντού, σε παιχνίδια, ηλεκτρονικά καταστήματα ή συστήματα διεύθυνσης αυτοκινήτου, με τον ίδιο τρόπο που ένας φανταστικός κόσμος είναι γεμάτος κάστρα και χωριά.

  • Ένα λογισμικό μπορεί επίσης να εκτελέσει μια συσκευή

  • Ονομάζεται επίσης πρόγραμμα, αν και στην πραγματικότητα πολλά προγράμματα αποτελούν ένα λογισμικό.

© Dragons Out Oy

7

12.2.2022

Λογισμικό = κώδικας υπολογιστή που επιτρέπει σε ένα άτομο να κάνει κάτι, όπως να παίξει ένα παιχνίδι. Επίσης, το προϊόν του λογισμικού.

8 of 49

Τι είναι το defect?

  • Κάθε κομμάτι software έχει defects καθώς είναι ανθρώπινο το να γίνονται λάθη
  • Τα defects κάνουν την χρήση του software δύσκολη, ακριβώς όπως οι δράκοι παρενοχλούν τα κάστρα και τους κατοίκους στα παραμύθια
  • Τα defects βρίσκονται μέσα στο software από λάθος και θα πρέπει να αφαιρούνται, ιδανικά πριν τα βρει ο τελικός χρήστης.
  • Το defect συχνά αποκαλείται και bug.

© Dragons Out Oy

8

12.2.2022

Defect = ένα πρόβλημα στον κώδικα το οποίο προκαλεί ένα failure στο software. Οι άνθρωποι συχνά το αποκαλούν και error (σφάλμα), αν και, για να μιλάμε με ακρίβεια, το error είναι μια ανθρώπινη πράξη η οποία τελικά προκαλεί το defect στον κώδικα.

9 of 49

Άσκηση 5-15 λεπτά:

Σχεδίασε το δικό σου defect –�ζωγράφισε τον δικό σου δράκο

// Τι χρειάζεσαι

Χαρτί και μολύβι

// Εργασία

1 Σκέψου ένα defect που έχεις βρει

  • Γράψε το όνομα του defect και κάποια λόγια για να το περιγράψεις

2 Σκέψου έναν αντίστοιχο δράκο

  • Γράψε τα χαρακτηριστικά του δράκου.
  • Αν το defect ήταν σημαντικό, ο δράκος είναι μεγάλος κτλ.

3 Ζωγράφισε τον δράκο.

  • Το σημαντικό είναι να ολοκληρώσεις την ιδέα για το πώς ο δράκος απεικονίζει το defect.
  • Δεν χρειάζεται το σχέδιο να ειναι τέλειο.

4 Δείξε την εικόνα στους άλλους με τον τρόπο που έχει συμφωνηθεί

  • Π.χ μέσω της εκπαιδευτικής πλατφόρμας Padlet.

9

© Dragons Out Oy

10 of 49

Τι είναι το testing?�Τι είναι το software development?

10

© Dragons Out Oy

11 of 49

Τι είναι το software development?

  • Πρέπει να αποφασίσεις τι θέλεις να κάνει το software.
  • Πρέπει να φτιάξεις τον κώδικα για να το κάνει.
  • Πρέπει να κάνεις test πώς δουλεύει το software.
  • Σε ένα παραμύθι, πρέπει να σχεδιάσεις και να χτίσεις τα τείχη γύρω απο το χωριό και ταυτόχρονα να νικησεις τους δράκους που το πολιορκούν.

© Dragons Out Oy

11

12.2.2022

Software development = όλες οι απαιτούμενες ενέργειες για να δουλέψει το software. Οι ενέργειες αυτές περιλαμβάνουν τον ορισμό των απαιτήσεων του συστηματος (requirements), το να γραφτεί ο κώδικας (coding), και το να ελεγχθεί (testing).

12 of 49

Τι είναι το testing?

  • Πρέπει να βρεις τα defects ώστε να μπορέσουν να διορθωθούν
  • Το Testing ψάχνει για defects και τα εντοπίζει, ακριβώς όπως και σε ένα παραμύθι φρουρείς τα τείχη για δράκους.
  • Σαν αποτέλεσμα του testing, κάποιες φορές βρίσκεις defects.
  • Το testing στην πραγματικότητα δεν βρίσκει το defect, αλλά το software failure το οποίο προκλήθηκε από το defect στον κώδικα.

© Dragons Out Oy

12

12.2.2022

Test = να δοκιμάζεις ή να ελέγχεις χρησιμοποιώντας διαφορετικές τιμές, σε διαφορετική σειρά, με διαφορετικούς τρόπους για να δεις αν κάτι δουλεύει σωστά ή πόσο καλά δουλεύει

13 of 49

Άσκηση 5-15 λεπτά:

Σχεδίασε το δικό σου software –�ζωγράφισε το δικό σου κάστρο

// Τι χρειάζεσαι

Χαρτί και μολύβι

// Eργασία

1 Σκέψου ένα software που έχεις χρησιμοποιήσει.

  • Γράψε το όνομα του software και λίγες λέξεις για να το περιγράψεις
  • Γράψε πώς αυτό το software αντέχει στα defects.

2 Σκέψου ένα αντιστοιχο κάστρο που θα άντεχε μια επίθεση δράκου.

  • Γράψε τα χαρακτηριστικά του κάστρου
  • Μικρό, μεγάλο; Τείχη; Οπλισμός;

3 Ζωγράφισε το κάστρο.

  • Το σημαντικό είναι να ολοκληρώσεις την ιδέα για το πώς το κάστρο απεικονίζει το software.
  • Δεν χρειάζεται το σχέδιο να ειναι τέλειο.

4 Δείξε την εικόνα στους άλλους με τον τρόπο που έχει συμφωνηθεί

Π.χ μέσω της εκπαιδευτικής πλατφόρμας Padlet.

13

© Dragons Out Oy

14 of 49

Τεχνικές Testing

  • Μπορείς να τεστάρεις με πολλούς τρόπους - αυτοί είναι οι διαφορετικές τεχνικές testing.
    • Μπορείς να χρησιμοποιήσεις το software με τον σωστό τρόπο.
    • Μπορείς να χρησιμοποιήσεις το software με τον λάθος τρόπο
    • Μπορείς να εξερευνήσεις πώς δουλεύει το software.
    • Μπορείς να παρατηρήσεις όταν κάποιος άλλος χρησιμοποιεί το software.
  • Μπορείς να χρησιμοποιείς πολλές τεχνικές παράλληλα, όπως σε ένα παραμύθι ένας ιππότης μπορεί και να φτιάξει έναν χάρτη αλλά και να ρωτήσει τους χωρικούς πού είδαν τον δράκο.

© Dragons Out Oy

14

12.2.2022

Τεχνική Testing = ένας τρόπος βάσει του οποίου επιλέγεις τον σωστό αριθμό των tests για να για να έχεις καλή κάλυψη (coverage). Υπάρχει πληθώρα τεχνικών που καλύπτουν διαφορετικές ανάγκες.

15 of 49

Άσκηση 5-30 λεπτά:

Κάνε test ένα software στο

κινητό σου τηλέφωνο

// Τι χρειάζεσαι

Κινητό τηλέφωνο,

tablet ή

υπολογιστή

// Εργασία

1 Διάλεξε ένα software.

  • Π.χ. ένα παιχνίδι

2 Σκέψου για το software υπό διαφορετικές οπτικές.

  • Τι δουλεύει σωστά;
  • Τι δουλεύει λάθος;
  • Τι φαίνεται αργό;
  • Τι φαίνεται περίεργο;

3 Χρησιμοποίεισαι το software έχοντας αυτές τις οπτικές στο μυαλό σου.

  • Σημείωσε τί βρήκες.

4 Μοιράσου τα ευρήματά σου με τους άλλους

  • Συζήτηση!

15

© Dragons Out Oy

16 of 49

Ιππότες – προγραμματιστές (coders) και testers

16

© Dragons Out Oy

17 of 49

Ποιος τεστάρει περισσότερο?

  • Συνήθως ο προγραμματιστής (software developer) δημιουργεί το software, αλλά και το τεστάρει.
  • Ακόμη υπάρχουν και οι testers οι οποίοι ειδικεύονται στο testing. Εντοπίζουν πιο εύκολα τα προβλήματα.
  • Μαζί οι coders και οι testers σχηματίζουν μια ομάδα software development, όπως σε μια ιστορία φαντασίας υπάρχουν πολλοί ιππότες.
  • Όταν το software είναι μεγαλύτερο τότε χρειάζεται και μια πλήρης ομάδα αντί για μόνο ένα προγραμματιστή.

© Dragons Out Oy

17

12.2.2022

Ομάδα software development = μια ομάδα ατόμων που συνεργάζονται για να φτιάξουν και να τεστάρουν το software. Αυτούς τους ονομάζουμε και ομάδα development.

18 of 49

Όταν εμφανίζεται ένας δράκος, χρειάζεσαι…

Ιστορία

  • Η Swanlake γύρισε το άλογό της προς τα πίσω και το οδήγησε βιαστικά προς το οχυρό. Ειδοποίησε τους ιππότες και τον οικοδόμο Aidan οτι ο δράκος πλησίαζε. Όλοι οι ακονισμένοι κορμοί χρειαζόταν να μεταφερθούν επειγόντως στην περίφραξη του οχυρού. Δόρατα και σπαθιά, όποιος και αν τα είχε, θα έπρεπε να τα φέρει αμέσως. Όλο το διαθέσιμο νερό θα έπρεπε να χυθεί σε κουβάδες.Ύστερα πήγε να βρει τον Yellowbeard στο κάστρο.

Επεξήγηση

  • Στην ιστορία ο δράκος φτάνει σε ένα χωριό στη διάρκεια των επισκευών της οχύρωσης. Αντίστοιχα, τα περισσότερα defects εμφανίζονται στο software στη διάρκεια της δημιουργίας του software, πριν αυτό κυκλοφορήσει. Τότε τα άτομα που ψάχνουν για defects (testers) και αυτα που τα διορθώνουν (coders), είναι συνεχώς διαθέσιμα. Συνήθως ένας tester βρίσκει το defect, ώστε να μην το βρει αργότερα ο χρήστης. Σε αυτή την ιστορία η Swanlake ήταν μια tester που βρήκε και αναγνώρισε ένα defect, δηλαδή το δράκο. Ως tester δε μπορούσε αυτή τη φορά να φτιάξει το defect αλλά χρειάστηκε να τη βοηθήσουν προγραμματιστές (developers).

© Dragons Out Oy

18

19 of 49

Άλλοι testers

19

© Dragons Out Oy

20 of 49

Χρήστες (users)

  • Οποιοσδήποτε μπορεί να τεστάρει, αλλά οι coders και οι testers τεστάρουν περισσότερο.
  • Οι χρήστες μπορεί να συμμετάσχουν στο testing, όπως σε μια ιστορία φαντασίας οι χωρικοί, τα παιδιά και οι ενήλικες βρίσκουν δράκους.
  • Αυτό το είδος testing ονομάζεται acceptance testing.
  • Οι χρήστες μπορούν επίσης να βοηθήσουν στη δημιουργία του software.

© Dragons Out Oy

20

Tester = ένα άτομο που κάνει testing. Ένα άτομο που έχει ικανότητες testing. Ο tester μπορεί να είναι full-time tester, programmer, administrator, ή user.

21 of 49

Ομάδα συντήρησης

(ομάδα maintenance)

  • Η ομάδα συντήρησης παρακολουθεί το software και το κρατάει σε λειτουργία. Είναι υπεύθυνη για τη συντήρησή του.
  • Για να το κάνουν αυτό τεστάρουν αλλά και φτιάχνουν defects.
  • Βοηθούν επίσης τους χρήστες.
  • Η ομάδα συντήρησης συχνά προσπαθεί μόνη της αλλά αν χρειαστεί μπορεί να ζητήσουν βοήθεια από τους προγραμματιστές, όπως σε μια ιστορία φαντασίας ένας κυνηγός μπορεί να ζητήσει βοήθεια από έναν ιππότη για να σκοτώσει ένα δράκο.
  • Καμιά φορα αυτός που είναι υπεύθυνος για τη συντήρηση ανήκει στην ομάδα development (τότε η ομάδα development λέγεται ομάδα DevOps).

© Dragons Out Oy

21

Ομάδα maintenance= οι διαχειριστές (administrators), τα άτομα που φροντίζουν για τη λειτουργία του software όταν χρησιμοποιείται. Ονομάζεται και ομάδα operations.

22 of 49

DevOps – Συνεχής παράδοση

(Continuous Delivery)

  • Καμιά φορά, ένα άτομο operations είναι μέρος της ομάδας development. Σε αυτή την περίπτωση, η ομάδα είναι μια ομάδα DevOps, όπως σε μια ιστορία φαντασίας οι κυνηγοί συνεργάζονται με τους ιππότες.
  • Αυτό το είδος ομάδας δημιουργεί και τεστάρει το software συνεχώς, παραδίδει καινούργιες λειτουργίες στους χρήστες και παράλληλα υποστηρίζει τους χρήστες του software στο να το χρησιμοποιούν.

© Dragons Out Oy

22

12.2.2022

DevOps = Συνδυάζουν τη δημιουργία και τη λειτουργικότητα του software. Η ίδια ομάδα δημιουργεί και συντηρεί το software.

23 of 49

Ιδιοκτήτες προϊόντων

(Product owners)

  • Οι ιδιοκτήτες παραγγέλνουν software και συστήματα από τις ομάδες development.
  • Αυτοί μπορεί να είναι απλά ιδιοκτήτες προϊόντων ή η διοίκηση μιας εταιρίας.
  • Ορίζουν τι θα πρέπει να κάνει το software, αλλά ακούν την ομάδα development, όπως σε μια ιστορία φαντασίας οι άρχοντες και αρχόντισσες παραγγέλνουν κάστρα από τους ιππότες και σχεδιάζουν μαζί τους.

© Dragons Out Oy

23

Product owner = ένα άτομο που ζητά να φτιαχτεί κάποιο προϊόν software. Ο product owner μπορεί να είναι και μια εταιρεία, η οποία φυσικά εκπροσωπείται από ένα άτομο.

24 of 49

Η βοήθεια των ειδικών

(Experts)

  • Οι ομάδες των προγραμματιστών (developers) δεν γνωρίζουν τα πάντα, γι’αυτό χρειάζονται βοήθεια από τους experts σε ειδικούς τομείς, όπως σε μια ιστορία φαντασίας οι σοφοί βοηθούν χωρικούς και ιππότες.
  • Συνηθισμένοι τύποι ειδικών (experts) είναι άτομα που είναι εξειδικευμένα στην χρηστικότητα (usability), την ασφάλεια (security) και την απόδοση (performance). Αυτοί βοηθούν την ομάδα των προγραμματιστών.
  • Για παράδειγμα, ένας ειδικός (expert) εξειδικευμένος στην χρηστικότητα (usability), συνήθως εκτελεί ή καθοδηγεί το usability testing.

© Dragons Out Oy

24

Usability expert = ένα άτομο που ειδικεύεται στον σχεδιασμό πληροφοριακών συστημάτων ώστε να έχουν καλή χρηστικότητα.

25 of 49

Άσκηση 5-15 λεπτά:

Σχεδιάστε τον δικό σας tester –�ζωγραφίστε τον δικό σας ιππότη

// Τι θα χρειαστείτε

Χαρτί και μολύβι

// Εργασία

1 Σκεφτείτε πως θα περιγράφατε έναν καλό tester.

  • Περίεργο? Όμορφο? Γρήγορο? Υπομονετικό?
  • Γράψτε κάποια από αυτά τα χαρακτηριστικά.

2 Σκεφτείτε έναν αντίστοιχο ιππότη ή κάποιον άλλον χαρακτήρα ο οποίος βρίσκει δράκους.

  • Γράψτε τα χαρακτηριστικά που έχει αυτός ο ιππότης.
  • Ικανός? Προσεκτικός? Τι όπλα έχει?

3 Ζωγραφίστε τον ιππότη.

  • Το κύριο ζητούμενο είναι να μεταφέρετε την ιδέα σας για το πώς ο ιππότης μπορεί να αντιπροσωπεύσει τον tester.
  • Δεν υπάρχει λόγος να στοχεύσετε σε μια τέλεια εικόνα.

4 Δείξτε την εικόνα που ζωγραφίσατε και στους υπόλοιπους με τρόπο που έχετε συμφωνήσει.

  • Π.χ μέσω της εκπαιδευτικής πλατφόρμας Padlet.

25

© Dragons Out Oy

26 of 49

Διαφορετικά είδη defect

26

© Dragons Out Oy

27 of 49

Υπάρχουν διαφορετικά είδη defect

  • Δεν μπορείς να βρεις όλα τα defects, αλλά πρέπει να προσπαθήσεις να τα βρεις.
  • Κάποια defects είναι μεγάλα, κάποια είναι μικρά, κάποια μπορούν να αφαιρεθούν εύκολα, ενώ κάποια άλλα είναι πιο δύσκολο να αφαιρεθούν. Όπως σε μια ιστορία φαντασίας στην οποία υπάρχουν διαφορετικά είδη δράκων.
  • Ένα σοβαρό (severe) defect πρέπει να φτιαχτεί άμεσα.

© Dragons Out Oy

27

9.7.2021

Severity = συνήθως τα defects κατηγοριοποιούνται βάσει της σοβαρότητας (severity) τους. Ένα defect μπορεί να είναι σοβαρό, που σημαίνει ότι μπορεί να είναι ακριβό ή πολύ βλαβερό. Ένα defect μπορεί να είναι όμως και λιγότερο σοβαρό.

28 of 49

Ενοχλητικός δράκος

  • Χρώμα: Κόκκινο
  • Μέγεθος: Μέτριο
  • Πόσο δύσκολο είναι να βρεθεί?: Δύσκολο
  • Πόσο δύσκολο είναι να εξολοθρευτεί?: Εύκολο
  • Πετάει?: Όχι
  • Φτερά: Μικρά
  • Εκπνέει φωτιά?: Ναι
  • Αγαπάει πολύ: Να τρώει πρόβατα

© Dragons Out Oy

28

9.7.2021

29 of 49

Ενοχλητικός δράκος

  • Όνομα Defect: Διαρροή μνήμης (Memory leak)
  • Severity: Μέτριο (Medium)
  • Συμπτώματα Defect: Ο υπολογιστής γίνεται πιο αργός, εώς ότου να μην μπορεί να λειτουργήσει καθόλου και στο τέλος κλείνει.
  • Αιτία του defect: Η μνήμη δεσμεύεται για τη χρήση ενός προγράμματος λογισμικού, αλλά δεν απελευθερώνεται μετά το πέρας της χρήσης του.
  • Βασικά αίτια του Defect (Root causes): Ο προγραμματιστής (developer) δεν είναι προσεκτικός στην απελευθέρωση της μνήμης. Μπορεί να μην ξέρει ή να μην θυμάται πως να το κάνει.
  • Testing: Μετράμε τη μνήμη που χρησιμοποιείτε όταν το λογισμικό είναι σε λειτουργία. Αν η μνήμη που χρησιμοποιείται αυξάνεται συνεχώς, τότε πιθανόν και να υπάρχει το λεγόμενο memory leak.
  • Διόρθωση: Τρέχουμε το λογισμικό γραμμή γραμμή, μέχρι να βρούμε το σημείο στο οποίο πρέπει να γίνει η διόρθωση. Η μνήμη ελευθερώνεται μόλις προστεθεί το κατάλληλο κομμάτι κώδικα.

© Dragons Out Oy

29

9.7.2021

30 of 49

Δράκοι ληστές

  • Χρώμα: Λαμπερό πράσινο ή γκρι
  • Μέγεθος: Μικρό έως μεγάλο
  • Πόσο δύσκολο είναι να βρεθούν?: Εύκολο έως δύσκολο
  • Πόσο δύσκολο είναι να εξολοθρευτούν?: Εύκολο έως δύσκολο
  • Πετάνε?: Κάποιοι ναι, κάποιοι όχι
  • Φτερά: Μικρά έως μεγάλα
  • Εκπνέουν φωτιά?: Ναι
  • Αγαπάνε πολύ: Να κλέβουν φαγητό και θησαυρούς

© Dragons Out Oy

30

9.7.2021

31 of 49

Δράκοι ληστές

  • Όνομα Defect: Defects λειτουργικότητας (functionality defects)
  • Severity: Χαμηλό (Low) - Μέτριο (Medium) - Υψηλό (High)
  • Συμπτώματα Defect: Το λογισμικό δεν λειτουργεί όπως θα έπρεπε. Οι υπολογισμοί δίνουν λάθος αποτελέσματα. Ο χρήστης βλέπει πληροφορία σε λάθος σημείο.
  • Αιτία του defect: Η λειτουργικότητα έχει υλοποιηθεί λάθος.
  • Βασικά αίτια του Defect (Root causes): Ο προγραμματιστής (developer) δεν έχει κατανοήσει τι εννοούσε ο χρήστης, ή το defect δημιουργήθηκε από βιασύνη ή απροσεξία.
  • Testing: Χρησιμοποιούμε το λογισμικό κανονικά, με γνώμονα την εμπειρία του tester ή τις διευκρινήσεις στα προαπαιτούμενα.
  • Διόρθωση: Ο κώδικας διορθώνεται ώστε να λειτουργεί σωστά.

© Dragons Out Oy

31

9.7.2021

32 of 49

Κακόβουλος Δράκος

  • Χρώμα : Μαύρο
  • Μέγεθος : Μικρός
  • Πόσο δύσκολο είναι να βρεθούν: Δύσκολο
  • Πόσο δύσκολο είναι να εξολοθρευτούν: Μέτριο
  • Πετάει: Ναι
  • Φτερά: Μεσαία
  • Εκπνέει φωτιά: Πολύ
  • Αγαπάνε πολύ: Να κλέβουν φαγητό και θησαυρούς χωρίς να τους βρουν.

© Dragons Out Oy

32

12.2.2022

33 of 49

Κακόβουλος Δράκος

  • Όνομα Defect: Defect προστασίας
  • Σοβαρότητα: Υψηλή
  • Συμπτώματα Defect: Πληροφορίες του συστήματος μπορούν να βρεθούν έξω από αυτό (π.χ Στοιχεία πιστωτικής κάρτας).Μπορεί επίσης να είναι λάθος λειτουργία του προγράμματος.
  • Αιτία του Defect: Ένας εγκληματίας χρησιμοποίησε defect προστασίας για να παραβιάσει το σύστημα,και μετά έκλεψε ή κατέστρεψε κάτι από το σύστημα.
  • Βασικά αίτια του Defect: Ο προγραμματιστής δεν ακολούθησε τις τελευταίες αρχές προστασίας του κώδικα. Μάλλον δεν τις ξέρει.
  • Testing: Κοιτάς για γνωστές αδυναμίες του προγράμματος χρησιμοποιώντας το ή μέσα από πρόγραμμα που αφορά την προστασία του προγράμματος. Μπορείς επίσης να δείς τον κώδικα σου για λάθη.Μπορείς να ψάξεις για γνωστά Defects που υπάρχουν.
  • Διόρθωση: Μία γνωστή αδυναμία έχει και μία γνωστή λύση(fix). Φτιάχνετε στον κώδικα ή στις ρυθμίσεις του συστήματος.

© Dragons Out Oy

33

12.2.2022

34 of 49

Γρήγορος Δράκος

  • Χρώμα: Μώβ
  • Μέγεθος: Μικρός
  • Πόσο δύσκολο είναι να τον βρεις?: Δύσκολο
  • Πόσο δύσκολο είναι να τον ξεφορτωθείς?: Δύσκολο
  • Πετάει?: Ναι
  • Φτερά: Μεγάλα
  • Εκπνέυει φωτιά: Λίγο
  • Αγαπάνε πολύ: Να κλέβουν κρυφά χρυσό.

© Dragons Out Oy

34

12.2.2022

35 of 49

Γρήγορος Δράκος

  • Όνομα Defect: Defect απόδοσης
  • Severity: Μέτρια
  • Συμπτώματα Defect: Το πρόγραμμα είναι πιο αργό απ’ ότι πρέπει.
  • Αιτία του defect: Μέρος του κώδικα δουλεύει αναποτελεσματικά ή καθόλου.Οι ρυθμίσεις μπορεί να είναι λάθος επίσης.Το πρόγραμμα τότε προσπαθεί να κάνει κάτι που δε χρειάζεται. Αυτό παίρνει χρόνο.
  • Βασικά αίτια του Defect:Δεν σκέφτηκαν την απόδοση όσο γράφανε το πρόγραμμα.Ο προγραμματιστής ίσως να μην ξέρει όλες τις δυνατότητες του περιβάλλοντος που γράφει τον κώδικα. Μπορεί να μην έχει πρόσβαση στο υπόλοιπο πρόγραμμα.
  • Testing: Χρησιμοποιείς το πρόγραμμα κανονικά,έναν ή περισσότερους χρήστες τη φορά,συνήθως με κάποιο πρόγραμμα που ελέγχει την αποδοτικότητα. Μετράς ταχύτητα και χρόνο απόκρισης.
  • Διόρθωση: Μπορείς να αλλάξεις σημεία του κώδικα που δουλεύουν αργά και να δοκιμάσεις αν έχει αυξηθεί η ταχύτητα.

© Dragons Out Oy

35

12.2.2022

36 of 49

Επιδεικτικός, ενοχλητικός Δράκος

  • Χρώμα: Πράσινο
  • Μέγεθος: Μεγάλος(large)
  • Πόσο δύσκολο είναι να βρεθεί?: Εύκολο
  • Πόσο δύσκολο είναι να το ξεφορτωθείς?: Δύσκολο
  • Πετάει?: Ναι
  • Φτερά: Μεγάλα
  • Εκπνέει φωτιά: Πολύ
  • Αγαπάνε πολύ: Παρακολουθούν για χρυσό και προστατεύουν την περιοχή τους.

© Dragons Out Oy

36

12.2.2022

37 of 49

Επιδεικτικός, ενοχλητικός Δράκος

  • Όνομα Defect: Defect χρηστικότητας
  • Severity: Χαμηλό
  • Συμπτώματα Defect: Το πρόγραμμα μπορεί να χρησιμοποιηθεί, αλλά είναι δύσκολο.
  • Αιτία του defect: Ο κώδικας γράφτηκε έχοντας υπόψη μόνο την χρηστικότητα του προγράμματος,λογικά με τον ευκολότερο τρόπο.
  • Βασικά αίτια του Defect: Δεν σκέφτηκαν τις ανάγκες του χρήστη όσο γράφανε αυτό το πρόγραμμα. Ο χρήστης δεν μπορεί να καταλάβει την χρηστικότητα.
  • Testing: Χρησιμοποιείς το πρόγραμμα κανονικά. Συλλέγεις γνώμες για το τί είναι εύκολο και τί δύσκολο να χρησιμοποιηθεί σε αυτό το πρόγραμμα.
  • Διόρθωση: Μπορείς να αλλάξεις τον κώδικα έτσι ώστε να είναι πιό εύκολο να χρησιμοποιηθεί, βλέποντας τα αποτελέσματα από το Test χρηστικότητας που πραγματοποιήθηκε.

© Dragons Out Oy

37

12.2.2022

38 of 49

Υπόγειος Δράκος

  • Χρώμα: Μαύρο
  • Μέγεθος: Μεγάλος ( Large )
  • Πόσο δύσκολο είναι να βρεθεί?: Εύκολο
  • Πόσο δύσκολο είναι να το ξεφορτωθείς?: Μέτριο
  • Πετάει?: Όχι
  • Φτερά: Μικρά
  • Εκπνέει φωτιά?: Πολύ
  • Αγαπάει πολύ: Να βρίσκει εύκολο φαγητό και να τρώει.

© Dragons Out Oy

38

12.2.2022

39 of 49

Υπόγειος Δράκος

  • Όνομα Defect: Defect εξοπλισμού
  • Severity: Υψηλό
  • Συμπτώματα Defect: Κάποια μέρη ή όλος ο ηλεκτρονικός υπολογιστής δεν λειτουργεί.
  • Αιτία του defect: Ένα μέρος του εξοπλισμού χάλασε με τον χρόνο.
  • Βασικά αίτια του Defect: Ένα μέρος του εξοπλισμού ίσως να μην είναι καλής ποιότητας, με αποτέλεσμα να μην αντέχει όσο χρειάζεται. Λογικά το μέρος αυτό δεν δουλεύει σωστά σε συνεργασία με τα υπόλοιπα, για αυτό χαλάει.
  • Testing: Χρησιμοποιείς το σύστημα κανονικά.Παρακολουθείς τον εξοπλισμό. Ελέγχεις το περιβάλλον χρησιμοποιώντας παρόμοιο εξοπλισμό με αυτόν που θα έχουν οι χρήστες.
  • Διόρθωση: Αλλάζεις το χαλασμένο μέρος του εξοπλισμού με κάποιο καινούριο ή κάποιο που δουλεύει πιο σωστά με τα υπόλοιπα μέρη.

© Dragons Out Oy

39

12.2.2022

40 of 49

Σκιά ή Δράκος?

  • Χρώμα: Γκρι
  • Μέγεθος: Μικρό
  • Πόσο δύσκολο είναι να βρεθεί?: Εύκολο
  • Πόσο δύσκολο είναι να εξολοθρευτεί?:Εύκολο
  • Πετάει?: Όχι
  • Φτερά: Μικρά
  • Εκπνέει φωτιά?:Ναι
  • Αγαπάει πολύ: Να μπερδεύει τους ανθρώπους

© Dragons Out Oy

40

12.2.2022

41 of 49

Σκιά ή Δράκος?

  • Όνομα Defect:Testability defect
  • Severity: Χαμηλό(Low)
  • Συμπτώματα Defect:Φαίνεται πως υπάρχει θέμα, οι υπολογισμοί έχουν λάθος αποτελέσματα
  • Αιτία του defect: Ο Tester ίσως έχει λάθος test data ή λάθος test περιβάλλον
  • Βασικά αίτια του Defect (Root causes): Tο Test περιβάλλον και τα test data ισως δεν εχουν ρυθμιστειί και σχεδιαστεί σωστά.
  • Testing: Παντα να εχουμε στο μυαλο μας πως ο λόγος του defect μπορεί να είναι το περιβάλλον ή τα data μας.
  • Διόρθωση:Ορίζουμε σωστά τα data μας και το περιβάλλον μας. Μαθαίνουμε από τα λάθη μας.

© Dragons Out Oy

41

12.2.2022

42 of 49

Συμπαθητικός δράκος

  • Χρώμα: γυαλιστερό πράσινο
  • Μέγεθος: Μέτριο
  • Πόσο δύσκολο είναι να βρεθεί?: Εύκολο
  • Πόσο δύσκολο είναι να εξολοθρευτεί?: Εύκολο
  • Πετάει?: Ναι
  • Φτερά: Μέτρια
  • Εκπνέει φωτιά?: Ναι
  • Αγαπάει πολύ: Να τρώει κρέας και να βοηθάει τους ανθρώπους

© Dragons Out Oy

42

12.2.2022

43 of 49

Συμπαθητικός δράκος

  • Όνομα Defect: Defect seeding, mutation testing - ένα defect που δημιουργήθηκε επίτηδες
  • Severity: Χαμηλό
  • Συμπτώματα Defect: Φαίνεται πως κάτι δουλεύει λάθος, π.χ. Λάθος αποτέλεσμα σε υπολογισμό. Φαίνεται πως πρόκειται για λειτουργικό(functional) defect.
  • Αιτία του defect: O Tester ή ο προγραμματιστής δημιούργησε το defect επίτηδες.
  • Βασικά αίτια του Defect (Root causes): Η βασική ιδέα είναι πως αν έχουν εντοπιστεί όλα τα κατασκευασμένα defects, τότε έχουμε βρεί και τα περισσότερα defects.
  • Testing: Χρησιμοποιύμε το σύστημα και προσπαθούμε να βρόυμε όλα τα κατασκευασμένα defects. Θα βρούμε επίσης και πραγματικά defects. Μόλις το τελευταίο κατασκευασμένο defect βρεθεί, μπορούμε να σταματήσουμε το testing.
  • Διόρθωση: Μην ξεχνάτε να διορθώνεται τον κώδικα με τον ίδιο τρόπο για τα κατασκευασμένα και για τα πραγματικά defects.

© Dragons Out Oy

43

12.2.2022

44 of 49

Πεισματάρης δράκος

  • Χρώμα: γυαλιστερό πράσινο
  • Μέγεθος: Μεγάλο
  • Πόσο δύσκολο είναι να βρεθεί?: Εύκολο
  • Πόσο δύσκολο είναι να εξολοθρευτεί?: Δύσκολο
  • Πετάει?: Ναι
  • Φτερά: Μικρά
  • Εκπνέει φωτιά?: Ναι
  • Αγαπάει πολύ: Να πειράζει τους ανθρώπους συνεχώς

© Dragons Out Oy

44

12.2.2022

45 of 49

Πεισματάρης δράκος

© Dragons Out Oy

45

12.2.2022

  • Όνομα Defect: Διαχείρηση του Version defect
  • Severity: Μεσαίο
  • Συμπτώματα Defect: Ένα defect, που είχε ήδη διορθωθεί, εμφανίζεται ξανά. Αυτό θα μπορούσε να είναι ένα defect που αφορά στη λειτουργία (functionality).
  • Αιτία του defect: Η Διαχείρηση του Version απέτυχε. Ο προγραμματιστής χρησιμοποιεί παλίότερο κώδικα, ενώ θα έπρεπε να έχει τον καινούριο. Ο καινούριος κώδικας περιλαμβάνει τη διόρθωση ενός defect, η οποία έγινε από άλλο προγραμματιστή.
  • Βασικά αίτια του Defect (Root causes): Βιασύνη και πολλά defects
  • Testing: Χρησιμοποιούμε το σύστημα κανονικά. Όταν βρεθεί ένα defect, ελέγχουμε αν υπάρχει ήδη και έχει διορθωθεί. Αν ναι ελέγχουμε πως λειτουργεί η διαχείρηση των version.
  • Διόρθωση: Βελτιώνουμε τη διαχείρηση του version, χρησιμοποιούμε τα κατάλληλα εργαλεία για αυτή τη δουλειά.

46 of 49

Μπερδεμένος δράκος

  • Χρώμα: γυαλιστερό πράσινο
  • Μέγεθος: Μικρό
  • Πόσο δύσκολο είναι να βρεθεί?: Εύκολο
  • Πόσο δύσκολο είναι να εξολοθρευτεί?: Εύκολο
  • Πετάει?: Ναι
  • Φτερά: Μεσαίο
  • Εκπνέει φωτιά?: Ναι
  • Αγαπάει πολύ: Να πειράζει μεγάλους δράκους

© Dragons Out Oy

46

12.2.2022

47 of 49

Μπερδεμένος δράκος

  • Όνομα Defect: Documentation(εγχειρίδιο που περιγράφει πως δουλεύει το λογισμικό) defect
  • Severity: χαμηλό
  • Συμπτώματα Defect: Το σύστημα λειτουργεί με διαφορετικό τρόπο από αυτόν που λέει το documentation.
  • Αιτία του defect: Τα σχέδια και οι οδηγίες δεν συμφωνούν με το λογισμικό.
  • Βασικά αίτια του Defect (Root causes): Υπήρχαν αποφάσεις και αλλαγές κατά τη διάρκεια του κώδιικα που οδήγησαν στη δημιουργία ενός άλλου λογισμικού. Το Documentation βασίζεται σε πιο παλιά σχέδια.
  • Testing: Χρησιμοποιούμε το σύστημα κανονικά. Όταν βρεθεί ένα defect, σκεφτόμαστε αν το λογισμικό(software) ή το documentation είναι λάθος.
  • Διόρθωση: Αλλάζουμε είτε το software είτε το documentation, ώστε να συμφωνούν.

© Dragons Out Oy

47

12.2.2022

48 of 49

Άσκηση 5-15 λεπτά: Σχεδιάστε το δικό σας καλό defect–�ζωγραφίστε τον δικό σας καλό δράκο

// Τι θα χρειαστείτε

Χαρτί και μολύβι

// Εργασία

1 Σκεφτείτε ένα defect που σας βοήθησε να καταλάβετε κάτι για το λογισμικό(software)(ή σκεφτείτε οποιοδήποτε defect σας αρέσει).

  • Γράψτε το όνομά του και μερικές λέξεις που το περιγράφουν.

2 Σκεφτείτε έναν αντίστοιχο δράκο.

  • Γράψτε τα χαρακτηριστικά του δράκου.
  • Αν το defect είναι σοβαρό, ο δράκος είναι μεγάλος κτλ.

3 Ζωγραφίστε το δράκο.

  • Το βασικό είναι να φτιάξετε το δράκο που θα αντιπροσωπεύει το defect.
  • Δεν υπάρχει λόγος να στοχεύσετε σε μια τέλεια εικόνα.

4 Δείξτε την εικόνα που ζωγραφίσατε και στους υπόλοιπους με τρόπο που έχετε συμφωνήσει.

  • Π.χ μέσω της εκπαιδευτικής πλατφόρμας Padlet.

48

© Dragons Out Oy

49 of 49

Ευχαριστούμε!

Μπορείτε να βρείτε το βιβλίο:

https://www.dragonsout.com/p/order-dragons-out-book.html

Το project:

https://www.dragonsout.com

Ερωτήσεις:

kari.kakkonen@dragonsout.com

© Dragons Out Oy

49