Από 5% σε 96% κάλυψη δοκιμών σε μια μέρα — Χάρη στο AI CoPilot

Από 5% σε 96% κάλυψη δοκιμών σε μια μέρα — Χάρη στο AI CoPilot...

16 May 2025

5

λεπτά ανάγνωσης

Καινοτομία AI

Adrian Sweeney

Όταν ξεκίνησα αυτό το έργο και ήταν ακόμα μια μικρή βάση κώδικα, ήξερα ότι το unit testing θα ήταν σημαντικό, αλλά όπως πολλοί προγραμματιστές, το άφησα στην άκρη μετά τη δημιουργία του πρώτου σετ τεστ υπέρ της κατασκευής της βασικής λειτουργικότητας. Ο κύριος στόχος μου στα πρώτα στάδια ήταν να λειτουργήσει η middleware λογική — η καρδιά της εφαρμογής — και να ζωντανέψω το Ελάχιστο Βιώσιμο Προϊόν (MVP). Αυτό σήμαινε παράλειψη μεγάλου μέρους της κάλυψης των τεστ στο όνομα της προόδου.

Μόλις το MVP λειτούργησε, στράφηκα πίσω στο testing. Κοιτάζοντας το έργο, εκτίμησα τουλάχιστον μια εβδομάδα ή δύο γράψιμο τεστ, ανάλογα με την πολυπλοκότητα κάθε συστατικού. Μερικά θα ήταν απλά. Άλλα — ειδικά εκεί όπου εμπλέκονταν περιθωριακές περιπτώσεις ή περίπλοκη λογική διακλάδωσης — θα ήταν πολύ πιο χρονοβόρα.

Σε αυτό το σημείο στράφηκα στην ΤΝ. Χρησιμοποιούσα το "CoPilot" για βοήθεια στη συγγραφή κώδικα και σκέφτηκα ότι θα μπορούσε να βοηθήσει και με τα τεστ.

Πρώιμα αστοχήματα με την ΤΝ

Αρχικά, ζήτησα από την ΤΝ να "γράψει unit tests" χωρίς πραγματικό περιεχόμενο ή περιορισμούς. Το αποτέλεσμα; Χάος. Τα τεστ δεν λειτουργούσαν, έκαναν λάθος υποθέσεις για τον κώδικα, και όλη η προσπάθεια μετατράπηκε σε έναν κύκλο σπασμένου κώδικα τεστ και απογοητευτικών επανεγγραφών. Η ΤΝ δημιούργησε πολύ κώδικα — αλλά όχι του τύπου που θα μπορούσα να χρησιμοποιήσω χωρίς σοβαρή refactoring.

Δίνοντας κατεύθυνση στην ΤΝ

Η ανακάλυψη ήρθε όταν άλλαξα την προσέγγισή μου. Αντί να μεταχειρίζομαι την ΤΝ σαν μάγο, άρχισα να τη χρησιμοποιώ περισσότερο σαν νεότερο προγραμματιστή. Της έδινα ένα αρχείο τη φορά, εξηγούσα την πρόθεση του κώδικα και της έλεγα να εστιάσει στη συγγραφή ακριβών, λειτουργικών τεστ μόνο για εκείνο το αρχείο.

Αυτό άλλαξε τα πάντα.

Ξαφνικά τα τεστ έγιναν ευκολότερα για την ΤΝ να υλοποιήσει. Ήταν σωστά περιορισμένα, ευθυγραμμισμένα με την πραγματική λογική και δεν απαιτούσαν ώρες debugging. Η ΤΝ μου πέρασε αρχείο προς αρχείο, γράφοντας και τρέχοντας τεστ.

Τα Αποτελέσματα

Σε λιγότερο από μια μέρα, η κάλυψη των τεστ εκτινάχτηκε από 5% σε πάνω από 96%.

  • Οδηγίες: 96,72%
  • Κλάδοι: 95,67%
  • Συναρτήσεις: 92,1%
  • Γραμμές: 96,87%

Τεστ που θα χρειάζονταν μέρες για να γραφτούν, ολοκληρώθηκαν σε ώρες, και η ηρεμία του μυαλού που έρχεται με σχεδόν πλήρη κάλυψη τεστ; Ανεκτίμητη.

Πήγα από ένα Test Suite και 5 τεστ σε:

  • 20 Test Suites
  • 136 Επιτυχημένα Τεστ

Τι Έμαθα

  • Η ΤΝ δεν είναι μαγεία — αλλά είναι απίστευτος βοηθός. Δώστε της περιεχόμενο, καθοδηγήστε τη, και θα πάρετε εξαιρετικά αποτελέσματα.
  • Η εστίαση έχει σημασία. Το να ζητήσεις από την ΤΝ να "δοκιμάσει τα πάντα" οδηγεί σε χάος. Το να της ζητήσεις να δοκιμάσει αυτό το αρχείο, αυτή τη συνάρτηση, αυτή την περίπτωση — αυτό λειτουργεί.
  • Αναμένετε debugging — αλλά πολύ λιγότερο από το γράψιμο από το μηδέν. Η ΤΝ μερικές φορές κάνει λάθη, αλλά η συνολική διαδικασία είναι πολύ γρηγορότερη από το να δουλεύεις μόνος.

Είτε λανσάρετε ένα νέο έργο είτε προσπαθείτε να προσθέσετε τεστ σε ένα παλιότερο, η ΤΝ μπορεί να είναι τεράστια εξοικονόμηση χρόνου — αν τη χρησιμοποιήσετε σωστά.

Χρησιμοποιείτε ΤΝ για να γράφετε τεστ στα έργα σας; Ποια είναι η εμπειρία σας;

PrimeCRM

Επιστροφή στο Κέντρο Γνώσης