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

חבילת Android Vendor Test Suite (VTS) מספקת בדיקות מקיפות על:

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

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

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

סוגי הבדיקות

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

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

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

בדיקות של ליבה של Linux

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

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

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

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

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

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