סוכן של App Testing (ל-Android)

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

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

סוכן בדיקת האפליקציות מסופק על ידי Gemini ב-Firebase והוא כפוף לאותם תנאים. במאמר איך Gemini ב-Firebase משתמש בנתונים שלכם יש מידע נוסף על האופן שבו Gemini ב-Firebase משתמש בנתונים שלכם.

לפני שמתחילים

אם עדיין לא עשיתם זאת, עליכם לרשום את האפליקציה ב-Firebase.

אם אתם לא משתמשים במוצרים אחרים של Firebase, אתם צריכים רק ליצור פרויקט ולרשום את האפליקציה. אתם לא צריכים להוסיף ערכות SDK לאפליקציה. עם זאת, אם תחליטו להשתמש במוצרים נוספים בעתיד, הקפידו לבצע את כל השלבים במאמר הוספת Firebase באמצעות מסוף Firebase.

יצירת תרחיש בדיקה

כדי להריץ בדיקות מבוססות-AI, סוכן בדיקת האפליקציות משתמש בתרחישי הבדיקה בשפה טבעית כדי לבצע בדיקות באפליקציה.

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

יש שתי דרכים ליצור תרחיש בדיקה: באמצעות קובץ YAML או באמצעות מסוף Firebase. קובצי YAML מאפשרים לכם לנהל את תרחישי הבדיקה בעצמכם, בדרך כלל במאגר המקורות של הקוד עם ניהול גרסאות. לחלופין, אפשר לאחסן את תרחישי הבדיקה מרחוק במסוף Firebase יחד עם הנתונים של App Distribution.

שימוש בקובצי YAML

בדוגמה הבאה מוצג קובץ YAML שמגדיר שני תרחישי בדיקה:

tests:
- displayName: Login as guest
  id: login-as-guest
  steps:
  - goal: Log in as a guest
    finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
  prerequisiteTestCaseId: login-as-guest
  steps:
  - goal: Open the article on "Bob Dylan"
    hint: Use the search function to find it
    finalScreenAssertion: >-
      The article is opened and the title "Bob Dylan" is visible.
  - goal: Find Bob Dylan's birthday in the article
    hint: >-
      Look for the "Born" section in the infobox on the right side of the page.
    finalScreenAssertion: >-
      The text "May 24, 1941" is visible on the screen.

אפשר לארגן קבוצות של בדיקות בקובץ אחד, ולהפריד בין חבילות הבדיקות האלה בכמה קבצים. אפשר להוסיף תנאי מוקדם לתרחיש בדיקה על ידי הוספת מזהה לבדיקה, ואז להפנות למזהה הזה באמצעות prerequisiteTestCaseId.

שימוש במסוף App Distribution

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

  1. בכרטיסייה תרחישי בדיקה, לוחצים על תרחיש בדיקה חדש. אם לא רוצים ליצור תרחיש בדיקה משלכם, אפשר לשנות את תרחיש הבדיקה לדוגמה שמופיע או להשתמש בו.
  2. בתיבת הדו-שיח הוספת תרחיש בדיקה, נותנים שם לתרחיש הבדיקה. הערך הזה משמש לזיהוי הבדיקה, אבל הסוכן מתעלם ממנו.
  3. (אופציונלי) בוחרים מקרה בדיקה של דרישה מוקדמת שמכיל שלבי הגדרה להרצה לפני הבדיקה הראשית. אם הבדיקה של הדרישה המוקדמת נכשלת, הבדיקה כולה תסומן ככישלון. השלבים והתוצאות של הבדיקה של הדרישה המוקדמת והבדיקה הראשית יוצגו יחד בתוצאות הבדיקה.
  4. אפשר לפצל את הבדיקה לכמה שלבים על ידי לחיצה על הלחצן הוספת שלב נוסף.
  5. בכל שלב צריך להגדיר מטרה שמתארת מה סוכן בדיקת האפליקציות צריך לעשות במהלך השלב הזה.
  6. (אופציונלי) מוסיפים הצעה כדי לספק מידע נוסף שיעזור לסוכן לבדיקת האפליקציה להבין את האפליקציה ולנווט בה במהלך השלב הזה.
  7. מוסיפים Final screen assertion כדי לעזור לסוכן לבדיקת האפליקציה לקבוע מתי השלב הושלם בהצלחה. הטענה הזו צריכה להתייחס רק למה שמוצג במסך.
  8. כשמסיימים להתאים אישית את הבדיקה, לוחצים על שמירה.

מקרה בדיקה לדוגמה

בדוגמה הבאה אפשר לראות איך יוצרים תרחיש בדיקה באמצעות סוכן בדיקת האפליקציות:

כותרת לבדיקה

טעינות דף הבית

מטרה

טעינת דף הבית

רמז

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

טענה לגבי המסך הסופי

מסך הבית הראשי של האפליקציה גלוי, כל התמונות נטענו ולא מוצגות שגיאות.

הרצת בדיקה

אופן ההרצה של הבדיקות תלוי באופן שבו יוצרים ומנהלים את תרחישי הבדיקה. אם מגדירים תרחישי בדיקה באמצעות קובצי YAML, מריצים את הבדיקות האלה באמצעות Firebase CLI. אם יוצרים את תרחישי הבדיקה במסוף App Distribution, מריצים אותם מהמסוף או באמצעות אחד מכלי App Distribution CLI.

שימוש בקובצי YAML

אפשר להריץ תרחישי בדיקה שמוגדרים בקובצי YAML באמצעות Firebase CLI.

  1. מתקינים או מעדכנים את הגרסה האחרונה של Firebase CLI. מומלץ להוריד את הקובץ הבינארי העצמאי של ה-CLI שמתאים למערכת ההפעלה שלכם.
  2. נכנסים לחשבון ובודקים שיש לכם גישה לפרויקטים. אם אתם משתמשים ב-Firebase CLI בסביבת CI, אתם יכולים גם לבצע אימות באמצעות חשבון שירות או באמצעות login:ci.
  3. מריצים את הפקודה apptesting:execute. לדוגמה:

    firebase apptesting:execute \
      --app=1:1234567890:android:0a1b2c3d4e5f67890 \
      --test-dir=./mytests \
      ./app/build/outputs/apk/debug/app-debug.apk
    
apptesting:execute [options] [/path/to/app/binary]
--app

חובה: מזהה האפליקציה ב-Firebase. אפשר למצוא את מזהה האפליקציה במסוף Firebase, בדף General Settings.

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

הנתיב לספרייה שמכילה קובצי YAML של תרחישי בדיקה. הפקודה תבצע חיפוש רקורסיבי בספרייה הזו, כך שאפשר לארגן את הקבצים בספריות משנה. אם לא מגדירים את המדיניות, המערכת תשתמש בערך './tests' כברירת מחדל.

--test-devices או
--test-devices-file

המכשירים שבהם יופעלו הבדיקות.

אפשר לציין את מכשירי הבדיקה כרשימה של מפרטי מכשירים שמופרדים באמצעות נקודה-ופסיק:

--test-devices "model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

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

--test-devices-file "/path/to/test-devices.txt"

אפשר לחפש את הדגמים הזמינים של המכשירים באמצעות CLI של gcloud.

--test-username

שם המשתמש לכניסה אוטומטית שבו ישתמשו במהלך הבדיקות.

--test-password או
--test-password-file

הסיסמה לכניסה אוטומטית שתשמש במהלך הבדיקות.

אפשר גם לציין את הנתיב לקובץ טקסט פשוט שמכיל סיסמה:

--test-password-file: "/path/to/test-password.txt"
--test-non-blocking

אם מוגדר, הפקודה תתחיל את הבדיקות ואז תחזור מיד במקום לחכות לסיום שלהן. כדי לראות את תוצאות הבדיקה, אפשר להיכנס למסוף Firebase. אם הדגל הזה לא מוגדר, הפקודה תיחסם עד שהבדיקות יושלמו, ותצא עם קוד שגיאה אם אחת מהבדיקות תיכשל.

--test-file-pattern

תבנית של ביטוי רגולרי. יופעלו רק בדיקות שנמצאות בקבצים שתואמים לתבנית הזו.

--test-name-pattern

תבנית של ביטוי רגולרי. רק בדיקות עם שמות מוצגים שתואמים לתבנית הזו יופעלו.

/path/to/app/binary

אופציונלי: הנתיב לקובץ הבינארי של האפליקציה. אם לא מציינים גרסה, הסוכן ישתמש בגרסה האחרונה שהועלתה אל App Distribution עבור האפליקציה שצוינה.

שימוש במסוף App Distribution

כדי להריץ תרחישי בדיקה שמאוחסנים בהפצת אפליקציות, אפשר להשתמש במסוף Firebase, ב-Firebase CLI או בתוספים Gradle או fastlane של App Distribution.

ייבוא וייצוא של תרחישי בדיקה באמצעות קובצי YAML

ייבוא של תרחישי בדיקה מקובצי YAML שימושי כשרוצים לנהל תרחישי בדיקה מחוץ למסוף Firebase. אפשר גם לייצא תרחישי בדיקה כדי להעביר אותם בין פרויקטים. אתם יכולים להשתמש ב-LLM כדי לשפר תרחישי בדיקה קיימים או ליצור תרחישי בדיקה חדשים. אתם יכולים לייבא ולייצא תרחישי בדיקה מהדף Test Cases (תרחישי בדיקה) במסוף Firebase או באופן פרוגרמטי באמצעות Firebase CLI. דוגמה למקרה בדיקה ב-YAML מופיעה במאמר יצירת מקרה בדיקה ב-YAML.

צפייה בתוצאות הבדיקה

אפשר לראות את תוצאות הבדיקות בדף גרסאות בכרטיסייה סוכן לבדיקת אפליקציות של גרסה. בלחיצה על הכפתור הצגת פרטים ייפתח תיבת הדו-שיח 'תוצאות הבדיקה', שבה יוצגו בעיות, צילומי מסך של האפליקציה והפעולות ש-Gemini ביצע במהלך הבדיקה.

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

כדי לקבל מידע נוסף על תוצאות הבדיקה, אפשר להיעזר בטבלה הבאה:

סמל שם תיאור
spark פעולת AI מציין שהסוכן לבדיקת אפליקציות השתמש ב-Gemini כדי להחליט לבצע פעולה או לסיים את השלב.
השמעה חוזרת הפעולה הופעלה מחדש מציין שהסוכן של בדיקת האפליקציה הפעיל מחדש פעולה מהרצה קודמת מוצלחת של הבדיקה.
spark הצהרת AI מציין שהסוכן של App Testing השתמש ב-Gemini כדי לאמת טענה לגבי מסך סופי, אחרי הפעלה חוזרת של פעולות מהפעלה קודמת מוצלחת של אותה בדיקה.

ניפוי באגים בתוצאות הבדיקה

אם תוצאות הבדיקה שונות מהצפוי, אפשר לנפות באגים בבדיקה באמצעות המתג הצגת תצוגת סוכן בקטע הצגת פרטים בדף תוצאות הבדיקה. בתצוגת הסוכן מוצגים הרכיבים במסך שהסוכן של בדיקת האפליקציה הצליח לזהות באמצעות פרטי הנגישות של האפליקציה. אם רוצים לבדוק מקרוב את מה שהסוכן ראה, אפשר להוריד את המידע הזה מתפריט האפשרויות הנוספות של הפעולה.

אפשר גם להשתמש בכפתור הצגת ארטיפקטים בדף תוצאות הבדיקה כדי לראות את כל הסרטונים, היומנים וארטיפקטים אחרים ב-Cloud שקשורים לתוצאות הבדיקה.

בעיות ידועות ומגבלות

יש כמה מגבלות ידועות לגרסת הטרום-השקה של סוכן בדיקת האפליקציות:

  • לבדיקות מבוססות-AI יש זמן קצוב לתפוגה של 5 דקות. אחרי שהבדיקה מתחילה, היא צריכה להסתיים בהצלחה תוך הזמן הזה, אחרת היא תסתיים מוקדם ותיחשב כשגיאת בדיקה.
  • הסוכן לבדיקת אפליקציות משתמש ב-AI גנרטיבי כדי לבדוק את האפליקציה, ולכן לפעמים הוא יבצע פעולות שונות למרות שהוא פועל לפי אותן הוראות.
  • הסוכן של App Testing תומך רק בפעולות הבאות: הקשה, הזנת טקסט, החלקה למעלה/למטה/ימינה/שמאלה, לחיצה ארוכה, גרירה ושחרור, חזרה והמתנה.
  • לסוכן של App Testing יש בעיה בהרצת בדיקות שמכילות רק שלב אחד שדורש ביצוע של פעולות רבות. הוא פועל טוב יותר כשמשימות מורכבות מחולקות לכמה שלבים קצרים יותר.
  • לפעמים, סוכן בדיקת האפליקציות לא יגלול כדי לחשוף רכיבים אחרים שלא מוצגים במסך. זה קורה לעיתים קרובות יותר כשאין אינדיקציה ויזואלית לגלילה. כפתרון עקיף, אפשר להשתמש בשדה 'הצעות' כדי להציע גלילה.
  • לפעמים לסוכן לבדיקת אפליקציות יש בעיה בספירה, למשל בביצוע פעולה מספר מסוים של פעמים.
  • הסוכן לבדיקת אפליקציות לא יכול לנווט באפליקציה אם האפשרות FLAG_SECURE מופעלת. במקום צילומי מסך של האפליקציה, הוא יראה רק מסך ריק.

בדיקת מכסות

במהלך תקופת התצוגה המקדימה, הבדיקות המבוססות על AI יוצעו ללא עלות במסגרת מכסת שימוש. מגבלת ברירת המחדל היא 200 בדיקות בחודש לכל פרויקט ב-Firebase.

שימו לב: אם תבחרו להריץ כמה תרחישי בדיקה או להריץ את אותו תרחיש בדיקה בכמה מכשירים, זה ייחשב לכמה בדיקות. לדוגמה, אם מריצים 2 תרחישי בדיקה ב-2 מכשירים, זה נחשב כ-4 בדיקות בסך הכול.

כדי להגדיל את המכסה מעבר למגבלת ברירת המחדל, צריך לפנות אל התמיכה של Firebase ולציין את תרחיש השימוש.