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

חבילת Android Vendor Test Suite (VTS) מספקת לבצע בדיקות מקיפות בנושאים הבאים:

  • ליבה
  • חומרת הפשטה (HAL)

VTS פועל על במחשב ומפעיל מקרי בדיקה ישירות במכשירים מחוברים, או באמולטורים. בדומה ל-CTS, VTS הוא חבילת בדיקות אוטומטית משתמש ברכיבי התוכנה העיקריים הבאים.

  • Trade Federation (איחוד הסחר) של VTS מסגרת הבדיקה פועלת על המחשב המארח ומנהלת את הבדיקות להגדיר. הוא מאפשר הגדרת פיצול במספר מכשירים בבדיקה (DUT). אפשר גם להשתמש ניסיון חוזר שינסה שוב רק את הכשלים במקום את כל חבילות הבדיקה, שמפחית משמעותית את זמן ההרצה מחדש.
  • מקרי בדיקה בודדים מבוצעים ב-DUT. מקרי הבדיקה יכולות להיות בדיקות בסגנון gtest, בדיקות ליבה (kernel) או בדיקות בסגנון JUnit הכתובות Java.

סוגי בדיקות

הסוגים השונים של בדיקות VTS מתוארים בסעיפים הבאים.

בדיקות בסגנון gtest

רוב הבדיקות ב-VTS הן בדיקות gtest בסגנון gtest שבודקות את HAL יישום בפועל. הבדיקה היא שכתוב ב-C++ ופועל במכשיר. אירוע VTS טיפוסי עובר באיטרציה באמצעות כל מופע בממשק נתון, ומריצים את כל מקרי הבדיקה כנגדו. פרטים נוספים זמינים ב-VtsHalHealthStorageV1_0TargetTest כדוגמה.

בדיקות ליבה (kernel) של Linux

  • Kselftest (external/linux-kselftest) הוא אוסף של בדיקות שכלולות במאגר הליבה של Linux ב-tools/testing/selftests, שמתוכם 23 כלולים ב-VTS כדי להריץ ב-ARM.

  • פרויקט בדיקת Linux (external/ltp) הבדיקות מאמתות את האמינות, החוסן והיציבות של הליבה של Linux.

בדיקות בסגנון JUnit

קבוצה קטנה של בדיקות שמבוססות על מארח ב-VTS היא בדיקות בסגנון JUnit. לדוגמה, KernelApiSysfsTest בדיקות Java מיושמות בפורמט BaseHostJUnit4Test, שמשויך למכשיר בדיקה ויכול להריץ מעטפת פקודות לביצוע אימות.

בדיקות Python3 עצמאיות

חלק מבדיקות VTS, כמו vts_treble_sys_prop_test כתובים ב-Python3. בדיקות המבוססות על Python מוטמעות בפורמט unittest.TestCase ובכל בדיקה הנרתיק יכול לקיים אינטראקציה עם המכשיר באמצעות פקודות מעטפת.