הבדיקה היא חלק בלתי נפרד מתהליך פיתוח האפליקציה. בדרך כלל מריצים אפליקציות במהדמ או במכשיר כדי לוודא באופן ידני שהקוד פועל כצפוי. עם זאת, בדיקות ידניות גוזלות זמן רב, חשופות לשגיאות ולרוב לא ניתן לנהל אותן באפליקציות שפועלות במסכים ובמכשירים בגדלים שונים. בדרך כלל, הבעיות בבדיקות ידניות נובעות משימוש במכשיר אחד לצורכי פיתוח. כתוצאה מכך, לא ניתן להבחין בשגיאות במכשירים אחרים עם גורמי צורה שונים.
כדי לזהות רגרסיות בגדלים שונים של חלונות ומסכים, צריך להטמיע בדיקות אוטומטיות כדי לוודא שההתנהגות והמראה של האפליקציה עקביים בגורמי צורה שונים. בדיקות אוטומטיות מזהות בעיות בשלב מוקדם, ומפחיתות את הסיכון לבעיות שמשפיעות על חוויית המשתמש.
מה צריך לבדוק
כשמפתחים ממשקי משתמש לגדלים שונים של מסכים וחלונות, חשוב לשים לב במיוחד לשני היבטים:
- ההבדל בין המאפיינים החזותיים של הרכיבים והפריסות בחלונות בגדלים שונים
- איך המצב נשמר במהלך שינויים בהגדרות
מאפיינים חזותיים
בין שאתם מתאימים אישית ממשקי משתמש לגדלים שונים של חלונות ובין שלא, חשוב לוודא שהם מוצגים בצורה נכונה. כדאי להביא בחשבון רוחבים וגבהים של תמונות קומפקטיות, בינוניות ומורחבות. במאמר סיווגי גודל חלון תוכלו למצוא מידע על נקודות העצירה המומלצות (breakpoint).
בנוסף, יכול להיות שחלק מהרכיבים במערכת העיצוב לא יוצגו באפליקציה כצפוי אם מגבילי הגודל שלהם יתרחבו.
אם באפליקציה יש פריסות מותאמות לחלונות בגדלים שונים, צריך לבצע בדיקות אוטומטיות כדי למנוע רגרסיות. לדוגמה, הגדרת שוליים בטלפון יכולה להוביל לאי-עקביות בפריסת הטאבלט. אפשר ליצור בדיקות ממשק משתמש כדי לוודא את ההתנהגות של הפריסות והרכיבים, או ליצור בדיקות של צילומי מסך כדי לוודא את הפריסות באופן חזותי.
שחזור המצב
אפליקציות שפועלות במכשירים כמו טאבלטים עוברות סיבוב ושינוי של גודל התצוגה בתדירות גבוהה בהרבה מאשר אפליקציות שפועלות בטלפונים. בנוסף, במכשירים מתקפלים יש יכולות תצוגה חדשות, כמו קיפול ופתיחה, שיכולות לגרום לשינויים בהגדרות. האפליקציה צריכה להיות מסוגלת לשחזר את המצב כשהשינויים בהגדרות מתרחשים. לאחר מכן, תצטרכו לכתוב בדיקות כדי לוודא שהאפליקציה משחזרת את המצב בצורה נכונה.
קודם כול, צריך לבדוק שהאפליקציה לא קורסת כשמתרחשים שינויים בהגדרות. חשוב לוודא שכל ממשק משתמש באפליקציה יכול להתמודד עם כל שילוב של סיבוב, שינוי גודל או קיפול. מאחר ששינויים בהגדרות יוצרים מחדש את הפעילות כברירת מחדל, חלק מהקריסות מתרחשות בגלל הנחות לגבי עקביות הפעילות.
יש כמה דרכים לבדוק את השינויים בהגדרות, אבל ברוב המקרים יש שתי דרכים לבדוק:
- ב-Compose, אפשר להשתמש ב-
StateRestorationTester
כדי לדמות שינוי בהגדרות בצורה יעילה, בלי להפעיל מחדש את הפעילות. למידע נוסף, תוכלו לעיין בקטעים הבאים. - בכל בדיקת ממשק משתמש, כמו Espresso או Compose, אפשר לדמות שינוי בהגדרות באמצעות קריאה ל-
Activity.recreate()
.
בדרך כלל אין צורך להשתמש במכשירים שונים כדי לבדוק את שחזור המצב בתגובה לשינויים בהגדרות. הסיבה לכך היא שלכל שינויי ההגדרה שמאפשרים ליצור מחדש את הפעילות יש השלכות דומות. עם זאת, חלק משינויי ההגדרות עשויים להפעיל מנגנוני שחזור שונים של המצבים במכשירים ספציפיים.
לדוגמה, כשמשתמש צופה בממשק משתמש של רשימה עם פרטים במכשיר מתקפל פתוח, והוא מקפל את המכשיר כדי לעבור לתצוגה הקדמית, בדרך כלל ממשק המשתמש עובר לדף הפרטים. בדיקה אוטומטית צריכה לכלול את השחזור הזה של מצב ממשק המשתמש, כולל מצב הניווט.
כדי לבדוק שינויים בהגדרות שמתרחשים במכשירים שעוברים ממסך אחד למסך אחר או נכנסים למצב חלונות מרובים, יש כמה אפשרויות:
- משנים את גודל המסך במהלך בדיקה בכל מכשיר. ברוב המקרים, הפעולה הזו מפעילה את כל המנגנונים לשחזור המצב שצריך לאמת. עם זאת, הבדיקה הזו לא תפעל עבור לוגיקה שמזהה תנוחות ספציפיות במכשירים מתקפלים, כי שינויים בתנוחה לא גורמים לשינוי בהגדרה.
- באמצעות מכשיר או אמולטור שתומכים בתכונות שרוצים לבדוק, מפעילים את השינויים הרלוונטיים בהגדרות. לדוגמה, אפשר להשתמש ב-Espresso Device כדי לשלוט במכשיר מתקפל או בטאבלט ולעבור ממצב מקופל למצב פתוח בפריסה לרוחב. דוגמאות מפורטות מופיעות בקטע מכשיר Espresso בקטע ספריות וכלים לבדיקת מסכים בגדלים שונים.
סוגי בדיקות לגדלים שונים של מסכים וחלונות
חשוב להשתמש בסוג הבדיקה המתאים לכל תרחיש לדוגמה כדי לוודא שהבדיקה פועלת בצורה תקינה בגורמי צורה שונים:
בדיקות התנהגות של ממשק משתמש מפעילות חלק מ-UI של האפליקציה, כמו הצגת פעילות. הבדיקות מאמתות שרכיבים מסוימים קיימים או שיש להם מאפיינים ספציפיים . אפשר לבצע פעולות משתמש מדומינות בבדיקות. לצפיות, צריך להשתמש ב-Espresso. ל-Jetpack פיתוח נייטיב יש ממשקי API לבדיקה משלו. בדיקות התנהגות של ממשק משתמש יכולות להיות מוטמעות או מקומיות. בדיקות עם מכשירי מדידה פועלות במכשירים או במהדמרים, ואילו בדיקות ממשק משתמש מקומיות פועלות ב-Robolectric ב-JVM.
משתמשים בבדיקות התנהגות של ממשק המשתמש כדי לוודא שההטמעה של הניווט באפליקציה נכונה. הבדיקות מבצעות פעולות כמו קליקים והחלקות. בדיקות התנהגות של ממשק המשתמש בודקות גם את קיומם של רכיבים או מאפיינים מסוימים. למידע נוסף, ראו אוטומציה של בדיקות ממשק משתמש.
בדיקות של צילומי מסך מצלמות צילום מסך של ממשק משתמש או רכיב ומשוות את התמונה לצילום מסך שאושר בעבר. זו דרך יעילה מאוד להגן מפני רגרסיות, כי צילום מסך אחד יכול לכסות מספר גדול של רכיבים ואת המאפיינים החזותיים שלו. אפשר להריץ בדיקות של צילומי מסך ב-JVM או במכשירים. יש כמה frameworks של בדיקות של צילומי מסך. מידע נוסף זמין במאמר בדיקות של צילומי מסך.
לבסוף, יכול להיות שתצטרכו בדיקות יחידה כדי לבדוק את הפונקציונליות של יחידות לוגיות שמתנהגות באופן שונה בהתאם לסוג המכשיר או לגודל החלון, אבל בדיקות יחידה פחות נפוצות בתחום הזה.
השלבים הבאים
למידע נוסף על הטמעת הבדיקות במסמך הזה, ראו ספריות וכלים.