This post is also available in:
English (אנגלית)
חלק יומיומי אך משמעותי בפיתוח תוכנה הוא תהליך יצירת פאצ'ים כדי לתקן בעיות בקוד שנחשפות בעת בדיקת מקרים אקראיים. לפני שניתן להטמיע את הפאצ'ים הללו בקוד המבצעי, הם עוברים בדיקות נוספות כדי לוודא שהבאג אותו הם אמורים לתקן אכן נפתר באמצעותם, וכי הפאץ' אינו יוצר באג נוסף בעצמו. מדובר בתהליך שהינו לעתים קרובות מייגע ומסורבל, וכתוצאה מכך זמן רב מושקע בתיקוני באגים, מה שהופך את תחזוקת המערכת לקשה יותר.
חוקרים מ-IMDEA שמו כמטרה לפתור בעיה זו, ויצרו מוצר בשם FIXCHECK המאפשר ניתוח טוב יותר ואוטומטי של פאצ'ים. הפתרון שלהם פורסם במאמר "Improving Patch Correctness Analysis via Random Testing and Large Language Models". על פי TechXplore, המערכת כוללת שילוב של ניתוח קוד סטטי, בדיקות אקראיות ושימוש במודלי שפה על מנת ליצור בדיקות שיכולות לזהות באגים בפאצ'ים לא טובים.
FIXCHECK פועלת בשני שלבים: ראשית, היא יוצרת בדיקות אקראיות כדי ליצור אוסף נרחב של מקרי בוחן. שנית, היא משתמשת במודלי שפה כדי לתת הערכות משמעותיות עבור כל מקרה בוחן. המערכת בוררת את הבדיקות שיצרה ומעניקה עדיפות לבדיקות הטובות ביותר על ידי ביצוע מקרי בוחן חדשים על התוכנית עם הפאץ' ולאחר מכן מדרגת אותן בהתבסס על הסבירות שלהן לחשוף באגים בפאץ', וזורקת בדיקות שנחשבות לא שימושיות.
הצוות בדק את FIXCHECK על 160 פאצ'ים, והצליח להגיע ליצירה אפקטיבית של בדיקות באגים עם רמה גבוהה של ביטחון ב-62% מהפאצ'ים השגויים שנכתבו ע"י מתכנתים. יתר על כן, המערכת משפרת את שיטות הערכת השגיאות הנוכחיות בפאצ'ים על ידי מתן מקרי בוחן שחושפים באגים בעד 50% של פאצ'ים שגויים המזוהים על ידי טכניקות מתקדמות.
FIXCHECK מספקת פתרון אוטומטי משמעותי לבעיה יומיומית שלעתים קרובות נובעת מטעויות אנוש, ומהווה התקדמות בולטת בתחום התיקון והתחזוקה של תוכנות.