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 menjalankan kasus pengujian 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 pengujian. Ia menawarkan kemampuan untuk Mengonfigurasi Sharding di beberapa perangkat yang sedang diuji (DUT). Anda juga dapat menggunakan fitur Coba Ulang Suite untuk mencoba ulang kegagalan saja, bukan seluruh rangkaian pengujian, sehingga 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

Kebanyakan tes di VTS adalah tes gaya gtest yang memeriksa implementasi HAL. Tes ini ditulis dalam C++ dan dijalankan pada perangkat. Gtest VTS tipikal melakukan iterasi melalui setiap instance antarmuka tertentu, dan menjalankan semua kasus pengujian terhadapnya. Lihat VtsHalHealthStorageV1_0TargetTest untuk contohnya.

Tes kernel Linux

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

  • Tes Proyek Uji Linux ( eksternal/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.