Farklı ekran ve pencere boyutlarını test edin

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 uygulamaları genellikle bir emülatörde veya cihazda çalıştırırsınız. Ancak manuel testler zaman alır, hatalara açıktır ve çeşitli boyutlardaki ekranlarda ve cihazlarda çalışan uygulamalarda genellikle yönetilemez. Manuel test yapma 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 edilemeyebilir.

Farklı pencere ve ekran boyutlarındaki regresyonları tanımlamak için, uygulamanızın davranışının ve görünümünün farklı form faktörleri genelinde tutarlı olduğunu doğrulamak üzere otomatik testler uygulayın. Otomatik testler sorunları erkenden tespit ederek kullanıcı deneyimini etkileme riskini azaltır.

Neleri test edebilirsiniz?

Farklı ekran ve pencere boyutları için tasarlanmış kullanıcı arayüzleri geliştirirken, iki unsura özellikle dikkat edin:

  1. Bileşenlerin ve düzenlerin görsel özelliklerinin, farklı boyutlardaki pencerelerde nasıl farklılık gösterdiği
  2. 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ştirmemenizden bağımsız olarak, kullanıcı arayüzlerinin doğru şekilde gösterildiğini doğrulamanız gerekir. Kompakt, orta ve genişletilmiş genişlik ve yükseklik değerlerini dikkate alın. Önerilen ayrılma noktaları için Pencere boyutu sınıfları bölümüne bakın.

Şekil 1. Now In Android'deki farklı pencere boyutlarında "Sizin için" ekranı

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 testler yapmanız gerekir. Örneğin, bir telefondaki kenar boşluğunun düzeltilmesi, tablette düzen tutarsızlıklarına yol açabilir. Düzen ve bileşenlerinizin davranışını doğrulamak için kullanıcı arayüzü testleri veya düzenleri görsel olarak doğrulamak amacıyla ekran görüntüsü testleri yapın.

Eyalet yenileme

Tablet gibi cihazlarda çalışan uygulamalar, telefonlardaki uygulamalara göre çok daha sık döndürülür ve yeniden boyutlandırılır. Ayrıca katlanabilir cihazlar, yapılandırma değişikliklerini tetikleyebilen katlama ve açma gibi yeni görüntüleme özellikleri de sunar. Uygulamanızın bu yapılandırma değişiklikleri gerçekleştiğinde durumu geri yükleyebilmesi gerekir. Daha sonra, uygulamanızın durumu doğru şekilde geri yüklediğini onaylayan testler yazmanız gerekir.

Şekil 2. Katlanabilir cihaz katlanmış, düz açık, düz açık, yatay olacak şekilde döndürülmüş ve yarısı açılmış (masa üstünde).

Öncelikle, yapılandırma değişiklikleri olduğunda uygulamanızın kilitlenmediğinden emin olun. Uygulamanızdaki her kullanıcı arayüzünün 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 sürekliliği varsayımları nedeniyle bazı kilitlenmeler meydana gelir.

Yapılandırma değişikliklerini test etmenin birden fazla yolu vardır ancak çoğu durumda bunu iki şekilde test edebilirsiniz:

  • Etkinliği yeniden başlatmadan, Compose'da bir yapılandırma değişikliğinin verimli bir şekilde simülasyonunu yapmak için StateRestorationTester kullanın. Daha fazla bilgi için aşağıdaki bölümleri inceleyin.
  • Espresso veya Compose gibi herhangi bir kullanıcı arayüzü testinde Activity.recreate() yöntemini çağırarak bir yapılandırma değişikliği simülasyonu yapın.

Genellikle yapılandırma değişikliklerine yanıt olarak durum geri yüklemesini test etmek için farklı cihazlar kullanmanız gerekmez. Bunun nedeni, etkinliği yeniden oluşturan tüm yapılandırma değişikliklerinin benzer etkilere sahip olmasıdı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 cihaz üzerinde liste ayrıntıları kullanıcı arayüzünü görüntülerken cihazı katlayarak ön ekrana geçerse kullanıcı arayüzü genellikle ayrıntılar sayfasına geçer. Otomatik bir test, navigasyon durumu da dahil olmak üzere kullanıcı arayüzünün bu geri yükleme işlemini 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:

  • Herhangi bir cihazı kullanarak test sırasında 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 bir yapılandırma değişikliğini tetiklemediğinden bu test, katlanabilir cihazlarda belirli duruşları algılayan mantık için 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, katlanabilir cihazlar veya tabletler Espresso Cihazı ile kontrol edilerek yatay görünümde katlanmış durumdan düz olarak açılabilir. Ö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.
Şekil 3. Cihaz katlama ve açma.

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 alanı 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üm için Espresso kullanın. Jetpack Compose'un kendi test API'leri vardır. Kullanıcı arayüzü davranış testleri araçlı veya yerel olabilir. Enstrümanlı testler cihazlarda veya emülatörlerde gerçekleştirilirken yerel kullanıcı arayüzü testleri, JVM'deki Robolectric'te çalıştırılır.

    Bir uygulamada gezinme işlevinin doğru olduğunu doğrulamak 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 bölümüne 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 veya cihazlarda ekran görüntüsü testleri çalıştırabilirsiniz. Kullanabileceğiniz 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 ihtiyaç duyabilirsiniz. Ancak birim testleri bu alanda daha azdı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.