באג ה'נראה בסדר': איך לזהות כשלים שקטים באפליקציה שבניתם עם בינה מלאכותית
הכלי שלכם לבניית אפליקציות עם בינה מלאכותית הפיק טופס יצירת קשר. הקלדתם את השם שלכם, לחצתם שליחה, ראיתם את הודעת ההצלחה הידידותית, והמשכתם הלאה. שבוע לאחר מכן אתם מזכירים את העמוד לחבר, ששואל אם מישהו מילא אותו. אתם הולכים לבדוק. שלוש הגשות יושבות באיזשהו מצב ממתין. אף אחת מהן מעולם לא הגיעה לתיבת הדואר שלכם.
זה מצב הכשל הנפוץ ביותר באפליקציה שנבנתה עם בינה מלאכותית, וזה לא זה שרוב האנשים דואגים ממנו. באגים שזורקים הודעת שגיאה אדומה קל למצוא — הכלי שלכם יתקן אותם בשתי דקות. הבאגים המסוכנים הם אלה שבהם המסך נראה בסדר, המשתמש חושב שהוא סיים, ואתם לא מגלים במשך חודש.
הפוסט הזה הוא רשימת בדיקה כדי לתפוס אותם. לא “איך לבדוק כמו מהנדס QA” — פשוט חמשת המקומות שבהם משתמשים אמיתיים נכווים מאפליקציה שנבנתה עם בינה מלאכותית ונראית כאילו היא עובדת.
1. שלחו משהו ובדקו שזה באמת הגיע לאנשהו
כשהכלי שלכם מכין טופס, שאלו שאלה אחת: לאן הולכים הנתונים? לא במופשט — תרתי משמע, לאן אתם יכולים ללכת ולהסתכל עליהם אחרי שאתם שולחים?
מספר מפתיע של טפסים כאלה שולחים לתוך מטפל (handler) שמחזיר “תודה!” בלי לשלוח את המייל, לשמור למסד נתונים, או להודיע למישהו. הטופס הוא חזית מנומסת. אז:
- שלחו רשומת בדיקה עם שם מזויף אבל ברור כמו “ZZZ TEST”.
- פתחו את לוח הבקרה, את מסד הנתונים, את תיבת הדואר, את הגיליון האלקטרוני — לכל מקום שבו ההגשות אמורות לנחות.
- מצאו שם את רשומת “ZZZ TEST” שלכם, עם החותמת זמן הנכונה.
אם אתם לא יכולים למצוא אותה בפחות מדקה, הטופס שלכם שבור, גם אם הוא בירך אתכם על השליחה. ראיתי טופס “צרו קשר” בעמוד נחיתה בתשלום אוסף אפס לידים במשך שלושה שבועות כי שלב המייל מעולם לא חובר. העמוד נראה מושלם.
2. נסו את המסלול שלעולם לא הייתם הולכים בו
אתם יודעים מה האפליקציה שלכם עושה כי צפיתם בה נבנית. אתם לוחצים על הכפתורים באותו סדר בכל פעם. משתמשים אמיתיים לא יעשו זאת.
בחרו את המסלול שמרגיש הכי מוזר:
- לחצו שליחה פעמיים ברצף, מהר.
- רעננו את העמוד באמצע פעולה.
- פתחו אותו בחלון פרטי בלי התחברות.
- הקלידו שם עם גרש (O’Brien הוא ההורס הקלאסי).
- הקלידו מספר בשדה שמבקש מספר, אבל הפכו אותו לשלילי או לאפס.
אם משהו נשבר באופן גלוי, זה באג אמיתי — אבל לפחות הוא רועש. הגרסה של “נראה בסדר” היא כשהלחיצה השנייה יצרה רשומה כפולה ואין דרך לדעת זאת מהמסך. לכו ובדקו את מסד הנתונים וחפשו שתי שורות “ZZZ TEST” עם חותמות זמן בהפרש של שתי שניות. אם תמצאו אותן, הטופס צריך הגנה מפני כפילויות.
3. חכו יום, ואז חזרו
הרבה קוד שנוצר על ידי בינה מלאכותית משתמש בזיכרון זמני שמתאפס כשהאפליקציה נפרסת מחדש או מאותחלת. האפליקציה מחזיקה את הנתונים שלכם במשהו שמתכנת היה קורא לו “מצב בזיכרון” (in-memory state) — בסדר לדמה, נורא לכל דבר אמיתי.
הבדיקה אכזרית וקלה: הזינו נתונים, סגרו את הלשונית, חכו עשרים וארבע שעות, חזרו. אם הנתונים שלכם נעלמו או התערבבו, האחסון אינו אמיתי. כנראה שצריך לומר לכלי שלכם, בשפה פשוטה: “הנתונים האלה צריכים לשרוד אתחול מחדש של השרת.” רוב הכלים יעברו למסד נתונים כשמבקשים מהם; חלקם לא, אלא אם תבקשו.
אתם יכולים להריץ גרסה מהירה יותר של הבדיקה הזו על ידי בקשה מהכלי, בצ’אט: “איפה הנתונים של הטופס הזה נשמרים, והאם הם ישרדו פריסה מחדש?” אם התשובה מזכירה “בזיכרון”, “session”, או “להרצה הזו”, מצאתם את הבאג לפני שמשתמש כלשהו נתקל בו.
4. הראו את זה לאדם אחד שהוא לא אתם
אתם יודעים מה האפליקציה שלכם אומרת. עיצבתם אותה. נתתם שמות לכפתורים. התוויות מובנות לכם כי אתם כתבתם אותן.
הראו אותה לחבר בלי להסביר כלום. אמרו: “תנסה לעשות X.” צפו בו. אל תעזרו. שלושה דברים יקרו:
- הוא ילחץ במקום שלא ציפיתם, והאפליקציה תעשה משהו מפתיע.
- הוא ייתקע על תווית שנראתה מובנת מאליה כשכתבתם אותה.
- הוא יעשה את הדבר שרציתם שיעשה, אבל בחצי מהשלבים שדמיינתם, וידלג על מסך שלם — לפעמים מסך שהאפליקציה הסתמכה עליו שימלא.
כל אחד מאלה הוא באג אמיתי. אף אחד מהם לא זורק שגיאה. החבר יגיד: “אה, זה חמוד”, ויחזיר לכם את המחשב. אתם תדעו, מהתבוננות בפנים שלו, שהוא היה אבוד למשך שלושים שניות במקום שלא חשבתם שיש בו שום תפר.
5. קראו את המייל שזה שולח, בטלפון
אם האפליקציה שלכם שולחת מיילים — אישורים, איפוסי סיסמה, חשבוניות — פתחו אחד בטלפון שלכם, ואחד בלקוח מייל שונה מזה שאתם בדרך כלל משתמשים בו. אפליקציות שנבנו עם בינה מלאכותית נוטות לייצר מיילים שנראים מהממים ב-Gmail במחשב ונראים כמו רעש לבן ב-Outlook על אנדרואיד.
אותו היגיון חל על קבלות PDF, קבצי ייצוא להורדה, וכפתורי “שתפו את הקישור הזה”. הדבר שיוצא מחוץ לאפליקציה שלכם, אל העולם האמיתי, הוא החלק הכי לא נבדק של בנייה עם בינה מלאכותית. הוא גם החלק שהמשתמשים שלכם רואים הכי הרבה. מייסד שאני מכיר השיק זרימת קופה יפהפייה שקובץ ה-PDF של הקבלה שלה, על אייפון, היה ריבוע שחור בודד. אף אחד לא התלונן — הם פשוט הפסיקו לקנות.
האמת הלא נוחה על “זה עובד”
כשאתם בונים עם כלי לבניית אפליקציות עם בינה מלאכותית, “זה עובד” אומר “זה רץ במכונה שלי, בדפדפן שלי, עם הלחיצות המדויקות שלי, ביום שבניתי את זה.” זו טענה הרבה יותר קטנה ממה שהיא נשמעת.
אפליקציות אמיתיות עובדות כש:
- אדם אחר משתמש בהן.
- הנתונים נשארים זמן רב יותר מהדמה.
- המסלול דרך האפליקציה הוא אחד שלא צפיתם.
- הפלט נקרא על מכשיר שלא בדקתם עליו.
אתם לא צריכים להפוך לבודק תוכנה כדי לשחרר משהו טוב. אתם רק צריכים לעשות את חמש הבדיקות האלה פעם אחת, יום לפני שאתם מספרים למישהו שהאפליקציה קיימת. הן לוקחות בערך עשרים דקות. הן יתפסו תשעה מתוך עשרה מהבאגים השקטים שאחרת היו מגיעים למשתמש משלם.
אם יש לכם זמן רק לאחת, עשו את הראשונה. שלחו משהו. מצאו אותו בצד השני. רוב האפליקציות שנבנו עם בינה מלאכותית נראות בסדר. הטריק הוא לוודא שהן באמת בסדר.
אם זה הדהד אצלכם, הדבר הבא ששווה לעשות הוא לשבת עם פיסת נייר ולכתוב את שלושת הדברים שהאפליקציה שלכם חייבת לעולם לא להיכשל בהם בשקט — הטופס, המייל, התשלום, מה שלא יהיה שלכם — ולעבור על כל אחד מהם עם הבדיקות שלמעלה. עשרים דקות עכשיו קונות לכם הרבה לילות של שינה אחר כך.