יש כמה דרכים להשתמש ב-Firebase Test Lab כדי להריץ בדיקות באפליקציית Android, כולל ממשק שורת הפקודה, Android Studio, ממשק המשתמש של Test Lab במסוף Firebase ו-Testing API. בכל מקרה, התוצאות נשמרות בפרויקט Firebase שציינתם. אפשר לעיין בתוצאות באמצעות ToolResults API, בנוסף לכל אחד מהכלים שלמעלה. בדף הזה מוסבר איך בודקים ומנתחים את תוצאות הבדיקות האלה.
מושגים מרכזיים
במסוף Firebase, אפשר לראות את התוצאות של כל ההרצות הקודמות של הבדיקות. לשם כך, עוברים אל DevOps & Engagement > Test Lab. בדף הזה מוצגות כל התוצאות המפורטות של הרצות הבדיקה מהאפליקציות שנבדקו בפרויקט באמצעות Test Lab.
כדי לבדוק את תוצאות הבדיקה, קודם צריך להבין שלושה מושגים:
כשמריצים בדיקה או סדרה של תרחישי בדיקה במכשירים ובהגדרות שבחרתם, Test Lab מריץ את הבדיקה באפליקציה שלכם באצווה, ואז מציג את התוצאות כמטריצת בדיקה.
מכשירים × הרצות בדיקה = מטריצת בדיקה
- מכשיר
- מכשיר פיזי או מכשיר וירטואלי (Android בלבד) שבו מריצים בדיקה, כמו טלפון, טאבלט או מכשיר לביש. מכשירים במטריצת בדיקה מזוהים לפי דגם המכשיר, גרסת מערכת ההפעלה, כיוון המסך והלוקאל (שנקרא גם הגדרות גיאוגרפיות ושפה).
- בדיקה, ביצוע בדיקה
- בדיקה (או קבוצה של מקרי בדיקה) שצריך להריץ במכשיר. אפשר להריץ בדיקה אחת לכל מכשיר, או לחלק את הבדיקה ולהריץ את תרחישי הבדיקה שלה במכשירים שונים.
- מטריצת בדיקה
- מכיל את הסטטוסים ואת תוצאות הבדיקה של הרצות הבדיקה. אם ביצוע בדיקה כלשהו במטריצה נכשל, כל המטריצה נכשלת.
בקטעים הבאים מוסבר איך לעיין בתוצאות הבדיקה.
פירוש התוצאות של היסטוריית הבדיקות
כשעוברים לתוצאות הבדיקה על ידי בחירה באפשרות Test Lab, מוצגות תוצאות הבדיקות שהפעלתם עד עכשיו.
היסטוריית הבדיקות מקובצת לפי אפליקציה. מוצגות רק חמש מטריצות הבדיקה האחרונות של כל אפליקציה. אם יש עוד מטריצות, אפשר ללחוץ על הקישור כל המטריצות בתחתית רשימת הבדיקות של האפליקציה כדי לראות את הרשימה המלאה של אותה אפליקציה.
פירוש התוצאות של מטריצת הבדיקה
כשמתחילים בדיקה דרך ממשק המשתמש של Test Lab, מועברים לדף שבו אפשר לראות את מטריצת הבדיקה וללחוץ על הפעלת בדיקה ספציפית כדי לראות את תוצאות הבדיקה. Android Studio ופקודת gcloud מספקות גם כתובת URL לדף התוצאות של מטריצת הבדיקה.
במטריצת בדיקה טיפוסית, יכול להיות שתריצו בדיקה בכעשרה מכשירים שונים. לכל הרצה של בדיקה יכולה להיות תוצאה שונה. התוצאות האפשריות של כל הרצה במטריצת בדיקות כוללות את האפשרויות הבאות:
- עבר
: לא נתקלו בכשלים. - נכשל
: נתקלה לפחות שגיאה אחת. - לא חד-משמעי
: תוצאות הבדיקה לא היו חד-משמעיות, יכול להיות בגלל שגיאה Test Lab. - הדילוג על
: ערכי המאפיינים שנבחרו בחלק מהרצות הבדיקה במטריצה לא היו תואמים. המצב הזה קורה כשהמכשירים שבחרת לא תואמים לרמה אחת או יותר של Android API שבחרת.
כדי לבדוק את תוצאות הבדיקה המצטברות של כל מטריצות הבדיקה של אפליקציה מסוימת בפרויקט Firebase, לוחצים על שם האפליקציה, כמו שמוצג בדוגמה הבאה:
דוגמה לדף תוצאות של מטריצת בדיקות עם ארבע הרצות בדיקה בלבד

כך תגיעו לרשימת מטריצות הבדיקה של האפליקציה. תוכלו ללחוץ על השם של כל מטריצת בדיקה כדי לראות את התוצאות שלה, או ללחוץ על שם האפליקציה (שמופיע בתיבה האדומה שלמטה) כדי לראות את רשימת מטריצות הבדיקה של אפליקציות אחרות שמשויכות לפרויקט Firebase.
דוגמה לדף רשימת מטריצות בדיקה

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

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

בדף הזה אפשר לראות את הזמן שנדרש לכל ביצוע בדיקה. אפשר גם לראות את התוצאות של מקרי בדיקה ספציפיים שתואמים לשיטות ב-APK של הבדיקה (במקרה של בדיקות מכשור), וכן תוצאות בדיקה מפורטות, כולל יומני בדיקה, צילומי מסך וסרטונים. בבדיקת Robo, תוצאות הבדיקה המפורטות כוללות גם מפת פעילות שמציגה באופן גרפי את נתיבי ממשק המשתמש שבהם בוצעה בדיקת Robo.
תוצאות של בדיקות אינסטרומנטציה עם חלוקה למחיצות
כדי לעזור לכם להבין את תוצאות הבדיקות עם המכשיר, Test Lab מפריד כל בדיקה לדף דוח מפורט משלה, שכולל מעקב אחר מחסנית, יומנים וסרטונים. התכונה הזו פועלת גם אם משתמשים ב-Android Orchestrator וגם אם לא.
דוגמה לדף תוצאות של תרחיש בדיקה

פרשנות של תוצאות הנגישות
בדיקות Robo משתמשות ב-Accessibility Scanner ל-Android כדי לזהות בעיות נגישות באפליקציה (שימו לב שאפשר גם להריץ סריקה באופן מקומי במכשיר). הוראות לבדיקה ולניתוח של תוצאות הנגישות של בדיקת Robo זמינות במאמר תחילת העבודה עם Accessibility Scanner.
מידע כללי על שיפור הנגישות של האפליקציה זמין בתיעוד למפתחים של Android בנושא נגישות.
מדדים לבדיקת ביצועים
בדיקות שמופעלות במכשירים פיזיים מחזירות גם מדדי ביצועים:
| מדד | הגדרת מכשיר נדרשת |
|---|---|
| זמן ההפעלה של האפליקציה | API 19 ומעלה |
| ניצול יחידת העיבוד המרכזית (CPU) | API 21 ומעלה |
| ניצול הזיכרון | |
| פעילות ברשת | |
| FPS | API 21 ומעלה, וכולל SurfaceView |
תוצאות מפורטות של הבדיקה
תוצאות מפורטות של הבדיקה זמינות למשך 90 יום אחרי שמריצים בדיקה, והן מאוחסנות בדלי Google Cloud Storage (אבל הן מוצגות גם במסוף Firebase). כדי לראות את פירוט תוצאות הבדיקה, לוחצים על Test results (תוצאות הבדיקה) בדף התוצאות של הרצת הבדיקה בCloud Storage bucket. גם אם התוצאות המפורטות של הבדיקות לא זמינות יותר, עדיין אפשר לראות אילו בדיקות עברו בהצלחה ואילו נכשלו.
אם רוצים לשמור את התוצאות המפורטות של הבדיקה למשך יותר מ-90 ימים, אפשר לשלוח אותן לCloud Storage באקט שבבעלותכם באמצעות האפשרות --results-bucket בשורת הפקודה gcloud. לאחר מכן אפשר להגדיר את ההגדרה גיל כדי לקבוע כמה זמן התוצאות יאוחסנו בקטגוריה Cloud Storage. במאמר תנאים למחזור חיים מוסבר איך לשנות את ההגדרה גיל.
כשמריצים בדיקה, אם מופיעה השגיאה does not have storage.objects.create access to the Google Cloud Storage object. Permission 'storage.objects.create' denied on resource (or it may not exist).., יכול להיות שלחשבון המשתמש שמריץ את הבדיקה אין את ההרשאה הנכונה בפרויקט. כברירת מחדל, Firebase יוצרת בשבילכם קטגוריה ב-Google Cloud Storage, אבל היא דורשת שלגורם הראשי שמבצע את הבדיקה יהיה התפקיד roles/editor, שהוא תפקיד מתירני. אם אין לכם אפשרות להעניק את התפקיד הזה לחשבון המשתמש, אתם יכולים להשתמש באפשרות --results-bucket בשורת הפקודה gcloud.