Android Otomasyon Çerçevesi ile APP Test Eğitimi

Neden Şimdi Android Test yapmak?

Android dünyanın en büyük işletim sistemidir. Aynı zamanda, Android parçalanmıştır. tonlarca cihaz var ve Android Uygulamanızın uyumlu olması gereken sürümler.

Android Test yapmak

Tasarım ve uygulamaya ne kadar zaman ayırdığınız önemli değil, hatalar kaçınılmazdır ve hatalar ortaya çıkacaktır.

Android Test yapmak

Android Test Stratejisi

Doğru bir android test stratejisi aşağıdakileri içermelidir

  1. Birim Testi
  2. Entegrasyon testi
  3. OperaUlusal Test
  4. sistem Testi

Android Test Stratejisi

Birim testleri

Birim Testleri, bir yöntem veya sınıf gibi kaynak kodunun atomik bir birimini doğrulamak için tasarlanmış bir veya daha fazla program kümesini içerir.

Android platform önceden entegre edilmiş olarak gelir haziran 3.0 çerçevesi. Otomatikleştirmeye yönelik açık kaynaklı bir çerçevedir Birim Testi. Android Test Çerçevesi, geliştiricinin etkili birim test programı yazması için güçlü bir araçtır.

Entegrasyonu Android ve JUnit iskelet
Entegrasyonu Android ve JUnit yapı

Birim Testine ek olarak Kullanıcı Arayüzü (UI) testleri de yapılabilir. Bu testler hedef uygulamanızın kullanıcı arayüzü bileşenleriyle ilgilidir. Kullanıcı arayüzü testleri, uygulamanızın cihazdaki kullanıcı eylemleri dizisine yanıt olarak doğru kullanıcı arayüzü çıktısını döndürmesini sağlar.

Uygulamadaki Ortak Kullanıcı Arayüzü Eylemleri
Uygulamadaki yaygın kullanıcı arayüzü eylemleri

Cihazda kullanıcı arayüzü testleri gerçekleştirmenin yaygın yolu Android Aletler. Ancak bunun performans sorunları var. Kullanıcı arayüzü testi yapmak için en iyi araçlardan biri Android is robotyum.

Entegrasyon testleri

In Entegrasyon Testi, tüm ünite testli modüller birleştirilir ve doğrulanır. İçinde AndroidEntegrasyon testleri genellikle entegrasyonun kontrol edilmesini içerir.Android Hizmet testi, Etkinlik testi, İçerik Sağlayıcı testi vb. bileşenler

Entegrasyon Testleri
Entegrasyon testi türleri Android

Entegrasyon testi yapmak için kullanılan birçok test çerçevesi vardır. Android Troyd, Robolectric, Robotium gibi.

Operaulusal testler

  • OperaBunlara Fonksiyonel Testler veya Kabul Testleri de denir. Başvurunun eksiksizliğini ve doğruluğunu kontrol etmek için tasarlanmış üst düzey testlerdir.
  • In Android, Fitness hedef uygulama için operasyonel testlerin yapılmasını kolaylaştıran 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 İzleme görünümü performans testi yapmak Android .Bu araç, uygulamanızda hata ayıklamanıza ve performansının profilini çıkarmanıza yardımcı olabilir.

Otomatik ANDROID TESTİ

Android parçalanmış olduğundan, çok sayıda cihazda test yapmak gerekir. Ancak bu size paraya da mal olacaktır. Otomatik Android Testler maliyetlerin azaltılmasına yardımcı olabilir

Otomatik android testinin faydaları

  • 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 uygulamadır Android test çerçevesi. İyi entegre edilmiş, güçlü ve kullanımı kolay bir test çerçevesidir. Android SDK araçları.

Android Test Çerçevesi
Android test çerçevesi Archidoku
  1. Uygulama paketi test edilmesi gereken hedef uygulamanız mı
  2. EnstrümantasyonTestRunner olduğunu Test Durumu Hedef uygulamada test senaryosunu yürüten çalıştırıcı. O içerir:

2a) Test araçları: Test oluşturmak için bir SDK aracı. Bunlar entegre edilmiştir Eclipse IDE veya komut satırı olarak çalıştırın.

2b) Maymun Koşucusu: Bir programı kontrol eden program yazmak için API'ler sağlayan bir araç Android dışında cihaz veya emülatör Android kodu.

  1. Test paketi test projeleri halinde düzenlenir. Bu paket adlandırma kurallarına uygundur. Test edilen uygulamanın paket adı “com.alanadim.myapp” ise, Test paketi “com.alanadim.myapp.test” olmalıdır. Test paketi aşağıdaki gibi 2 nesne içerir:

3a) Test senaryosu sınıfları: hedef uygulamada yürütülecek test yöntemlerini içerir.

3b) Sahte nesneler: test senaryoları için örnek girdi olarak kullanılacak sahte verileri içerir.

Android Test Senaryosu Sınıfları

Android Test Senaryosu Sınıfları
AndroidTestCase sınıf diyagramı
  1. Test durumu içerir JUnit çalıştırma yöntemleri JUnit test
  2. Test odası bir dizi test senaryosunu çalıştırmak için kullanılır
  3. EnstrümantasyonTestSuite Enstrümantasyonu çalıştırmadan önce InstrumentationTestCase'e enjekte eden bir TestSuite'tir.
  4. EnstrümantasyonTestRunner hedef uygulamada test senaryosunu yürüten test senaryosu çalıştırıcısıdır.
  5. AndroidTest durumu uzanır JUnit Test durumu. Etkinlik İçeriği gibi kaynaklara erişmeye yönelik yöntemler içerir.
  6. UygulamaTestCase Uygulama sınıflarını kontrollü bir ortamda doğrular.
  7. EnstrümantasyonTestCase hedef uygulamanın belirli bir özelliğini veya davranışını doğrular; örneğin, uygulamanın kullanıcı arayüzü çıktısını doğrular.
  8. ActivityTestCase Uygulama Faaliyetlerinin test edilmesini destekleyen temel sınıftır.
  9. SağlayıcıTestCase tek ContentProvider'ı test etmeye yönelik sınıftır.
  10. HizmetTestCase Test ortamında Hizmet sınıflarını test etmek için kullanılır. Aynı zamanda Hizmetin yaşam döngüsünü de destekler.
  11. SingeLauchActivityTestCase InstrumentationTestCase ile tek bir Etkinliği test etmek için kullanılır.
  12. ActivityUnitTestCase tek izole aktiviteyi test etmek için kullanılır.
  13. EtkinlikEnstrümantasyonTestCase2 uzanır JUnit TestCase sınıfı. Sizi enstrümantasyonla hedef uygulamaya bağlar. Bu sınıfla uygulamanın GUI bileşenine erişebilir ve kullanıcı arayüzü olayını (tuş vuruşu veya dokunma olayı) kullanıcı arayüzüne gönderebilirsiniz.

Aşağıda ActivityInstrumentationTestCase'in bir örneği bulunmaktadır. Hesap Makinesi uygulamasının kullanıcı arayüzü çalışmasını doğrular, kullanıcı arayüzü çıktılarının doğruluğunu kontrol eder.

ActivityInstrumentationTestCase2 Testi
ActivityInstrumentationTestCase2 test örneği

Roboelektrik test çerçevesi

Kullanarak test etme Android Çerçeveyi cihaz veya emülatörle test etmek zordur. Testin oluşturulması ve çalıştırılması yavaştır ve çok fazla geliştirme çabası gerektirir. Bu sorunu çözmek için başka bir seçenek daha var: robotik test çerçevesi.

Robolectric çerçeve çalıştırmanıza olanak tanır Android testleri direkt olarak JVM'de olmadan bir cihaza veya emülatöre duyulan ihtiyaç.

Robolectric'in Gelişmiş Özellikleri
Robolectric'in gelişmiş özellikleri

Roboelektrik Test Senaryosu Sınıfları

OperaRobolectric'in kullanımı
OperaRobolectric'in kullanımı
  • Yukarıda görüldüğü gibi Robolectric aşağıdaki işlemleri gerçekleştirebilir:
  • Kayıt olun ve bir Shadow sınıfı oluşturun
  • Yüklemeyi durdur Android sınıf
  • Yöntem gövdelerini geçersiz kılmak için javaassist'i kullanır. Android sınıf
  • Gölge nesnesini şuraya bağla Android sınıf
  • Bu, test edilen kodun, Android ortamı.

Diğerleri test çerçevesi

Yukarıda belirtilen test çerçevelerinin yanı sıra aşağıdakiler gibi başka birçok test çerçevesi de vardır:

Mitler Android Test yapmak

Birçok işletme android geliştiriyor Test yapmak Yaygın yanılgılara dayanan stratejiler. Bu bölümde birkaç popüler mit ve gerçeklik incelenmektedir. Android test.

Efsane #1:Hepsi Android cihazlar aynı… emülatörlerde test etmek yeterli

Basit bir örnekle başlayalım. Bir uygulama emülatörlerde mükemmel çalışır ancak bazı gerçek cihazlarda yürütme sırasında çöker

Gerçek Cihazda Yürütme Sırasında Uygulama Çöküyor
Gerçek cihazda yürütme sırasında uygulama çöküyor

Emülatörler yeterli değil Mobil testiniz için. Uygulamanızı gerçek cihazlarda test etmelisiniz.

Efsane #2: Bazı yaygın cihazlarda test yapmak yeterlidir

  • Farklı cihazlarda farklı donanıma, ekran boyutlarına, belleğe vb. sahip olduğundan uygulamanız farklı görünür. Uygulamanızı farklı cihazlarda, işletim sistemi sürümlerinde, operatör ağlarında ve konumlarda test etmelisiniz.

Efsane#3: Lansmandan hemen önce yapılan keşif testleri yeterlidir

  • Genel olarak tüm testlerde test senaryolarını tasarlarız ve ardından yürütürüz. Ancak Keşifsel testlerde, test tasarımı ve yürütülmesi hepsi birlikte yapılacaktır.
  • Keşif testinde plan ve hazırlık yoktur, bu durumda test uzmanı yapmak istediği testleri yapar. Bazı işlevler tekrar tekrar test edilecek, bazı işlevler ise tamamen test edilmeyecektir.

Efsane#4:Uygulamada bazı hatalar varsa kullanıcılar anlayacaktır

  • Uygulama çalışmıyorsa ve hatalar varsa kullanıcılar uygulamanızı kaldırır
  • Google Play'de kötü incelemelerin ilk nedeni kalite sorunlarıdır. İtibarınızı etkiler ve müşterinin güvenini kaybedersiniz.

Bu nedenle uygun bir Android test stratejisine sahip olmak çok önemlidir.

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 koduyla birlikte sürüm kontrolünde saklanmalıdır
  • Sürekli entegrasyonu kullanın ve kod her değiştirildiğinde testler çalıştırın
  • Emülatörleri ve root erişimli cihazları kullanmaktan kaçının