Test yapmak, uygulama geliştirme sürecinin ayrılmaz bir parçasıdır. Kodunuzun beklendiği gibi çalıştığından emin olmak için genellikle uygulamaları bir emülatörde veya cihazda manuel olarak çalıştırırsınız. Ancak manuel test, zaman alıcı, hataya açık ve genellikle çeşitli boyutlarda ekranlarda ve cihazlarda çalışan uygulamalar için yönetilemez. Manuel testle ilgili sorunlar genellikle geliştirme için tek bir cihaz kullanılmasından kaynaklanır. Sonuç olarak, farklı form faktörlerine sahip diğer cihazlarda hatalar fark edilmeyebilir.
Farklı pencere ve ekran boyutlarındaki gerileme noktalarını belirlemek için uygulamanızın davranışının ve görünümünün farklı form faktörlerinde tutarlı olduğunu doğrulamak üzere otomatik testler uygulayın. Otomatik testler, sorunları erkenden tespit ederek kullanıcı deneyimini etkileyen sorunların 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:
- Bileşenlerin ve düzenlerin görsel özelliklerinin farklı boyutlardaki pencerelerde nasıl farklılaştığı
- Yapılandırma değişikliklerinde durum nasıl korunur?
Görsel özellikler
Kullanıcı arayüzlerini farklı pencere boyutlarına göre özelleştirseniz de özelleştirmeseniz de kullanıcı arayüzlerinin doğru şekilde gösterildiğini doğrulamanız gerekir. Kompakt, orta ve geniş genişlik ve yükseklikleri göz önünde bulundurun. Önerilen kesme noktaları için Pencere boyutu sınıfları başlıklı makaleyi inceleyin.
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 gerilemelerin önüne geçmek 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üzenlemelerinizin ve bileşenlerinizin davranışını doğrulamak için kullanıcı arayüzü testleri oluşturun veya düzenlemeleri görsel olarak doğrulamak için ekran görüntüsü testleri oluşturun.
Durumu geri yükleme
Tablet gibi cihazlarda çalışan uygulamalar, telefonlardaki uygulamalara kıyasla ç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 ekran özellikleri sunar. Bu yapılandırma değişiklikleri gerçekleştiğinde uygulamanızın durumu geri yükleyebilmesi gerekir. Ayrıca, uygulamanızın durumunu doğru şekilde geri yüklediğini doğrulayan testler de yazmanız gerekir.
Öncelikle, yapılandırma değişiklikleri yapıldığında uygulamanızın kilitlenmediğinden emin olun. Uygulamanızdaki her kullanıcı arayüzünün döndürme, yeniden boyutlandırma veya katlama işlemlerinin tüm kombinasyonlarını işleyebildiğinden emin olun. Yapılandırma değişiklikleri etkinliği varsayılan olarak yeniden oluşturduğundan, bazı kilitlenmeler etkinlik devamlılığı varsayımlarından kaynaklanır.
Yapılandırma değişikliklerini test etmenin birden çok yolu vardır ancak çoğu durumda test etmenin iki yolu vardır:
- Oluşturma bölümünde, etkinliği yeniden başlatmadan yapılandırma değişikliğini verimli bir şekilde simüle etmek için
StateRestorationTester
simgesini kullanın. 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.
Yapılandırma değişikliklerine yanıt olarak durum geri yüklemeyi test etmek için genellikle farklı cihazlar kullanmanız gerekmez. Bunun nedeni, etkinliği yeniden oluşturan tüm yapılandırma değişikliklerinin benzer sonuçlara yol açmasıdır. Ancak bazı yapılandırma değişiklikleri, belirli cihazlarda farklı durum geri yükleme mekanizmalarını tetikleyebilir.
Örneğin, kullanıcı açık bir katlanabilir cihazda liste-ayrıntı kullanıcı arayüzünü görüntülerken cihazı ön ekrana geçmek için katladığında kullanıcı arayüzü genellikle ayrıntılar sayfasına geçer. Otomatik test, gezinme durumu da dahil olmak üzere kullanıcı arayüzü durumunun bu şekilde geri yüklenmesini kapsamalıdır.
Bir ekrandan diğerine geçen veya çoklu pencere moduna giren cihazlarda yapılan 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 işlem, 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ği için bu test, katlanabilir cihazlarda belirli duruşları algılayan mantık için çalışmaz.
- 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 Device kullanılarak katlanmış durumdan yatay olarak açık konuma getirilebilir. Ö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 için 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ümler için Espresso'yu kullanın. Jetpack Compose'un kendi test API'leri vardır. Kullanıcı arayüzü davranışı testleri araçlandırılmış veya yerel olabilir. Enstrümante testler cihazlarda veya emülatörlerde, yerel kullanıcı arayüzü testleri ise JVM'de Robolectric'te çalışır.
Bir uygulamanın gezinme özelliğinin doğru uygulandığını 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 başlıklı makaleyi inceleyin.
Ekran görüntüsü testleri, 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, gerilemelere karşı korumanın çok etkili bir yoludur. Ekran görüntüsü testlerini JVM'de veya cihazlarda çalıştırabilirsiniz. Birden fazla ekran görüntüsü testi çerçevesi mevcuttur. Daha fazla bilgi için ekran görüntüsü testlerine bakın.
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 dokümanda yer alan kontrollerin nasıl uygulanacağı hakkında daha fazla bilgi için Kitaplıklar ve araçlar başlıklı makaleyi inceleyin.