Από 5% σε 96% κάλυψη δοκιμών σε μια μέρα — Χάρη στο AI CoPilot...
Όταν ξεκίνησα αυτό το έργο και ήταν ακόμα μια μικρή βάση κώδικα, ήξερα ότι το unit testing θα ήταν σημαντικό, αλλά όπως πολλοί προγραμματιστές, το άφησα στην άκρη μετά τη δημιουργία του πρώτου σετ τεστ υπέρ της κατασκευής της βασικής λειτουργικότητας. Ο κύριος στόχος μου στα πρώτα στάδια ήταν να λειτουργήσει η middleware λογική — η καρδιά της εφαρμογής — και να ζωντανέψω το Ελάχιστο Βιώσιμο Προϊόν (MVP). Αυτό σήμαινε παράλειψη μεγάλου μέρους της κάλυψης των τεστ στο όνομα της προόδου.
Μόλις το MVP λειτούργησε, στράφηκα πίσω στο testing. Κοιτάζοντας το έργο, εκτίμησα τουλάχιστον μια εβδομάδα ή δύο γράψιμο τεστ, ανάλογα με την πολυπλοκότητα κάθε συστατικού. Μερικά θα ήταν απλά. Άλλα — ειδικά εκεί όπου εμπλέκονταν περιθωριακές περιπτώσεις ή περίπλοκη λογική διακλάδωσης — θα ήταν πολύ πιο χρονοβόρα.
Σε αυτό το σημείο στράφηκα στην ΤΝ. Χρησιμοποιούσα το "CoPilot" για βοήθεια στη συγγραφή κώδικα και σκέφτηκα ότι θα μπορούσε να βοηθήσει και με τα τεστ.
Αρχικά, ζήτησα από την ΤΝ να "γράψει unit tests" χωρίς πραγματικό περιεχόμενο ή περιορισμούς. Το αποτέλεσμα; Χάος. Τα τεστ δεν λειτουργούσαν, έκαναν λάθος υποθέσεις για τον κώδικα, και όλη η προσπάθεια μετατράπηκε σε έναν κύκλο σπασμένου κώδικα τεστ και απογοητευτικών επανεγγραφών. Η ΤΝ δημιούργησε πολύ κώδικα — αλλά όχι του τύπου που θα μπορούσα να χρησιμοποιήσω χωρίς σοβαρή refactoring.
Η ανακάλυψη ήρθε όταν άλλαξα την προσέγγισή μου. Αντί να μεταχειρίζομαι την ΤΝ σαν μάγο, άρχισα να τη χρησιμοποιώ περισσότερο σαν νεότερο προγραμματιστή. Της έδινα ένα αρχείο τη φορά, εξηγούσα την πρόθεση του κώδικα και της έλεγα να εστιάσει στη συγγραφή ακριβών, λειτουργικών τεστ μόνο για εκείνο το αρχείο.
Αυτό άλλαξε τα πάντα.
Ξαφνικά τα τεστ έγιναν ευκολότερα για την ΤΝ να υλοποιήσει. Ήταν σωστά περιορισμένα, ευθυγραμμισμένα με την πραγματική λογική και δεν απαιτούσαν ώρες debugging. Η ΤΝ μου πέρασε αρχείο προς αρχείο, γράφοντας και τρέχοντας τεστ.
Σε λιγότερο από μια μέρα, η κάλυψη των τεστ εκτινάχτηκε από 5% σε πάνω από 96%.
Τεστ που θα χρειάζονταν μέρες για να γραφτούν, ολοκληρώθηκαν σε ώρες, και η ηρεμία του μυαλού που έρχεται με σχεδόν πλήρη κάλυψη τεστ; Ανεκτίμητη.
Πήγα από ένα Test Suite και 5 τεστ σε:
Είτε λανσάρετε ένα νέο έργο είτε προσπαθείτε να προσθέσετε τεστ σε ένα παλιότερο, η ΤΝ μπορεί να είναι τεράστια εξοικονόμηση χρόνου — αν τη χρησιμοποιήσετε σωστά.
Χρησιμοποιείτε ΤΝ για να γράφετε τεστ στα έργα σας; Ποια είναι η εμπειρία σας;