מה שצריך לבדוק תלוי בגורמים כמו סוג האפליקציה, צוות הפיתוח, כמות הקוד הקודם והארכיטקטורה שבה נעשה שימוש. בקטעים הבאים מפורט מה כדאי למתחילים לקחת בחשבון כשהם מתכננים את הבדיקות באפליקציה.
ארגון של ספריות בדיקה
פרויקט רגיל ב-Android Studio מכיל שתי ספריות שמכילות בדיקות בהתאם לסביבת הביצוע שלהן. כדאי לארגן את הבדיקות בתיקיות הבאות, כפי שמתואר:
- הספרייה
androidTest
צריכה להכיל את הבדיקות שפועלות במכשירים אמיתיים או וירטואליים. בדיקות כאלה כוללות בדיקות אינטגרציה, בדיקות מקצה לקצה ובדיקות אחרות שבהן JVM לבדו לא יכול לאמת את הפונקציונליות של האפליקציה. - הספרייה
test
צריכה להכיל את הבדיקות שפועלות במחשב המקומי, כמו בדיקות יחידה. בניגוד למה שצוין למעלה, אלה יכולות להיות בדיקות שפועלות ב-JVM מקומי.
בדיקות יחידה חיוניות
בהתאם לשיטות המומלצות, כדאי להשתמש בבדיקות יחידה במקרים הבאים:
- בדיקות יחידה למודלים של תצוגה או למציגים.
- בדיקות יחידה לשכבת הנתונים, במיוחד למאגרים. רוב שכבת הנתונים צריכה להיות עצמאית בפלטפורמה. כך אפשר להשתמש במודלים כפולים לבדיקה כדי להחליף מודולים של מסדי נתונים ומקורות נתונים מרוחקים בבדיקות. שימוש ב-test doubles ב-Android
- בדיקות יחידה לשכבות אחרות שאינן תלויות בפלטפורמה, כמו השכבה Domain, כמו בתרחישי שימוש ובאינטראקטורים.
- בדיקות יחידה לכיתות שירות, כמו מניפולציה של מחרוזות ומתמטיקה.
בדיקת מקרי קצה
בדיקות היחידה צריכות להתמקד גם בתרחישים רגילים וגם בתרחישים קיצוניים. תרחישים קיצוניים הם תרחישים נדירים שבודקים אנושיים ובדיקות גדולות יותר לא צפויים לזהות. דוגמאות:
- פעולות מתמטיות באמצעות מספרים שליליים, אפס ותנאי גבול.
- כל השגיאות האפשריות בחיבור לרשת.
- נתונים פגומים, כמו JSON בפורמט שגוי.
- סימולציה של נפח אחסון מלא במהלך שמירת קובץ.
- אובייקט שנוצר מחדש באמצע תהליך (למשל פעילות כשהמכשיר מסתובב).
בדיקות יחידה (unit testing) שכדאי להימנע מהן
יש להימנע מחלק מבדיקות היחידה בגלל הערך הנמוך שלהן:
- בדיקות שמאמתות את הפעולה הנכונה של המסגרת או הספרייה, ולא של הקוד שלכם.
- נקודות הכניסה למסגרת, כמו פעילויות, קטעים או שירותים, לא צריכות לכלול לוגיקה עסקית, ולכן בדיקת יחידה לא צריכה להיות בעדיפות גבוהה. בדיקות יחידה לפעילויות לא מועילות במיוחד, כי הן מכסות בעיקר את קוד המסגרת, והן דורשות הגדרה מורכבת יותר. בדיקות עם מכשירי מדידה, כמו בדיקות ממשק משתמש, יכולות לכלול את הכיתות האלה.
בדיקות ממשק משתמש
יש כמה סוגים של בדיקות ממשק משתמש שכדאי להשתמש בהם:
- בדיקות ממשק משתמש במסך בודקות אינטראקציות קריטיות של משתמשים במסך אחד. הם מבצעים פעולות כמו לחיצה על לחצנים, הקלדה בטפסים ובדיקת מצבים גלויים. נקודת התחלה טובה היא ליצור סיווג בדיקה אחד לכל מסך.
- בדיקות תהליך השימוש או בדיקות ניווט, שמכסות את המסלולים הנפוצים ביותר. הבדיקות האלה מדמות משתמש שנע דרך תהליך ניווט. אלה בדיקות פשוטות שיעזרו לכם לבדוק אם יש קריסות בזמן ריצה במהלך האיפוס.
בדיקות אחרות
יש בדיקות מיוחדות יותר, כמו בדיקות צילומי מסך, בדיקות ביצועים ובדיקות קוף. אפשר גם לסווג את הבדיקות לפי מטרה, כמו בדיקות רגרסיה, בדיקות נגישות ובדיקות תאימות.
מקורות מידע נוספים
כדי לבצע בדיקה בבידוד, לרוב צריך להחליף את יחסי התלות של הנושא שבבדיקה ביחסי תלות מזויפים או מדומים, שנקראים בדרך כלל 'עזרי בדיקה'. מידע נוסף זמין במאמר שימוש ב-test doubles ב-Android.
רוצים ללמוד איך יוצרים בדיקות יחידה ובדיקות ממשק משתמש? כדאי לעיין בcodelabs בנושא בדיקות.