סוכן App Testing הוא סוכן ליצירה, לניהול ולהפעלה של מקרי בדיקה, שמופעל על ידי Gemini ב-Firebase. אתם מגדירים את יעדי הבדיקה בשפה טבעית, והסוכן משתמש ב-AI כדי להבין את האפליקציה ולנווט בה, לדמות אינטראקציות של משתמשים ולספק תוצאות בדיקה מפורטות.
איך סוכן App Testing משתמש בנתונים שלכם
סוכן App Testing מסופק על ידי Gemini ב-Firebase וכפוף לאותם תנאים. במאמר איך Gemini ב-Firebase משתמש בנתונים שלכם מוסבר איך Gemini ב-Firebase משתמש בנתונים שלכם.
לפני שמתחילים
אם עדיין לא עשיתם זאת, רשמו את האפליקציה ב-Firebase.
אם אתם לא משתמשים במוצרים אחרים של Firebase, אתם צריכים רק ליצור פרויקט ולרשום את האפליקציה. אתם לא צריכים להוסיף ערכות SDK לאפליקציה. עם זאת, אם תחליטו להשתמש במוצרים נוספים בעתיד, הקפידו לבצע את כל השלבים שמפורטים במאמר הוספת Firebase באמצעות מסוף Firebase.
יצירת מקרה בדיקה
כדי להריץ בדיקות מבוססות-AI, סוכן App Testing משתמש במקרי הבדיקה בשפה טבעית כדי להריץ בדיקות באפליקציה.
כל מקרה בדיקה מחולק לשלבים, שיתבצעו ברצף. השלבים מאפשרים לפצל את מקרה הבדיקה לחלקים, ולכל אחד מהם יש טענת נכוֹנוּת (assertion) משלו. הסוכן יכול לבצע הרבה פעולות בכל שלב.
יש שתי דרכים ליצור מקרה בדיקה: באמצעות קובץ YAML או באמצעות מסוף Firebase. קובצי YAML מאפשרים לכם לנהל את מקרי הבדיקה בעצמכם, בדרך כלל במאגר מקורות של קוד עם גרסאות. לחלופין, אפשר לאחסן את מקרי הבדיקה מרחוק במסוף Firebase, יחד עם הנתונים של הפצת האפליקציות.
שימוש בקובצי 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 ופועלים לפי השלבים הבאים:
- בכרטיסייה Test Cases, לוחצים על מקרה בדיקה חדש. אם אתם לא רוצים ליצור מקרה בדיקה משלכם, אתם יכולים לשנות את מקרה הבדיקה לדוגמה שסופק או להשתמש בו.
- בתיבת הדו-שיח Add test case, נותנים שם למקרה הבדיקה. השדה הזה משמש לזיהוי הבדיקה, אבל הנציג מתעלם ממנו.
- (אופציונלי) בוחרים מקרה בדיקה כתנאי מקדים שמכיל את שלבי ההגדרה שצריך להריץ לפני הבדיקה הראשית. אם בדיקת הדרישה המוקדמת נכשלת, כל הבדיקה תסומן כנכשלת. השלבים והתוצאות של בדיקות הדרישות המוקדמות והבדיקות העיקריות יוצגו יחד בתוצאות הבדיקה.
- כדי לפצל את הבדיקה לכמה שלבים, לוחצים על הכפתור Add another step.
- לכל שלב נותנים יעד שמתאר מה סוכן App Testing צריך לעשות בשלב הזה.
- (אופציונלי) מוסיפים רמז כדי לספק מידע נוסף שיעזור לסוכן App Testing להבין את האפליקציה ולנווט בה במהלך השלב הזה.
- מוסיפים טענת נכוֹנוּת (assertion) של מסך סופי כדי לעזור לסוכן App Testing לקבוע מתי השלב הושלם בהצלחה. הטענה הזו צריכה להתייחס רק למה שמופיע במסך.
- כשמסיימים להתאים אישית את הבדיקה, לוחצים על שמירה.
מקרה בדיקה לדוגמה
הדוגמה הבאה ממחישה איך ליצור מקרה בדיקה באמצעות סוכן App Testing:
כותרת לבדיקה |
טעינת דף הבית |
מטרה |
טעינת דף הבית |
רמז |
עוברים את מסכי ההגדרה הראשונית. סוגרים את כל החלונות הקופצים. לא להיכנס לחשבון. |
הצהרה במסך הסופי |
דף הבית הראשי של האפליקציה מוצג במסך, כל התמונות נטענו ולא מוצגות שגיאות. |
מבצעים בדיקה
האופן שבו מריצים את הבדיקות תלוי באופן שבו יוצרים ומנהלים את מקרי הבדיקה. אם אתם מגדירים מקרי בדיקה באמצעות קובצי YAML, תריצו את הבדיקות האלה באמצעות Firebase CLI. אם אתם יוצרים את מקרי הבדיקה במסוף הפצת אפליקציות, אתם יכולים להריץ אותם מהמסוף או באמצעות אחד מכלי ה-CLI של הפצת אפליקציות.
שימוש בקובצי YAML
אפשר להריץ מקרי בדיקה שמוגדרים בקובצי YAML באמצעות Firebase CLI.
- מתקינים או מעדכנים לגרסה העדכנית ביותר של Firebase CLI. מומלץ להוריד את הקובץ הבינארי העצמאי של ה-CLI שמתאים למערכת ההפעלה שלכם.
- נכנסים לחשבון ובודקים שיש לכם גישה לפרויקטים. שימו לב: אם אתם משתמשים ב-Firebase CLI בסביבת CI, אתם יכולים גם לבצע אימות באמצעות חשבון שירות או באמצעות login:ci.
מריצים את הפקודה
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 (הגדרות כלליות).
|
--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. אם הדגל הזה לא מוגדר, הפקודה תחסום עד שהבדיקות יושלמו, ותצא עם קוד שגיאה אם אחת מהבדיקות תיכשל. |
--results-bucket
|
קטגוריה מותאמת אישית של Google Cloud Storage (GCS) שבה מאוחסנות תוצאות הבדיקה. אם משאירים את השדה ריק, המערכת משתמשת בקטגוריית ברירת המחדל. הקטגוריה צריכה להיות בבעלות של פרויקט שמופעל בו חיוב, וציון קטגוריה מוביל לחיובים על האחסון שבו נעשה שימוש. |
--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.
איך רואים את תוצאות הבדיקה
אפשר לראות את תוצאות הבדיקות בדף גרסאות בכרטיסייה סוכן App Testing של גרסה מסוימת. הכפתור הצגת פרטים פותח את תיבת הדו-שיח "תוצאות הבדיקה", שבה מוצגות הבעיות, צילומי מסך של האפליקציה והפעולות ש-Gemini ביצע במהלך הבדיקה.
אם בדיקה כוללת פעולות שהופעלו מחדש, אפשר לראות את הרצת הבדיקה המקורית שמבוססת על AI או לנקות את המטמון.
כדי לקבל מידע נוסף על תוצאות הבדיקה, אפשר להיעזר בטבלה הבאה:
| סמל | שם | תיאור |
|---|---|---|
| spark | פעולת AI | מציין שסוכן App Testing השתמש ב-Gemini כדי להחליט לבצע פעולה או לסיים את השלב. |
| להפעיל מחדש | הפעולה הופעלה מחדש | מציין שסוכן App Testing הפעיל מחדש פעולה מהרצה מוצלחת קודמת של הבדיקה. |
| spark | הצהרת AI | מציין שסוכן App Testing השתמש ב-Gemini כדי לאמת טענה נכונה (assertion) במסך הסופי, אחרי הפעלה מחדש של פעולות מהרצה מוצלחת קודמת של אותה בדיקה. |
ניפוי באגים בתוצאות הבדיקה
אם תוצאות הבדיקה שונות מהצפוי, אתם יכולים לנפות באגים בבדיקה באמצעות המתג Show agent view בקטע View details בדף Test Results. בתצוגת הסוכן מוצגים הרכיבים במסך שסוכן App Testing הצליח לזהות באמצעות פרטי הנגישות של האפליקציה. כדי לראות מקרוב את מה שהנציג ראה, אפשר להוריד את המידע הזה מתפריט האפשרויות הנוספות.
אפשר גם להשתמש בכפתור View artifacts בדף Test Results כדי לראות את כל הסרטונים, היומנים ופריטי המידע האחרים ב-Cloud שקשורים לתוצאות הבדיקה.
בעיות ידועות ומגבלות
לגרסת טרום-ההשקה של סוכן App Testing יש כמה מגבלות ידועות:
- הבדיקות המבוססות על AI מוגבלות ל-5 דקות. אחרי שהבדיקה מתחילה, היא צריכה להסתיים בהצלחה בפרק הזמן הזה. אחרת, היא תסתיים מוקדם ותיחשב כשגיאת בדיקה.
- סוכן App Testing משתמש ב-AI גנרטיבי כדי לבדוק את האפליקציה, ולכן לפעמים הוא יבצע פעולות שונות, אבל עדיין יפעל לפי אותן הוראות.
- סוכן App Testing תומך רק בפעולות הבאות: לחיצה, הזנת טקסט, החלקה למעלה/למטה/שמאלה/ימינה, לחיצה ארוכה, גרירה ושחרור, חזרה והמתנה.
- לסוכן App Testing קשה להריץ בדיקות שכוללות רק שלב אחד שדורש הרבה פעולות. הוא פועל טוב יותר כשמשימות מורכבות מחולקות לכמה שלבים קצרים יותר.
- לפעמים סוכן App Testing לא גולל כדי לחשוף רכיבים אחרים מחוץ למסך. זה קורה לעיתים קרובות יותר כשאין אינדיקציה חזותית לכך שאפשר לגלול. כדי לעקוף את הבעיה, אפשר להשתמש בשדה "hints" כדי להציע גלילה.
- לפעמים סוכן App Testing מתקשה לספור, למשל לבצע פעולה מספר מסוים של פעמים.
- סוכן App Testing לא יכול לנווט באפליקציה אם
FLAG_SECUREמופעל. במקום צילומי מסך של האפליקציה, היא תראה רק מסך ריק.
מכסות לבדיקה
במהלך תקופת גרסת טרום-ההשקה (Preview), הבדיקות המבוססות על AI יוצעו ללא עלות במסגרת מכסה מוגבלת. מכסת ברירת המחדל היא 200 בדיקות בחודש לכל פרויקט ב-Firebase.
שימו לב שאם תבחרו להריץ כמה מקרי בדיקה, או להריץ את אותו מקרה בדיקה בכמה מכשירים, כל הרצה תיחשב כבדיקה נפרדת. לדוגמה, אם מריצים 2 מקרי בדיקה ב-2 מכשירים, זה נחשב ל-4 בדיקות בסך הכול.
כדי להגדיל את המכסה מעבר למגבלת ברירת המחדל, צריך לפנות לתמיכה של Firebase ולציין את תרחיש השימוש.