אוטומציה של בדיקות ממשק משתמש

בדיקת האינטראקציות של המשתמשים עוזרת לוודא שהמשתמשים לא נתקלים בתוצאות לא צפויות או בחוויה גרועה במהלך האינטראקציה עם האפליקציה. כדאי לכם לפתח את ההרגל ליצור בדיקות של ממשק המשתמש (UI) אם אתם צריכים לוודא שממשק המשתמש של האפליקציה פועל בצורה תקינה.

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

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

הרצת בדיקות ממשק משתמש

  • כדי להריץ בדיקות UI מוטמעות באמצעות Android Studio, מטמיעים את קוד הבדיקה בתיקיית בדיקה נפרדת של Android‏ – src/androidTest/java. Android Gradle Plugin יוצר אפליקציית בדיקה על סמך קוד הבדיקה שלכם, ואז טוען את אפליקציית הבדיקה באותו מכשיר שבו נמצאת אפליקציית היעד. בקוד הבדיקה, אתם יכולים להשתמש במסגרות לבדיקת ממשק המשתמש כדי לדמות אינטראקציות של משתמשים באפליקציית היעד, כדי לבצע משימות בדיקה שמכסות תרחישים ספציפיים של שימוש.
  • אפשר גם להשתמש ב-Robolectric כדי להריץ בדיקות ממשק משתמש ב-JVM.

ארכיטקטורה והגדרת בדיקה

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

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

הגישה המומלצת להחלפת יחסי התלות היא החדרת תלות (dependency injection). אפשר ליצור מערכת משלכם באופן ידני, אבל מומלץ להשתמש למטרה הזו במסגרת DI כמו Hilt.

למה כדאי לבדוק ממשקי משתמש באופן אוטומטי?

אפליקציה ל-Android יכולה לטרגט אלפי מכשירים שונים ברמות API ובפורמטים שונים. רמת ההתאמה האישית הגבוהה שמערכת ההפעלה מספקת למשתמש עלולה לגרום לכך שהאפליקציה תעבור עיבוד שגוי או אפילו תאבד את יציבותה במכשירים מסוימים.

בדיקת ממשק המשתמש מאפשרת לבצע בדיקת תאימות, כדי לוודא את ההתנהגות של האפליקציה בהקשרים שונים. מומלץ להריץ את בדיקות ממשק המשתמש במכשירים שונים במובנים הבאים:

  • רמת ה-API: 21,‏ 25 ו-30.
  • לוקאל: אנגלית, ערבית וסינית.
  • כיוון: לאורך, לרוחב.

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

סוגי בדיקות ממשק המשתמש

בקטע הזה נסביר על שני סוגים של בדיקות ממשק משתמש:

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