הדמיית מידע ולמידת העברה עמוקה (deep transfer learning) לחיזוי יעיל של כשלי תוכנה
אבסטרקט
יעד חיזוי כשלי תוכנה הינו איתור אוטומטי של מודולי קוד פגומים לשם מיקוד יעיל יותר של משאבי בדיקה ומאמץ אנושי. באופן טיפוסי, צינורות חיזוי פגמים בתוכנה מורכבים משני חלקים: הראשון מחלץ מאפייני תכנית, כמו עצי סינטקס מופשטים, על ידי שימוש בכלים חיצוניים; השני מיישם מודלים של מיון מבוסס למידת מכונה על אותם מאפיינים בשביל לחזות מודולים פגומים. מאחר וגישות אלו תלויות בכלי חילוץ מאפיינים ספציפיים, הבנייה האפקטיבית של רוב המודלים המדויקים דורשת ממייני למידת מכונה שנעשו במיוחד למטרה זו (custom-tailored).
על מנת לצמצם את הפער בין למידה עמוקה וחיזוי כשלים, אנו מציעים מסגרת עקרון קצה לקצה היכולה להשיג חיזוי תוצאות עבור תכניות ללא שימוש בכלי חילוץ מאפיינים. לשם כך, אנו ראשית מדמים תכניות כדימויים, מיישמים את מנגנון תשומת הלב (self-attention mechanism) על מנת לחלץ מאפייני דימוי, מפעילים למידת העברה כדי להפחית את הבדל חלוקות הדגימה בין הפרויקטים, ולבסוף מזינים את קבצי הדימוי אל מודל הלמידה העמוקה, המאומן מראש לחיזוי כשלים. ניסויים עם 10 פרויקטים קוד פתוח ממערך הנתונים PROMISE מראים כי השיטה שלנו יכולה לשפר חיזוי כשלים בין-פרויקטים (cross-project) ותוך-פרויקטים (within-project). פרטי הקוד שלנו נגישים ב- https://zenodo.org/record/3373409#.XV0Oy5Mza35.
1. הקדמה
טכניקות חיזוי כשלי תוכנה יכולות לסייע למפתחי תוכנה לאתר מודולי קוד פגומים אוטומטית, כדי לחסוך מאמץ אנושי ומשאבים חומריים. רוב שיטות החיזוי בונות מודלים לחיזוי המבוססים על מודולים בקוד המקור ונתוני התפתחות היסטורית ברמות שונות של תכנון, למשל, שינויי שיטות וקבצי קִבּוּעַ (commit). מעשית, בהתבסס על האם נתוני האימון ההיסטוריים מגיעים מאותו פרויקט או לא, אנו מבחינים בין חיזוי כשלים תוך-פרויקטים (WPDP) וחיזוי כשלים בין-פרויקטים (CPDP).
כדי לחזות האם מודול מסוים פגום או לא, נלקח מספר רב של מאפיינים מתוכננים ידנית, לרבות מאפייני קוד סטטיים ומאפייני תהליך. כדי לשפר אותם, לימודי חיזוי כשלי תוכנה עכשוויים מתמקדים בעיקר על שני כיוונים עיקריים: שיטות חילוץ מאפיינים חדשים ושיטות מיון נלמדות מאוספי נתונים בקנה מידה גדול. אולם טכניקות חיזוי כשלים, המזינות מאפיינים מתוכננים ידנית אל אלגוריתמים של למידת מכונה למטרות מיון, הינן בעלות מספר מגבלות. הנדוס המאפיינים הנחוץ לוקח זמן רב ודורש שימוש בכלים מיוחדים במעלה הזרם (upstream), כמו ניתוח מורכבות קוד, כריית יומני הגשה (submission
…
Software visualization and deep transfer learning for effective software defect prediction לקריאה »