Android Tedarikçi Test Paketi (VTS), aşağıdakiler hakkında kapsamlı testler sunar:
- Patlayan mısır
- Donanım soyutlama katmanı (HAL)
VTS, masaüstü bir makinede çalışır ve test durumlarını doğrudan bağlı cihazlarda veya emülatörlerde 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 aparatı, 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 tarzı testler, çekirdek testleri veya Java'da yazılmış JUnit tarzı testler olabilir.
Test türleri
Çeşitli VTS test türleri aşağıdaki bölümlerde açıklanmıştır.
GTest tarzı testler
VTS'deki çoğu test, HAL uygulamasını kontrol eden GTest tarzı testlerdir. Test C++ ile yazılmıştır ve cihazda çalışı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ıştırılmak üzere 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 testler 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.