Örnek sorular
Mq Permissions Lifecycle System InteractionsZorluk 3
Bir uygulama ilk kez kamera erişimi gibi bir izin istediğinde çıkan Android çalışma-zamanı izin diyaloğundaki butona Espresso neden doğrudan dokunamaz?
- aDiyalog, test edilen uygulamanın kendi sürecinin dışındaki bir sistem süreci tarafından render edilir✓
- bEspresso hiçbir butona dokunma jesti simüle edemez, yalnızca metin girişi yapabilir
- cEspresso testleri uygulama zorla durdurulmuş halde çalışmalıdır, bu yüzden hiçbir diyalog görünmez
- dEspresso'nun herhangi bir diyaloğa tıklayabilmesi için cihazın root'lu olması gerekir
Açıklama:İzin diyaloğu sistem UI sürecine aittir (test edilen uygulamanın süreci değil); Espresso'nun senkronizasyon modeli yalnızca instrument edilen uygulamanın kendi sürecine erişir, bu yüzden diyaloğu göremez.
Mq Permissions Lifecycle System InteractionsZorluk 3
UI Automator'ın (ve benzer şekilde XCUITest'in), Espresso'nun aksine Android çalışma-zamanı izin diyaloğuyla etkileşebilmesini sağlayan yetenek nedir?
- aİzin diyaloğunu test edilen uygulamayla aynı süreç içinde çalıştırır
- bTest çalıştığı süre boyunca izin sistemini tamamen devre dışı bırakır
- cSüreç sınırlarını aşarak UI elemanlarını inceleyip onlarla etkileşebilir✓
- dSistem diyaloğunu test framework'ünün enjekte ettiği sahte bir diyalogla değiştirir
Açıklama:UI Automator herhangi bir uygulamanın sürecine bağlı kalmadan çalışır ve cihazın tüm UI hiyerarşisini, izin diyaloğu gibi sistem sahipli pencereler dahil, gezebilir; Appium'un UiAutomator2 sürücüsünün bu diyalogları kapatabilmesinin nedeni budur.
Mq Permissions Lifecycle System InteractionsZorluk 1
adb shell pm grant <package> <permission> komutu ne yapar?
- aBelirtilen izni cihazda yeni bir sistem-seviyesi izin olarak kurar
- bUygulamanın izin ayarları ekranını test yapan kişinin manuel onaylaması için açar
- cBelirtilen çalışma-zamanı iznini belirtilen uygulamaya doğrudan verir✓
- dBelirtilen uygulamanın şu an sahip olduğu tüm izinleri listeler
Açıklama:pm grant, paket yöneticisi üzerinden doğrudan bir paketin çalışma-zamanı iznini granted durumuna getirir; testler bu yüzden diyalog UI'ını hiç sürmeden izin durumunu önceden ayarlamak için bunu kullanır.
Mq Permissions Lifecycle System InteractionsZorluk 2
Bir Android Appium oturumunda appium:autoGrantPermissions capability'si ne yapar?
- aTest çalışırken ortaya çıkan her izin diyaloğunda otomatik olarak 'İzin Ver'e tıklar
- bUygulama açılmadan önce, manifest'te tehlikeli olarak bildirilen izinleri önceden verir✓
- cUygulamanın manifest'te bildirdiği izinleri devre dışı bırakarak hiçbir diyaloğun çıkmamasını sağlar
- dAppium oturumuna root erişimi vererek tüm izin kontrollerinin atlanmasını sağlar
Açıklama:autoGrantPermissions, uygulama açılmadan önce manifest'te bildirilen tehlikeli izinleri önceden verir (her biri için pm grant çalıştırmaya benzer); test sırasında çıkan bir diyaloğa tıklayarak çalışmaz.
Mq Permissions Lifecycle System InteractionsZorluk 1
iOS'ta xcrun simctl privacy grant <device> camera <bundle-id> komutu ne yapar?
- aBelirtilen uygulamanın kamera gizlilik yetkisini granted durumuna getirir✓
- bBelirtilen uygulamanın kullanması için simulator'a sanal bir kamera cihazı kurar
- cBir video klip kaydedip belirtilen uygulamanın kamera girdisine besler
- dBelirtilen uygulamanın şimdiye kadar istediği gizlilik izinlerini listeler
Açıklama:simctl privacy grant, belirtilen bir simulator üzerinde bir uygulama için ilgili gizlilik servisinin yetki durumunu doğrudan ayarlar; bu, Android'de pm grant'in yaptığı izin durumu ön-ayarlamanın iOS tarafındaki karşılığıdır.
Mq Permissions Lifecycle System InteractionsZorluk 2
Bir XCUITest'te, izin isteği gibi bir sistem uyarısını tetikleyebilecek bir eylemi gerçekleştirmeden önce addUIInterruptionMonitor handler'ı kaydetmenin amacı nedir?
- aTestin geri kalanında hiçbir sistem uyarısının hiç gösterilmemesini sağlar
- bTest sırasında testi kesen bir sistem uyarısına testin yanıt verip onu kapatmasını sağlar✓
- cSonradan manuel incelemek için her sistem uyarısının ekran görüntüsünü kaydeder
- dTest edilen uygulamayı, sistem uyarısı gösterecek kod yolunu atlamaya zorlar
Açıklama:addUIInterruptionMonitor, bir sistem uyarısı (izin isteği gibi) testi beklenmedik şekilde kestiğinde XCTest'in danışacağı bir handler kaydeder; handler uyarıyla etkileşip onu kapatır, böylece asıl test adımları devam edebilir.