Vendor Test Suite (VTS) dan Infrastruktur

Android 11 Vendor Test Suite (VTS) menyediakan pengujian ekstensif pada hal berikut:

  • Inti
  • Lapisan abstraksi perangkat keras (HAL)

VTS berjalan pada mesin desktop dan mengeksekusi kasus uji langsung pada perangkat yang terpasang atau pada emulator. Mirip dengan CTS , VTS adalah rangkaian pengujian otomatis yang menggunakan komponen perangkat lunak utama berikut.

  • Rangkaian uji VTS Trade Federation berjalan di mesin host Anda dan mengelola eksekusi pengujian. Ini menawarkan kemampuan untuk Mengonfigurasi Sharding di beberapa perangkat yang sedang diuji (DUT). Anda juga dapat menggunakan fitur Coba Ulang Suite untuk mencoba lagi hanya kegagalan daripada seluruh rangkaian pengujian, yang sangat mengurangi waktu menjalankan ulang.
  • Kasus uji individu dieksekusi pada DUT. Kasus pengujian dapat berupa pengujian gaya gtest, pengujian kernel, atau pengujian gaya JUnit yang ditulis dalam Java.

Jenis tes

tes gaya gtest

Sebagian besar pengujian di VTS adalah pengujian gaya gtest yang memeriksa implementasi HAL. Tes ditulis dalam C++ dan berjalan di perangkat. Gtest VTS tipikal beralih melalui setiap instance dari antarmuka yang diberikan, dan menjalankan semua kasus uji terhadapnya. Lihat VtsHalHealthStorageV1_0TargetTest untuk contoh.

Tes kernel Linux

  • Kselftest ( external/linux-kselftest ) adalah kumpulan tes yang disertakan dalam repositori kernel Linux di tools/testing/selftests , 23 di antaranya disertakan dalam VTS untuk dijalankan di ARM.

  • Tes Linux Test Project ( external/ltp ) memvalidasi keandalan, ketahanan, dan stabilitas kernel Linux.

Tes gaya JUnit

Serangkaian kecil pengujian berbasis host di VTS adalah pengujian gaya JUnit, misalnya, KernelApiSysfsTest . Pengujian Java diimplementasikan sebagai BaseHostJUnit4Test , yang dikaitkan dengan perangkat pengujian dan dapat menjalankan perintah shell untuk melakukan validasi.

Tes Python3 mandiri

Beberapa tes VTS, seperti vts_treble_sys_prop_test ditulis dengan Python3. Pengujian berbasis Python diimplementasikan sebagai unittest.TestCase dan setiap kasus pengujian dapat berinteraksi dengan perangkat melalui perintah shell.