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 tasarlanmış kullanıcı arayüzleri geliştirirken iki konuya özellikle dikkat edin:
- Bileşenlerin ve düzenlerin görsel özelliklerinin farklı boyutlardaki pencerelerde nasıl farklılaştığı
- Yapılandırma değişiklikleri sırasında durum nasıl korunur?
Görsel özellikler
Kullanıcı arayüzlerini farklı pencere boyutları için özelleştirip özelleştirmediğinize bakılmaksızın, kullanıcı arayüzlerinin doğru şekilde görüntülendiğinden emin olmanız gerekir. Kompakt, orta ve genişletilmiş 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, boyut kısıtlamaları aşıldığında uygulamanız tasarım sisteminizde 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 bir 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üzenleri 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, katlama ve açma gibi yeni ekran özellikleri sunar. Bu özellikler yapılandırma değişikliklerini tetikleyebilir. 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()
çağrısını yaparak 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:
- Herhangi bir cihazı kullanarak test sırasında ekranı yeniden boyutlandırabilirsiniz. Ç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ü testleri başlıklı makaleyi inceleyin.
Son olarak, cihaz türüne veya pencere boyutuna bağlı olarak farklı davranan mantık birimlerinin işlevini 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.