Πρακτικά δοκιμές για κάθε δυνατότητα δημιουργούνται και δοκιμάζονται πριν από την κυκλοφορία του λογισμικού, και εάν η δοκιμή αποτύχει, γράφεται (ή ξαναγράφεται ή διορθώνεται) νέος κώδικας για να περάσει η δοκιμή και να γίνει ο κώδικας απλός και χωρίς σφάλματα.
Το Test Driven Development (TDD) ξεκινά με το σχεδιασμό και την ανάπτυξη δοκιμών για κάθε μικρό χαρακτηριστικό μιας εφαρμογής. Το πλαίσιο TDD καθοδηγεί τους προγραμματιστές να γράφουν νέο κώδικα μόνο εάν μια αυτοματοποιημένη δοκιμή έχει αποτύχει. Αυτή η προσέγγιση αποφεύγει την επικάλυψη κώδικα. Η ολοκληρωμένη ενότητα TDD είναι ανάπτυξη με γνώμονα τη δοκιμή.
Το Test Driven Development (TDD) δημιουργήθηκε ως μέρος ενός ευρύτερου παραδείγματος σχεδιασμού λογισμικού, γνωστό ως Extreme Programming (XP), το οποίο αποτελεί μέρος της μεθοδολογίας ανάπτυξης λογισμικού Agile.
Η απλή ιδέα του TDD είναι να γράφει και να διορθώνει αποτυχημένες δοκιμές πριν γράψει νέο κώδικα (πριν από την ανάπτυξη). Αυτό βοηθά στην αποφυγή διπλασιασμού του κώδικα καθώς γράφουμε έναν μικρό αριθμό κώδικα κάθε φορά για να περάσουμε δοκιμές. (Οι δοκιμές δεν είναι τίποτα άλλο από προϋποθέσεις που πρέπει να δοκιμάσουμε για να τις ικανοποιήσουμε).
Η ανάπτυξη βάσει δοκιμής είναι μια διαδικασία ανάπτυξης και εκτέλεσης αυτοματοποιημένων δοκιμών πριν από την πραγματική ανάπτυξη της εφαρμογής. Ως εκ τούτου, το TDD ονομάζεται επίσης μερικές φορές Test First Development.
Πριν γραφτεί οποιοσδήποτε νέος κώδικας, ο προγραμματιστής πρέπει πρώτα να δημιουργήσει μια δοκιμή μονάδας αποτυχίας. Στη συνέχεια, ο προγραμματιστής – ή ζευγάρι, ή όχλος – δημιουργεί ακριβώς αρκετό κώδικα για να ικανοποιήσει αυτή την απαίτηση. Μόλις περάσει η δοκιμή, ο προγραμματιστής μπορεί να αναδιαμορφώσει το έργο, κάνοντας βελτιώσεις χωρίς να αλλάξει τη συμπεριφορά.
Ενώ το TDD εστιάζει στις αλληλεπιδράσεις προγραμματιστών σε επίπεδο μονάδας, υπάρχουν και άλλες δημοφιλείς μέθοδοι, όπως η ανάπτυξη βάσει δοκιμής αποδοχής (ATDD) ή η ανάπτυξη βάσει συμπεριφοράς (BDD), οι οποίες επικεντρώνονται σε δοκιμές που μπορούν να γίνουν κατανοητές από τους πελάτες.
Αυτές οι μέθοδοι περιλαμβάνουν τη δημιουργία παραδειγμάτων πραγματικού κόσμου ως συνεργατικές δοκιμές μεταξύ του τεχνικού προσωπικού και του πελάτη πριν από την κωδικοποίηση και στη συνέχεια την εκτέλεση των δοκιμών μετά την κωδικοποίηση για να αποδειχθεί ότι ο κώδικας εφαρμόζεται. Έχοντας τα τεστ γνωστά εκ των προτέρων βελτιώνει την ποιότητα της πρώτης φοράς. Το ATDD και το BDD απαιτούν από τους προγραμματιστές, τους δοκιμαστές και την επιχειρηματική πλευρά να συνεργαστούν για να φανταστούν και να συζητήσουν το λογισμικό και τις επιπτώσεις του πριν δημιουργηθεί ο κώδικας.
Η ανάπτυξη βάσει δοκιμής μπορεί να παράγει εφαρμογές υψηλής ποιότητας σε λιγότερο χρόνο από ό,τι είναι δυνατό με παλαιότερες μεθόδους. Η επιτυχής εφαρμογή του TDD απαιτεί από τους προγραμματιστές και τους δοκιμαστές να προβλέπουν με ακρίβεια πώς θα χρησιμοποιηθεί η εφαρμογή και η λειτουργικότητά της στον πραγματικό κόσμο.
Το TDD δημιουργεί μια σουίτα δοκιμών παλινδρόμησης ως παρενέργεια που μπορεί να ελαχιστοποιήσει τις χειροκίνητες δοκιμές, εντοπίζοντας προβλήματα νωρίτερα, οδηγώντας σε ταχύτερες λύσεις. Η μεθοδικότητα του TDD εξασφαλίζει πολύ υψηλότερη κάλυψη και ποιότητα πρώτης φοράς από τους κλασικούς κύκλους κωδικών σταδίου > δοκιμή > επιδιόρθωση > επανέλεγχος. Επειδή οι δοκιμές διεξάγονται νωρίς στον κύκλο σχεδιασμού, ο χρόνος και τα χρήματα που δαπανώνται για τον εντοπισμό σφαλμάτων αργότερα ελαχιστοποιούνται.
Αναμενόμενα οφέλη:
Το TDD απαιτεί σημαντικές δεξιότητες για να είναι επιτυχές, ειδικά σε επίπεδο μονάδας. Πολλά παλαιού τύπου συστήματα απλά δεν έχουν κατασκευαστεί με γνώμονα τη δοκιμή μονάδων, γεγονός που καθιστά αδύνατη την απομόνωση στοιχείων για δοκιμή.
Επίσης, πολλοί προγραμματιστές δεν έχουν τις δεξιότητες να απομονώσουν και να δημιουργήσουν καθαρό κώδικα. Όλα τα μέλη της ομάδας πρέπει να δημιουργούν και να διατηρούν δοκιμές μονάδων, διαφορετικά θα καταστούν γρήγορα παρωχημένες. Και ένας οργανισμός που εξετάζει το TDD θα πρέπει να επενδύσει χρόνο, να επιβραδύνει λίγο τώρα για να πάει πιο γρήγορα αργότερα.
Τέλος, όπως με κάθε μέθοδο, τα τελικά αποτελέσματα της TDD είναι τόσο καλά όσο οι δοκιμές που χρησιμοποιήθηκαν, η ακρίβεια που πραγματοποιήθηκαν και ο βαθμός στον οποίο μιμούνται τις συνθήκες που αντιμετωπίζουν οι χρήστες του τελικού προϊόντος.
Κοινά λάθη:
Το TDD επιτρέπει στον προγραμματιστή να κάνει μικρά βήματα όταν γράφει λογισμικό. Το τεστ συντάσσεται πριν από τη δοκιμή της λειτουργικότητας και διασφαλίζει ότι η εφαρμογή είναι κατάλληλη για δυνατότητα δοκιμής. Ο έλεγχος σε μια μικρή ποσότητα κώδικα γίνεται για να εντοπιστούν σφάλματα που εμφανίζονται στον δοκιμασμένο κώδικα. Στη συνέχεια υλοποιείται η λειτουργικότητα. Αυτό αναφέρεται ως "κόκκινος πράσινος ανασχηματιστής" όπου το κόκκινο σημαίνει αποτυχία και το πράσινο δείχνει ένα πέρασμα. Στη συνέχεια, αυτά τα βήματα επαναλαμβάνονται. Ο πρώτος στόχος ενός προγραμματιστή είναι να επικεντρωθεί στο έργο που έχει στο χέρι και να το ξεπεράσει.
Ercole Palmeri
Ο ναυτικός τομέας είναι μια πραγματική παγκόσμια οικονομική δύναμη, η οποία έχει προσανατολιστεί προς μια αγορά 150 δισεκατομμυρίων...
Την περασμένη Δευτέρα, οι Financial Times ανακοίνωσαν συμφωνία με το OpenAI. Η FT αδειοδοτεί την παγκόσμιας κλάσης δημοσιογραφία της…
Εκατομμύρια άνθρωποι πληρώνουν για υπηρεσίες ροής, πληρώνοντας μηνιαίες συνδρομές. Είναι κοινή γνώμη ότι…
Η Coveware από την Veeam θα συνεχίσει να παρέχει υπηρεσίες αντιμετώπισης περιστατικών εκβιασμών στον κυβερνοχώρο. Το Coveware θα προσφέρει ιατροδικαστικές και δυνατότητες αποκατάστασης…