רווחים:
- יכולת להבין שכבות פונקציונליות, רגרסיה, מקרי קצה ובדיקת ריסוק ולייצר תרחישי בדיקה ורשימות מקרי קצה עם בינה מלאכותית
- יכולת להאיץ איתור באגים על ידי כתיבת קוד בדיקה אוטומטי עם בינה מלאכותית וחילוץ דפוסים בניתוח יומן וקריסות
- היכולת להבין שאבחון שגיאה של בינה מלאכותית אינו ראיה אלא השערה, יש להוכיח את הסיבה באמצעות יומנים ושעתוק, ואת החשיבות של דיווח השגיאה שניתן לשחזר.
כאשר משחק משוחרר, השחקנים משחקים אותו בדרכים שהמפתח לא תיאר לעצמו: להיתקע בקירות, לנצל מלאי, להגיע למקומות בלתי אפשריים, להפעיל קריסות. אבטחת איכות (QA — אבטחת איכות); זהו תהליך של בדיקה שיטתית של המשחק לפני השחרור ואיתור ותיקון שגיאות (באגים), קריסות, חוסר יציבות וחוויות רעות. זהו אחד הקישורים עתירי העבודה אך הקריטיים ביותר בייצור המשחק. בינה מלאכותית מאיץ QA בנקודות רבות: יצירת מקרי בדיקה, ניתוח דוחות באגים, סקירת יומן, כתיבת קוד בדיקה אוטומטית, ניפוי באגים וחידוד שלבי ייצור. אבל בינה מלאכותית אינה מחליפה את האינטואיציה וההערכה של בודק אנושי את תחושת המשחק.
ביחידה זו תלמדו כיצד להשתמש בבינה מלאכותית ב-QA וניפוי באגים; תלמדו עיצוב תרחישי מבחן, ניתוח יומנים, כתיבת מבחנים אוטומטית ומשמעת דיווח שגיאות.
שכבות של QA ומקום של AI
QA הוא רב-שכבתי. בדיקה פונקציונלית: האם התכונה עובדת (האם הדלת נפתחת, האם עומס ההקלטה). בדיקת רגרסיה: האם השינוי החדש שבר את מה שעבד קודם? בדיקת מקרה קצה: כניסות חריגות (איפוס מלאי, שני מפתחות בבת אחת, ערכים גבוליים). בדיקות ביצועים/ריסוס: האם המשחק יציב. מבחן משחק/ניסיון: מהנה, אינטואיטיבי. בינה מלאכותית חזקה בארבעת הראשונים: הפקת תרחישים, פירוט מקרי קצה, כתיבת קוד בדיקה, ניתוח יומנים. האחרון - הניסיון - שייך לאדם.
זרימת QA צעד אחר צעד:
- צור מקרי בדיקה (רשימת מקרים פונקציונלית וקצה עם AI).
- כתוב בדיקות אוטומטיות (קוד לבדיקות חוזרות).
- הפעל ואסוף (שגיאות יומן, יומנים, קריסות).
- ניתוח (בדוק יומן ודפוס שגיאה עם AI).
- דווח ואמת (דוח באג ברור וניתן לשחזור; תיקון בדיקה).
רמז: קשה למצוא מארזי קצה מכיוון שהמעצב משחק את המשחק שלו "נכון". שאל את הבינה המלאכותית "מה היה מנסה שחקן אם הוא היה רוצה לשבור את המערכת הזו?" רשום ניצולים ומקרי קצה.
בדיקה אוטומטית: השאר את החזרה למכונה
בדיקה ידנית של אותם דברים בכל מהדורה היא מעייפת ונוטה לשגיאות. בדיקה אוטומטית מכניסה את הבדיקות הללו לקוד: האם פונקציה מחזירה את התוצאה הנכונה בכל פעם שהיא נקראת, היא מערכת במצב צפוי. Unity ו-Unreal מציעות מסגרות בדיקה; AI מהיר בכתיבת מבחנים אלה. זה חשוב במיוחד עבור רגרסיה: אם שינוי שובר משהו שעבד קודם לכן, המבחן הופך לאדום. סקור את הבדיקות שה-AI מייצרת, וודא שהם בודקים מה באמת משמעותי - מבחן ריק הוא גרוע יותר מכל מבחן.
זהירות: באיתור באגים, AI לפעמים מייצר הסבר מורכב כ"סיבה סבירה" (הזיה). אל תקבל את הסיבה לבאג רק בגלל שה-AI אמר לך זאת; הוכח את הסיבה על ידי רישום, שחזור ובדיקה. אבחון שגוי מעכב את מציאת המתאים.
רפרודוקציה: הלב של ניפוי באגים
הדרישה הראשונה לתיקון באג היא לשחזר אותו בצורה מהימנה. באג המתואר כ"קורה לפעמים" לא ניתן לתיקון מכיוון שאינך יכול לוודא אם התיקון עבד. אז העבודה החשובה ביותר של איתור באגים היא צמצום התנאים המדויקים שבהם הבאג מתרחש (אילו שלבים, איזה מצב, איזה תזמון). AI עוזר לצמצם את זה: אתה יכול לתת את הסימפטומים ואת שלבי ההתרבות החלקיים ולהגיד "הצע תנאים ואסטרטגיית צמצום שעשויים לעורר התנהגות זו." אבל אתה בעצם עושה את הצמצום על ידי הפעלת המשחק; AI מייצר השערות, אתה מבטל אותן.
במיוחד שגיאות הקשורות לתזמון (מצב גזע) ושגיאות הקשורות למצב זיכרון הן ערמומיות; אלה מתרחשים רק ברצף או עומס מסוים. עבור שגיאות כאלה, חיוני להוסיף מידע על חותמת זמן ומצב ליומן; ה-AI יכול לנתח את היומן העשיר הזה ולראות את הדפוס ("השגיאה מתרחשת תמיד כששני האירועים האלה קורים לאחרונה"). זכור את כלל הזהב של ניפוי באגים: קודם להבין, ואז לתקן. תיקון ללא הבנה מסתיר את השגיאה אך אינו פותר אותה ולרוב יוצר שגיאה חדשה במקום אחר.
שלושה מיני תיקים
מקרה 1 - ציד תיקי קצה. ב-RPG, הצוות בדק את מערכת המלאי במשחקיות "רגילה" וחשב שהיא מוצקה. הם אמרו ל-AI "לנסות לפצח את המלאי הזה" ויצרו 30 תרחישי קצה; 4 מהן היו שגיאות אמיתיות (פיצול 0 משקל פריט, חד פעמי בו זמנית). תוקן לפני הפרסום.
מקרה 2 - ניתוח יומן פתר את ההתרסקות. משחק התרסק באקראי; יומני התרסקות היו מאות שורות. כאשר ה-AI קיבל את היומנים וביקש את התבנית, התגלה שההתרסקות התרחשה תמיד במעבר סצינה ספציפי ובזיכרון נמוך. עם הרמז הזה, המתכנת מצא את דליפת הזיכרון; שיעור ההתרסקות ירד לאפס.
מקרה 3 - חזרה מאבחון שגוי. מתכנת סמך על ההסבר של ה-AI ש"שגיאה זו נגרמת על ידי הפונקציה הזו" והתעסק בה במשך חצי יום; לא יצאו תוצאות. כאשר הבהיר ורשם שוב את שלבי הייצור, השגיאה הייתה במקום אחר לגמרי. לקח: אבחון של AI הם השערות, לא הוכחה.
ארבע תבניות הניתנות להעתקה
1) יצירת מקרה קצה/תרחישי ניצול:
התפקיד שלך: בודק QA זדוני. אני מתאר את המערכת הבאה: [מערכת, כללים]. משימה: רשום 20 תרחישי מקרה קצה שינסו לשבור, לנצל או לזרוק את המערכת הזו למצב בלתי צפוי. לכל אחד: מה לנסות, תוצאה צפויה, שגיאה אפשרית.
2) כתיבת מבחן אוטומטית:
מנוע: [Unity 2022.3 / Unreal 5.3]. מסגרת בדיקה: [פרט].כתוב בדיקות אוטומטיות עבור הפונקציה/מערכת הבאה: [תיאור/קוד].כלול רישיות רגילות, רישיות מוגבלות וקלט שגוי. וודא שכל בדיקה מאמתת משהו משמעותי באמת; כתיבת מבחנים ריקים/חסרי משמעות.
3) ניתוח יומן/התרסקות:
להלן יומני הקריסה/שגיאות של המשחק: [log]. משימה: סמן דפוסים חוזרים, מצבים נפוצים (סצנה, זיכרון, תזמון), וסיבות שורש אפשריות. הצג כל סיבה כ"השערה שיש להוכיח"; לדבר ברור. תגיד לי גם איך לאמת.
4) הבהרת דיווח באגים:
הפוך את דוח השגיאות המעורפל הבא לברור וניתן לשחזור: [דוח גולמי]. פלט: כותרת, שכפול שלב אחר שלב, תוצאה צפויה, תוצאה בפועל, תדירות, סביבה. אם חסר מידע, רשום איזה מידע נדרש.
הנחיה חלשה / הנחיה חזקה
הנחיה חלשה:
יש באג במשחק שלי, תקן אותו.
ללא הקשר, ללא יומן, ללא רפרודוקציה; AI מנבא והסיכון להזיות גבוה.
הנחיה עוצמתית:
יש באג במשחק Unity 2022.3 שלי: המלאי לפעמים מוכפל כשהשחקן מבצע טעינת שמירה מהירה. שכפול: [צעדים]. קוד קשור: [הדבק]. יומן: [הדבק].משימה: רשום סיבות שורש אפשריות כהשערות שיש להוכיח, תן איך לאמת ותיקון אפשרי עבור כל אחת. המצא סיבה לא קיימת; אם אתה לא בטוח, תודיע לי.
רפרודוקציה, קוד, יומן ובקשת "הצג כהשערה" הופכים את האבחנה לאמינה.
טבלת שכבות QA
שכבה
מה זה בודק?
תרומת AI
חלק אנושי
פונקציונלי
האם התכונה עובדת?
סקריפט, קוד בדיקה
החלטת קבלה
רגרסיה
האם הדבר הישן שבור?
בדיקה אוטומטית
החלטת היקף
מקרה קיצוני
קלט יוצא דופן
הפקת תסריט
עדיפות
התרסקות/ביצועים
נחישות
ניתוח יומן
אישור שורש
ניסיון
בידור, אינטואיציה
מוגבל
אנושי לחלוטין
טעויות נפוצות
- רק בודק משחק "רגיל". תיקי קצה מתפוצצים לאחר השחרור.
- טעות באבחנה של AI כהוכחה. מדוע מוכח על ידי יומן ובדיקה.
- כתיבת בדיקות אוטומטיות ריקות. בדיקה חסרת משמעות נותנת אשליה של ביטחון עצמי.
- דוח באג מעורפל. לא ניתן לתקן שגיאה שאינה ניתנת לשחזור.
- דילוג על בדיקות רגרסיה. כל תיקון עלול לגרום לשגיאות חדשות.
לסיכום
QA היא המשמעת שעושה את המשחק מוכן עבור השחקן. AI; מייצר תרחישי מקרה קצה, כותב בדיקות אוטומטיות, מנתח יומנים ומבהיר דוחות שגיאות. אבל האבחנות שלהם הן השערות, הערכת הניסיון היא אנושית, וכל תיקון מצריך בדיקה חוזרת. שכפל את רפלקס "מי יכול לשבור את זה ואיך" עם AI; אתה אוסף את הראיות.
משימת יישום
בחר מערכת מהמשחק שלך. יש ליצור 20 תרחישים עם התבנית "יצירת מקרה קצה/תרחישי ניצול" ולמעשה לבדוק את 5 המסוכנים ביותר. צור דוח שניתן לשחזר עבור באג שמצאת באמצעות התבנית "חידוד דוח באגים".
רשימת בדיקה
- [ ] יצרתי מקרה קצה עם "מי יכול לשבור את זה ואיך?"
- [ ] כתב ובדק בדיקות אוטומטיות לבדיקות חוזרות.
- [ ] התייחסתי לאבחנה של AI כהשערה והוכחתי אותה עם יומן/בדיקה.
- [ ] דיווחתי על שגיאות באופן שחזור.
- [ ] בדקתי מחדש כל תיקון עבור רגרסיה.