Tedarikçi test paketi (VTS) ve altyapı

Android Tedarikçi Test Paketi (VTS), aşağıdakiler hakkında kapsamlı testler sunar:

  • Çekirdek
  • Donanım soyutlama katmanı (HAL)

VTS, bir masaüstü makinede çalışır ve test durumlarını doğrudan bağlı cihazlarda ya da emülatörler üzerinde yürütür. CTS'ye benzer şekilde VTS de aşağıdaki önemli yazılım bileşenlerini kullanan otomatik bir test paketidir:

  • VTS Trade Federation test aracı, ana makinenizde çalışır ve test yürütmeyi yönetir. Test altındaki birden fazla cihazda (DUT'lar) bölümlendirmeyi yapılandırma olanağı sunar. Test paketlerinin tamamını değil, yalnızca başarısız olanları yeniden denemek için Paket Yeniden Deneme özelliğini de kullanabilirsiniz. Bu özellik, yeniden çalıştırma süresini büyük ölçüde azaltır.
  • Bağımsız test senaryoları DUT'ta yürütülür. Test senaryoları; GTest stili testler, çekirdek testleri veya Java'da yazılmış JUnit tarzı testler olabilir.

Test türleri

Çeşitli VTS testi türleri aşağıdaki bölümlerde açıklanmaktadır.

GTest tarzı testler

VTS'deki testlerin çoğu, HAL uygulamasını kontrol eden GTest tarzı testlerdir. Test, C++ dilinde yazılmıştır ve cihazda çalıştırılır. Tipik bir VTS GTest, belirli bir arayüzün her örneğini iteratif olarak tarar ve tüm test durumlarını bu arayüzde çalıştırır. Örnek için VtsHalHealthStorageV1_0TargetTest bölümüne bakın.

Linux çekirdek testleri

  • Kselftest (external/linux-kselftest), tools/testing/selftests adresindeki Linux çekirdek deposunda bulunan bir test koleksiyonudur. Bu koleksiyondaki 23 test, ARM'de çalışacak şekilde VTS'ye dahil edilmiştir.

  • Linux Test Projesi (external/ltp) testleri, Linux çekirdeğinin güvenilirliğini, sağlamlığını ve kararlılığını doğrular.

JUnit tarzı testler

VTS'deki küçük bir grup ana makine tarafından yönetilen test, JUnit tarzı testlerdir (ör. KernelApiSysfsTest). Java testleri, bir test cihazıyla ilişkilendirilmiş ve doğrulama yapmak için kabuk komutları çalıştırabilen BaseHostJUnit4Test olarak uygulanır.

Bağımsız Python3 testleri

vts_treble_sys_prop_test gibi bazı VTS testleri Python3 ile yazılmıştır. Python tabanlı testler unittest.TestCase olarak uygulanır ve her test senaryosu, kabuk komutları aracılığıyla cihazla etkileşim kurabilir.