בדיקה של פלטפורמת Android

Android Open Source Project (AOSP) מספק מספר כלים וחבילות בדיקה לבדיקת חלקים שונים בהטמעה. לפני השימוש בדפים עליך להכיר את המונחים הבאים:

מכשיר תואם Android
מכשיר שיכול להריץ כל אפליקציה של צד שלישי שנכתבה על ידי מפתחים של צד שלישי באמצעות Android SDK ו-NDK. מכשירים שתואמים ל-Android חייבים לפעול בהתאם בדרישות של מסמך הגדרת תאימות (CDD) ומעבירים את חבילה לבדיקת תאימות (CTS). תואם ל-Android מכשירים שעומדים בקריטריונים להשתתפות בסביבה העסקית של Android, שכוללת רישיון פוטנציאלי של Google Play, רישוי פוטנציאלי של חבילת Google Mobile Services (GMS) של האפליקציה וממשקי ה-API, ושימוש בסימן המסחרי של Android. כל אחד מוזמן להשתמש בקוד המקור של Android, אבל כדי להיחשב לחלק מהסביבה העסקית של Android, המכשיר צריך להיות תואם ל-Android.
ארטיפקט
יומן שקשור ל-build שמאפשר לפתור בעיות באופן מקומי.
מסמך הגדרת תאימות (CDD)
מסמך שמפרט את דרישות התוכנה והחומרה עבור מכשיר תואם Android.
חבילה לבדיקת תאימות (CTS)

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

בדיקות CTS ובדיקות פלטפורמה אינן בלעדיות. הנה כמה הנחיות כלליות הנחיות:

  • אם בבדיקה נטען שנכונות פונקציות או התנהגויות של ה-framework API, ויש לאכוף את הבדיקה אצל כל שותפי ה-OEM, היא צריכה להיות ב-CTS.
  • אם הבדיקה מיועדת לזהות רגרסיות במהלך פיתוח הפלטפורמה, ויכול להיות שיהיה צורך בהרשאה הרשאה כדי לבצע את הפעולה, והפעולות עשויות להיות בפרטים של ההטמעה (כפי שפורסם ב-AOSP), זו צריכה להיות פלטפורמה לבדיקה.
Google Mobile Services (GMS)

אוסף של אפליקציות וממשקי API של Google שאפשר להתקין מראש במכשירים.

GoogleTest (GTest)

מסגרת של C++ לבדיקה ולעג. בדרך כלל קבצים בינאריים של GTest גישה לשכבות הפשטה ברמה נמוכה יותר או ביצוע IPC גולמי מול מערכות שונות שירותים שונים. גישת הבדיקה של GTest בדרך כלל קשורה מתבצעת בדיקה. CTS מכיל את מסגרת GTest.

בדיקת אינסטרומנטציה

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

Logcat

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

רישום ביומן

שימוש ביומן כדי לעקוב אחרי אירועי מערכת במחשב, כמו בתור שגיאות. ההתחברות ל-Android היא מורכבת בגלל השילוב של התקנים שבהם נעשה שימוש משולבות בכלי Logcat.

בדיקה לאחר השליחה

בדיקת Android שמבוצעת כשתיקון חדש מחויב הסתעפות ליבה (kernel) משותפת. אם מזינים את aosp_kernel כשם הסתעפות חלקי, לראות רשימה של הסתעפויות ליבה עם תוצאות זמינות. לדוגמה, תוצאות עבור android-mainline ניתן למצוא את https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid.

בדיקה מראש

בדיקה שמשמשת למניעת כשלים במערכת ליבות נפוצות.

איחוד הסחר

נקרא גם Tradeified, בדיקה רציפה (CD) שמיועד להרצת בדיקות במכשירי Android. לדוגמה, פרוטוקול המסחר האלקטרוני משמש להרצת בדיקות של חבילת בדיקת התאימות ובדיקות של חבילת בדיקה של ספקים.

חבילת בדיקה של ספקים (VTS)

מערך של יכולות מקיפות עבור בדיקות ב-Android, קידום תהליך פיתוח מבוסס-בדיקות ואוטומציה בדיקת שכבת הפשטה של חומרה (HAL) ובדיקת ליבה של מערכת ההפעלה.

סוגי בדיקות פלטפורמה

בדיקת פלטפורמה בדרך כלל מקיימת אינטראקציה עם מערכת Android אחת או יותר או שכבות HAL, פונקציונליות של הנושא שנבדק, ומצהיר/ה שנכונות תוצאת הבדיקה. בדיקת פלטפורמה יכולה:

  • (סוג 1) הפעלת ממשקי API של framework באמצעות Android framework. ממשקי API ספציפיים האימון יכול לכלול:
    • ממשקי API ציבוריים שמיועדים לאפליקציות של צד שלישי
    • ממשקי API נסתרים שמיועדים לאפליקציות שקיבלו הרשאות, כלומר ממשקי API של המערכת או ממשקי API פרטיים (@hide, או protected, package private)
  • (סוג 2) הפעלה של שירותי מערכת Android באמצעות קלסרים גולמיים או שרתי proxy של IPC ישירות.
  • (סוג 3) ניהול אינטראקציה ישירה עם HAL באמצעות ממשקי API או ממשקי IPC ברמה נמוכה.

בדיקות מסוג 1 ו-2 הן בדרך כלל בדיקות אינסטרומנטציה, ואילו בדיקות מסוג 3 הן בדרך כלל בדיקות GTest.

מה השלב הבא?

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