Android Vendor Test Suite (VTS), aşağıdakilerle ilgili 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 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 Ticaret Federasyonu test düzeneği, ana makinenizde çalışır ve test yürütmeyi yönetir. Bu araç, test edilen birden fazla cihazda (DUT) parçalama yapılandırma olanağı sunar. Ayrıca, yalnızca hataları yeniden denemek için Suite Retry (Paket Yeniden Deneme) özelliğini de kullanabilirsiniz. Bu özellik, tüm test paketlerini yeniden denemek yerine yalnızca hataları yeniden denediği için yeniden çalıştırma süresini büyük ölçüde azaltır.
- Ayrı test senaryoları DUT üzerinde yürütülür. Test durumları; GTest tarzı testler, çekirdek testleri veya Java ile yazılmış JUnit tarzı testler olabilir.
Test türleri
Çeşitli VTS testleri 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ılır ve cihazda çalışır. Tipik bir VTS GTest, belirli bir arayüzün her örneğini yineler ve tüm test senaryolarını bu arayüze karşı çalıştırır. Örnek için VtsHalHealthStorageV1_0TargetTest
bölümüne bakın.
Linux çekirdek testleri
Kselftest (external/linux-kselftest), Linux çekirdeği deposunda (
tools/testing/selftests
) bulunan bir test koleksiyonudur. Bu testlerden 23'ü ARM'de çalışmak üzere VTS'ye dahil edilmiştir.Linux Test Projesi (external/ltp): Linux çekirdeğinin güvenilirliğini, sağlamlığını ve kararlılığını doğrulamak için testler yapılır.
JUnit tarzı testler
VTS'deki küçük bir grup ana makine odaklı test, JUnit tarzı testlerdir. Örneğin,
KernelApiSysfsTest
.
Java testleri, BaseHostJUnit4Test
olarak uygulanır. Bu, bir test cihazıyla ilişkilendirilir ve doğrulama yapmak için kabuk komutlarını çalıştırabilir.
Bağımsız Python3 testleri
vts_treble_sys_prop_test
gibi bazı VTS testleri
Python3 ile yazılır. Python tabanlı testler unittest.TestCase
olarak uygulanır ve her test durumu, kabuk komutları aracılığıyla cihazla etkileşimde bulunabilir.