תשתית ו-Vendor Test Suite‏ (VTS)

חבילה של בדיקות של ספקי Android‏ (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, וכל תרחיש בדיקה יכול לקיים אינטראקציה עם המכשיר באמצעות פקודות מעטפת.