בדיקת גדלים שונים של מסכים וחלונות

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

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

מה צריך לבדוק

כשמפתחים ממשקי משתמש שמיועדים לגדלים שונים של מסכים וחלונות, משלמים סכום מיוחד את תשומת הלב לשני היבטים:

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

מאפיינים חזותיים

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

איור 1. הגיליון 'בשבילך' מסך עכשיו ב-Android בגדלים שונים

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

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

שיקום מדינה

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

איור 2. מכשיר מתקפל מקופל, פתוח ופתוח, שטוח, מסובב לרוחב וחצי פתוח (על משטח עליון).

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

יש כמה דרכים לבדוק את השינויים בהגדרות, אבל ברוב המקרים, יש שתי דרכים לבדוק את זה:

  • בכתיבה, צריך להשתמש בסמל StateRestorationTester כדי לדמות הגדרה אישית להשתנות בדרך יעילה מבלי להתחיל מחדש את הפעילות. כדאי לעיין בנושאים הבאים לקבלת מידע נוסף.
  • בכל בדיקה של ממשק משתמש, כמו 'אספרסו' או 'כתיבה', מבצעים סימולציה של שינוי הגדרות אישיות מתבצעת התקשרות אל Activity.recreate().

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

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

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

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

סוגי בדיקות לגדלים שונים של מסכים וחלונות

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

  • בדיקות התנהגות של ממשק משתמש מפעילה חלק מסוים בממשק המשתמש של האפליקציה, כמו למשל של פעילות מסוימת. הבדיקות מוודאות שרכיבים מסוימים קיימים או שיש להם למאפיינים . יכול להיות שהבדיקות יבצעו סימולציה של פעולות משתמש. עבור צפיות, משתמשים ב-Espresso. ל-Jetpack פיתוח נייטיב יש אפשרות משלו ממשקי API לבדיקה. בדיקות התנהגות של ממשק המשתמש יכולות להיות אינסטרומנטליות או מקומיות. בדיקות אינסטרומנטליות פועלות במכשירים או באמולטורים, והבדיקות המקומיות של ממשק המשתמש פועלות על Robolectric ב-JVM.

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

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

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

השלבים הבאים

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