סוכני קוד מבוססי AI זקוקים לבדיקות יותר מאשר לפרומפטים

אני כותב תוכנה כבר 25 שנה. זרימת העבודה שלי השתנתה יותר בשמונה החודשים האחרונים מאשר בכל הקריירה שלי.

כלי קוד מבוססי AI היו בעבר מיועדים למשימות קטנות כמו ריפקטורינג (refactoring) או הסבר שגיאות. בניית פיצ'רים גדולים בעזרת AI הרגישה מכבידה.

כעת, המצב שונה. סוכנים מודרניים עוקבים אחר לולאה ספציפית:

  • קריאת קוד.
  • שינוי קוד.
  • הרצת פקודה.
  • בדיקה מה נכשל.
  • תיקון השגיאה.
  • חזרה על התהליך.

הלולאה הזו עוצמתית, אך סוכנים מתקשים עם ממשקים ויזואליים. הם לא יכולים ללחוץ באופן אמין על ממשק משתמש (UI) כדי לראות אם כפתור עובד.

שיניתי את הגישה שלי. אני בונה פיצ'רים חדשים כך שהם יעבדו קודם כל דרך שורת הפקודה (command line).

במקום לבקש מהסוכן "להסתכל על המסך הזה", אני נותן לו פקודה:

  • npm run test:feature-x
  • node scripts/run-new-feature-client.js

סוכנים אוהבים פקודות. זה נותן להם לולאת משוב ניתנת להרצה.

זרימת העבודה הנוכחית שלי נראית כך:

  • תכנון הפיצ'ר בקובץ Markdown.
  • יצירת לקוח בדיקה (test client) או בדיקת יחידה (unit test).
  • הגדרת מקרי בדיקה (test cases) ברורים.
  • מתן אפשרות לסוכן לממש את הפיצ'ר.
  • מתן אפשרות לסוכן להריץ בדיקות שוב ושוב.
  • סקירת התוצאות.

אזהרה: אם תגידו לסוכן "גרום לכל הבדיקות לעבור", הוא יעשה זאת. הוא עלול לבצע "פשעי הנדסת תוכנה" כדי להצליח. הוא עלול לכתוב בדיקות חלשות או להשתמש בבלוקים של try/catch כדי להסתיר שגיאות רק כדי להפסיק את הודעת הכשל.

זו הסיבה שהגדרת הבדיקות היא המשימה הידנית החשובה ביותר שלי. עליכם לשאול:

  • האם הבדיקה הזו מייצגת מקרה שימוש אמיתי?
  • האם היא תתפוס רגרסיה (regression) אמיתית?
  • האם היא צרה מדי?

בעידן ה-AI, פיתוח מונחה בדיקות (TDD) הוא לא רק רשת ביטחון. הוא ההגה. ללא בדיקות, סוכן מייצר קוד שנראה הגיוני. עם בדיקות טובות, לסוכן יש יעד מדיד.

טיפ נוסף: השתמשו בקבצים מובנים עבור פלטי הבדיקות. במקום להציף את הצ'אט בלוגים ענקיים, הגדירו שהסקריפטים שלכם יכתבו לקבצי JSON או Markdown בתיקייה מסוימת.

זה עוזר מכיוון ש:

  • הסוכן קופץ ישירות לנתונים הרלוונטיים.
  • ההקשר (context) נשאר קטן.
  • צריכת הטוקנים (tokens) יורדת.
  • זה חוסך כסף.

סוכני AI לא מחליפים מפתחים. הם מסיטים את המיקוד שלנו. אנחנו מבלים פחות זמן בכתיבת קוד ויותר זמן ב:

  • תיאור בעיות בצורה ברורה.
  • יצירת לולאות משוב.
  • הגדרת בדיקות איכות.
  • סקירת ארכיטקטורה.

העתיד של פיתוח AI לא שייך לאדם שכותב את הפרומפטים הטובים ביותר. הוא שייך לאדם שבנה את לולאות המשוב הטובות ביותר.

Source: https://dev.to/stoefln6/ai-coding-agents-need-tests-more-than-prompts-11pm

Optional learning community: https://t.me/GyaanSetuAi