Test yapmak, uygulama geliştirme sürecinin ayrılmaz bir parçasıdır. Kodunuzun beklendiği gibi çalıştığını manuel olarak doğrulamak için genellikle uygulamaları bir emülatörde veya cihazda çalıştırırsınız. Bununla birlikte, manuel test yapmak zaman alır, hatalara açıktır ve farklı boyutlardaki ekranlar ile cihazlarda çalışan uygulamalar için genellikle yönetilemez. Manuel test sorunları genellikle geliştirme için tek bir cihaz kullanılmasından kaynaklanır. Sonuç olarak, hatalar farklı form faktörlerine sahip diğer cihazlarda fark edilmeyebilir.
Farklı pencere ve ekran boyutlarındaki regresyonları tespit etmek için otomatik testler uygulayarak uygulamanızın davranışının ve görünümünün farklı form faktörlerinde tutarlı olduğunu doğrulayın. Otomatik testler sorunları erkenden tespit ederek kullanıcı deneyimini etkileyen sorun riskini azaltır.
Neleri test edebilirsiniz?
Farklı ekran ve pencere boyutları için oluşturulmuş kullanıcı arayüzleri geliştirirken iki unsura özellikle dikkat edin:
- Farklı boyutlardaki pencerelerde bileşenlerin ve düzenlerin görsel özelliklerinin nasıl farklı olduğunu
- Yapılandırma değişikliklerinde durum nasıl korunur?
Görsel özellikler
Kullanıcı arayüzlerini farklı pencere boyutları için özelleştirip özelleştirmeseniz de, kullanıcı arayüzlerinin doğru şekilde gösterildiğini doğrulamanız gerekir. Kompakt, orta ve genişletilmiş genişlikleri ve yükseklikleri dikkate alın. Önerilen ayrılma noktaları için Pencere boyutu sınıfları bölümüne bakın.
Ayrıca, uygulamanız, boyut kısıtlamaları genişletildiğinde tasarım sisteminizdeki bazı bileşenleri beklendiği gibi oluşturmayabilir.
Uygulamanızda farklı pencere boyutları için uyarlanabilir düzenler varsa regresyonları önlemek için otomatik testleriniz olmalıdır. Örneğin, telefonda kenar boşluğunu düzeltmek, tablette düzen tutarsızlıklarına neden olabilir. Düzenlerinizin ve bileşenlerinizin davranışını doğrulamak için kullanıcı arayüzü testleri veya düzenleri görsel olarak doğrulamak için ekran görüntüsü testleri oluşturun.
Eyalet restorasyonu
Tablet gibi cihazlarda çalışan uygulamalar, telefonlardaki uygulamalara göre çok daha sık bir şekilde döndürülüp yeniden boyutlandırılır. Ayrıca katlanabilir cihazlar, yapılandırma değişikliklerini tetikleyebilen katlama ve açma gibi yeni ekran özellikleri sunar. Bu yapılandırma değişiklikleri gerçekleştiğinde uygulamanızın, durumu geri yükleyebilmesi gerekir. Daha sonra, uygulamanızın durumu doğru şekilde geri yüklediğini onaylayan testler yazmanız gerekir.
Öncelikle, yapılandırma değişiklikleri gerçekleştiğinde uygulamanızın kilitlenmediğinden emin olun. Uygulamanızdaki her kullanıcı arayüzünün tüm döndürme, yeniden boyutlandırma veya katlama kombinasyonlarını işleyebildiğinden emin olun. Yapılandırma değişiklikleri, etkinliği varsayılan olarak yeniden oluşturduğundan, etkinlik kalıcılığı varsayımları sonucunda bazı kilitlenmeler meydana gelir.
Yapılandırma değişikliklerini test etmenin birden çok yolu vardır ancak çoğu durumda test etmenin iki yolu vardır:
- Compose'da
StateRestorationTester
kullanarak etkinliği yeniden başlatmadan yapılandırma değişikliğini etkili bir şekilde simüle edin. Daha fazla bilgi için aşağıdaki bölümlere bakın. - Espresso veya Compose gibi herhangi bir kullanıcı arayüzü testinde,
Activity.recreate()
yöntemini çağırarak bir yapılandırma değişikliğini simüle edin.
Genellikle yapılandırma değişikliklerine yanıt olarak durum geri yüklemeyi test etmek için farklı cihazlar kullanmanız gerekmez. Çünkü etkinliği yeniden oluşturan tüm yapılandırma değişikliklerinin benzer sonuçları vardır. Ancak, bazı yapılandırma değişiklikleri, belirli cihazlarda farklı durum geri yükleme mekanizmalarını tetikleyebilir.
Örneğin, bir kullanıcı açık bir katlanabilir cihazda list-detail kullanıcı arayüzünü görüntülerken cihazı ön ekrana geçmek için katlandığında, kullanıcı arayüzü genellikle ayrıntı sayfasına geçiş yapar. Otomatik test, gezinme durumu da dahil olmak üzere kullanıcı arayüzü durumunun bu geri yüklenmesini kapsamalıdır.
Bir ekrandan diğerine geçen veya çoklu pencere moduna giren cihazlarda gerçekleşen yapılandırma değişikliklerini test etmek için birden fazla seçeneğiniz vardır:
- Test sırasında herhangi bir cihazı kullanarak ekranı yeniden boyutlandırın. Çoğu durumda bu, doğrulamanız gereken tüm durum geri yükleme mekanizmalarını tetikler. Ancak duruş değişiklikleri yapılandırma değişikliğini tetiklemediğinden bu test, katlanabilir cihazlarda belirli duruşları tespit eden mantıkta işe yaramaz.
- Test etmek istediğiniz özellikleri destekleyen bir cihaz veya emülatör kullanarak ilgili yapılandırma değişikliklerini tetikleyin. Örneğin, bir katlanabilir cihazın veya tabletin katlanmış durumdayken yatay olarak düz bir konuma geçilmesi için Espresso cihazı kullanılarak kontrol edilebilir. Örnekler için Farklı ekran boyutlarını test etmek için kitaplıklar ve araçlar başlıklı makalenin Espresso Cihazı bölümüne bakın.
Farklı ekran ve pencere boyutları için test türleri
Testin farklı form faktörlerinde doğru şekilde çalıştığını doğrulamak amacıyla her kullanım durumu için uygun test türünü kullanın:
Kullanıcı arayüzü davranış testleri, uygulama kullanıcı arayüzünün bir bölümünü (ör. bir etkinliğin görüntülenmesi) başlatır. Testler, belirli öğelerin var olduğunu veya belirli özelliklere sahip olduğunu doğrular . Testler isteğe bağlı olarak simüle edilmiş kullanıcı işlemleri gerçekleştirebilir. Görünümler için Espresso'yu kullanın. Jetpack Compose'un kendi test API'leri vardır. Kullanıcı arayüzü davranış testleri araçlı veya yerel olabilir. Araçlı testler cihazlarda veya emülatörlerde çalışırken yerel kullanıcı arayüzü testleri JVM üzerinde Robolectric'te çalıştırılır.
Bir uygulamada gezinme işlevinin doğru olduğunu onaylamak için kullanıcı arayüzü davranış testlerini kullanın. Testler, tıklama ve kaydırma gibi işlemleri gerçekleştirir. Kullanıcı arayüzü davranış testleri, belirli öğelerin veya özelliklerin varlığını da kontrol eder. Daha fazla bilgi için Kullanıcı arayüzü testlerini otomatikleştirme konusuna bakın.
Ekran görüntüsü testleri, bir kullanıcı arayüzünün veya bileşenin ekran görüntüsünü alır ve resmi daha önce onaylanmış bir ekran görüntüsüyle karşılaştırır. Tek bir ekran görüntüsü çok sayıda öğeyi ve görsel özelliklerini kapsayabileceğinden bu yöntem, regresyonlara karşı koruma sağlamanın çok etkili bir yoludur. JVM'de veya cihazlarda ekran görüntüsü testleri çalıştırabilirsiniz. Birden fazla ekran görüntüsü test çerçevesi vardır.
Son olarak, cihaz türüne veya pencere boyutuna bağlı olarak farklı davranan mantık birimlerinin işlevselliğini test etmek için birim testlerine ihtiyacınız olabilir ancak birim testleri bu alanda daha az yaygındır.
Sonraki adımlar
Bu belgede yer alan denetimlerin nasıl uygulanacağı hakkında daha fazla bilgi için Kitaplıklar ve araçlar bölümüne bakın.