Vendor Test Suite (VTS) dan infrastruktur

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

  • Inti
  • Lapisan abstraksi perangkat keras (HAL)

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

  • Test harness VTS Trade Federation berjalan di mesin host Anda dan mengelola eksekusi tes. Ini menawarkan kemampuan untuk Mengonfigurasi Sharding di beberapa perangkat yang sedang diuji (DUT). Anda juga dapat menggunakan fitur Coba Ulang Suite untuk mencoba ulang hanya kegagalan daripada keseluruhan rangkaian pengujian, yang sangat mengurangi waktu pengoperasian ulang.
  • Kasus uji individual dijalankan 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 tes di VTS adalah tes gaya gtest yang memeriksa implementasi HAL. Tes ini ditulis dalam C++ dan berjalan di perangkat. Sebuah VTS gtest tipikal melakukan iterasi melalui setiap instance dari antarmuka yang diberikan, dan menjalankan semua test case terhadapnya. Lihat VtsHalHealthStorageV1_0TargetTest sebagai contoh.

Tes kernel Linux

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

  • Proyek Uji Linux ( external/ltp ) menguji 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 diasosiasikan 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. Tes berbasis Python diimplementasikan sebagai unittest.TestCase dan setiap test case dapat berinteraksi dengan perangkat melalui perintah shell.