Android Otomasyon Çerçevesi ile Uygulama Testi Eğitimi
⚡ Akıllı Özet
Android Uygulama testleri, birim, entegrasyon, operasyonel ve sistem kontrollerini, cihaz üzerinde veya doğrudan JVM üzerinde çalışan otomasyon çerçeveleriyle birleştirerek, parçalı bir cihaz ortamında bir derlemenin doğruluğunu teyit eder.
Neden Şimdi Android Test yapmak?
Android dünyanın en büyük işletim sistemidir. Aynı zamanda, Android Parçalanmış durumda: çok sayıda cihaz var ve Android Uygulamanızın uyumlu olması gereken sürümler.
Tasarım ve uygulama aşamasına ne kadar zaman ayırırsanız ayırın, hatalar kaçınılmazdır ve yazılım hataları ortaya çıkacaktır.
Android Test Stratejisi
bir doğru Android Test stratejisi aşağıdakileri içermelidir.
- Birim Testi
- Entegrasyon testi
- OperaUlusal Test
- sistem Testi
Birim testleri
Birim testleri, bir metot veya sınıf gibi kaynak kodun atomik bir birimini doğrulamak için tasarlanmış program kümeleridir.
MKS Android Platform, önceden entegre edilmiş olarak gelir. JUnit 3.0 çerçevesi. Otomasyon için kullanılan açık kaynaklı bir çerçevedir. Birim TestiBu sayede geliştiriciler etkili birim test programları yazabiliyorlar.
Birim testlerine ek olarak, kullanıcı arayüzü (UI) testleri de yapılır. Bu testler, hedef uygulamanızın UI bileşenlerini kapsar ve cihazda bir dizi kullanıcı eylemi için doğru çıktıyı verdiğinden emin olmayı sağlar.
Bir cihazda kullanıcı arayüzü testleri gerçekleştirmenin yaygın yolu şöyledir: Android Aletler. Ancak bunun performans sorunları var. Kullanıcı arayüzü testi yapmak için en iyi araçlardan biri Android is Robotium.
⚠️ Sürüm notu: JUnit 3 sınıf, örneğin EnstrümantasyonTestCase API 24'te kullanımdan kaldırıldı; mevcut projeler şunları kullanıyor: AndroidX Testi, Espresso ve UI Automator. Robotium 2016'dan beri yeni bir sürümü yayınlanmadı.
Entegrasyon testleri
In Entegrasyon TestiTüm birim testinden geçirilmiş modüller bir araya getirilerek doğrulanır. Android Bu genellikle Servis, Aktivite ve İçerik Sağlayıcı testleri gibi bileşenlerle entegrasyonun kontrol edilmesi anlamına gelir.
Birçok test çerçevesi, entegrasyon testlerini gerçekleştirmek için kullanılır. AndroidTroyd, Robolectric ve benzeri Robotium.
Operaulusal testler
OperaFonksiyonel testler veya kabul testleri olarak da adlandırılan geleneksel testler, uygulamanın eksiksizliğini ve doğruluğunu kontrol eden üst düzey testlerdir.
In Android, Fitness Hedef uygulamaya karşı operasyonel testlerin kolayca çalıştırılmasını sağlayan açık kaynaklı bir çerçevedir.
Sistem testleri
In Sistem Testi sistem bir bütün olarak test edilir ve bileşenler, yazılım ve donanım arasındaki etkileşim kontrol edilir.
In Android, Sistem Testi normalde şunları içerir:
- GUI testleri
- Kullanılabilirlik testleri
- Performans testleri
- Stres testleri
Yukarıdaki listede, Performans testi daha fazla odaklanılıyor. Gibi araçları kullanabilirsiniz Tracgözden geçirmek performans testleri yapmak için AndroidBu araç, uygulamanızda hata ayıklamanıza ve performans profilini çıkarmanıza yardımcı olabilir. Traceview artık kullanımdan kaldırılmış ve yerine yenisi kullanılmıştır. CPU Profilcisi.
Otomatik Android Test yapmak
As Android Yapısı parçalı, birçok cihazda test yapılması gerekiyor ve bu da maliyetli. Otomatikleştirilmiş Android Testler bu maliyetleri düşürmeye yardımcı olur.
Otomatikleştirmenin faydaları Android test yapmak
- Test senaryolarının yürütülmesi için gereken süreyi azaltın
- Geliştirme sürecinizin verimliliğini artırın
- Erken hata tespiti, yazılım bakımında maliyetten tasarruf edin
- Uygulamadaki hataları hızla bulup düzeltin
- Yazılımın kalitesini garanti edin
Aşağıdaki 2 çerçeveyi inceleyeceğiz
- Android Test çerçevesi
- Roboelektrik Test çerçevesi
Android test çerçevesi
Standart test çerçevelerinden biri Android uygulamalar Android Test çerçevesiyle iyi bir şekilde entegre edilmiştir. Android SDK araçları ve mimarisi üç bölümden oluşmaktadır.
- Uygulama paketi, test edilmesi gereken hedef uygulamanızdır.
- InstrumentationTestRunner şudur: Test Durumu Hedef uygulamada test senaryolarını yürüten çalıştırıcı. Şunları içerir:
- Test araçları: Testler oluşturmak için kullanılan SDK araçları. Bunlar IDE'ye entegre edilmiştir veya komut satırından çalıştırılabilir.
- Maymun Koşucusu: Bir sistemi kontrol eden programlar yazmak için API'ler sağlayan bir araç. Android dışında cihaz veya emülatör Android kodu.
- Test paketi, test projeleri halinde düzenlenir ve bir adlandırma kuralına uyar. Test edilen uygulamanın paket adı “com.mydomain.myapp” ise, Test paketi “com.mydomain.myapp.test” olmalıdır. Test paketi 2 nesne içerir:
- Test senaryosu sınıfları: Hedef uygulamada çalıştırılacak test yöntemlerini ekleyin.
- Sahte nesneler: Test senaryoları için örnek girdi olarak kullanılacak sahte verileri ekleyin.
Android Test Senaryosu Sınıfları
- TestCase şunları içerir: JUnit çalıştırma yöntemleri JUnit test
- TestSuite, bir dizi test senaryosunu çalıştırmak için kullanılır.
- InstrumentationTestSuite, test senaryolarını çalıştırmadan önce bunlara izleme araçları ekleyen bir test paketidir.
- InstrumentationTestRunner, hedef uygulama üzerinde test senaryolarını çalıştırır.
- AndroidTestCase genişletir JUnit Etkinlik Bağlamı gibi kaynaklara erişim yöntemleri içeren TestCase.
- ApplicationTestCase, uygulama sınıflarını kontrollü bir ortamda doğrular.
- InstrumentationTestCase, örneğin uygulamanın kullanıcı arayüzü çıktısı gibi belirli bir özelliği veya davranışı doğrular.
- ActivityTestCase, Uygulama Etkinliklerinin test edilmesini destekleyen temel sınıftır.
- ProviderTestCase, tek bir ContentProvider'ı test etmek için kullanılan bir sınıftır.
- ServiceTestCase, test ortamında Service sınıflarını test eder ve Service yaşam döngüsünü destekler.
- SingleLaunchActivityTestCase, InstrumentationTestCase ile tek bir Etkinliği test etmek için kullanılır.
- EtkinlikBirimTestDurum Tek bir izole aktiviteyi test etmek için kullanılır.
- AktiviteEnstrümantasyonTestVakası2 uzatır JUnit TestCase sınıfı, sizi hedef uygulamaya enstrümantasyon ile bağlar, böylece GUI bileşenlerine erişebilir ve tuş vuruşları veya dokunmalar gibi kullanıcı arayüzü olayları gönderebilirsiniz.
Aşağıda ActivityInstrumentationTestCase'in bir örneği verilmiştir. Bu örnek, bir Hesap Makinesi uygulamasının kullanıcı arayüzü (UI) çalışmasını doğrular ve UI çıktılarının doğruluğunu kontrol eder.
Roboelektrik test çerçevesi
Test etme işlemi şu şekilde gerçekleştirilir: Android Bir cihaz veya emülatör ile test çerçevesi oluşturmak zordur. Testlerin derlenmesi ve çalıştırılması yavaş ve çok fazla geliştirme çabası gerektirir. Bu sorunu çözmek için başka bir seçenek daha var: Robolectric test çerçevesi.
Robolectric, koşmanıza olanak tanır. Android Cihaz veya emülatöre ihtiyaç duymadan doğrudan JVM üzerinde testler yapın.
Roboelektrik Test Senaryosu Sınıfları
Robolectric aşağıdaki eylemleri gerçekleştirebilir:
- Kayıt olun ve bir Shadow sınıfı oluşturun
- Yüklemeyi durdur Android sınıf
- Kullanımlar JavaMetot gövdelerini geçersiz kılmaya yardımcı olur. Android sınıf
- Gölge nesnesini şuraya bağla Android sınıf
Bu, test edilen kodun herhangi bir müdahale olmadan çalışmasına olanak tanır. Android ortamı.
Diğer test çerçeveleri
Yukarıda bahsedilen test çerçevelerinin yanı sıra, aşağıdakiler gibi daha birçok seçenek mevcuttur:
- Android Junit Raporuiçin özel bir enstrümantasyon test çalıştırıcısı Android diğer araçlarla entegrasyon için XML raporları oluşturan.
- Espresso
- Appium
Mitler Android Test yapmak
Birçok işletme gelişiyor Android Test yapmak Yaygın yanılgılara dayanan stratejiler. Bu bölümde birkaç popüler mit ve gerçeklik incelenmektedir. Android test.
1. Mit: Hepsi Android Cihazlar aynı olduğundan, emülatörlerde test etmek yeterlidir.
Bir uygulama emülatörlerde mükemmel çalışabilir, ancak bazı gerçek cihazlarda çalıştırılırken çökebilir.
Emülatörler mobil testleriniz için yeterli değildir. Uygulamanızı gerçek cihazlarda test etmelisiniz.
2. Mit: Bazı yaygın cihazlarda test yapmak yeterlidir.
Uygulamanız, donanım, ekran boyutları ve bellek farklılıkları nedeniyle cihazlar arasında farklı görünebilir. Çeşitli cihazlarda, işletim sistemi sürümlerinde, operatör ağlarında ve konumlarda test edin.
3. Mit: Lansmandan hemen önce yapılan keşif testleri yeterlidir.
- Çoğu test işleminde önce test senaryoları tasarlanır, sonra uygulanır; keşifsel testlerde ise tasarım ve uygulama birlikte gerçekleşir.
- Ortada bir plan veya hazırlık yok, bu yüzden test uzmanı istediği testleri çalıştırıyor. Bazı fonksiyonlar tekrar tekrar test edilirken, diğerleri asla test edilmiyor.
4. Mit: Uygulamada bazı hatalar varsa, kullanıcılar bunu anlayacaktır.
- Uygulama çalışmıyorsa ve hatalar içeriyorsa, kullanıcılar uygulamanızı kaldırır.
- Kalite sorunları, olumsuz yorumların ilk nedenidir. Google Oyun oynamak, itibarınıza zarar verir ve müşterilerinizin güvenini kaybetmenize neden olur.
Bu nedenle, düzgün bir yapıya sahip olmak şarttır. Android Test stratejisi yürürlükte.
En iyi uygulamalar Android Test yapmak
- Uygulama geliştiricileri, kodu yazarken aynı zamanda test senaryolarını da oluşturmalıdır.
- Tüm test senaryoları, kaynak kodla birlikte sürüm kontrol sisteminde saklanmalıdır.
- Sürekli entegrasyonu kullanın ve kod her değiştirildiğinde testler çalıştırın
- Yalnızca emülatörlere ve rootlu cihazlara güvenmekten kaçının; sonuçları gerçek donanım üzerinde, bir denetleyici programı kullanarak doğrulayın. uiautatorviewer





