Vadnica za testiranje aplikacij za Android z ogrodjem za avtomatizacijo

Kazalo:

Anonim

Zakaj testiranje Androida?

Android je največji operacijski sistem na svetu. Hkrati je Android razdrobljen. obstaja veliko naprav in različic Androida, s katerimi mora biti vaša aplikacija združljiva.

Ni pomembno, koliko časa vlagate v načrtovanje in izvedbo, napake so neizogibne in pojavile se bodo napake.

V tej vadnici boste izvedeli-

  • Zakaj testiranje Androida?
  • Strategija testiranja za Android
    • Enotni testi
    • Integracijski testi
    • Operativni testi
    • Sistemski testi
  • Avtomatizirano TESTIRANJE ANDROIDA
    • Okvir za testiranje Androida
    • Robolektrični preskusni okvir
  • Miti testiranja Androida
  • Najboljše prakse v preskušanju Androida

Strategija testiranja za Android

Pravilna strategija testiranja androida mora vključevati naslednje

  1. Enoten test
  2. Integracijski test
  3. Operativni test
  4. Sistemski test

Enotni testi

Preizkusi enot vključujejo sklope enega ali več programov, ki so namenjeni preverjanju atomske enote izvorne kode, na primer metode ali razreda.

Android platforma ima vnaprej integriran okvir Junit 3.0. To je odprtokodni okvir za avtomatizacijo preskušanja enot. Android Testing Framework je močno orodje za razvijalce za pisanje učinkovitega programa za preskušanje enot.

Integracija okolja Android in JUnit

Dodatek k preizkušanju enot so testi uporabniškega vmesnika (UI). Ti testi se nanašajo na komponente uporabniškega vmesnika vaše ciljne aplikacije. Preizkusi uporabniškega vmesnika zagotavljajo, da vaša aplikacija vrne pravi izhod uporabniškega vmesnika kot odgovor na zaporedje uporabniških dejanj v napravi.

Pogosta dejanja uporabniškega uporabniškega vmesnika v aplikaciji

Pogost način za preizkušanje uporabniškega vmesnika na napravi je Android Instrumentation. Toda to ima težave z zmogljivostjo. Eno najboljših orodij za izvajanje testiranja uporabniškega vmesnika na Androidu je Robotium.

Integracijski testi

Pri integracijskem preizkušanju so vsi enotno preizkušeni moduli združeni in preverjeni. V sistemu Android integracijski testi pogosto vključujejo preverjanje integracije s komponentami Android, kot so testiranje storitev, testiranje dejavnosti, testiranje ponudnikov vsebin itd.

Vrste integracijskega testa na Androidu

Za izvajanje integracijskega testa za Android se uporabljajo številni testni okviri, kot so Troyd, Robolectric, Robotium.

Operativni testi

  • Operativni se imenujejo tudi funkcionalni testi ali preizkusi sprejemljivosti. So preskusi na visoki ravni, namenjeni preverjanju popolnosti in pravilnosti uporabe.
  • V Androidu je FitNesse odprtokodni okvir, ki olajša izvajanje operativnih testov za ciljno aplikacijo.

Sistemski testi

Pri sistemskem testiranju se sistem preizkusi kot celota in preveri interakcija med komponentami, programsko in strojno opremo.

V Androidu sistemsko preskušanje običajno vključuje

  • GUI testi
  • Preskusi uporabnosti
  • Preskusi učinkovitosti
  • Testi izjemnih situacij

Na zgornjem seznamu je testiranje učinkovitosti bolj osredotočeno. Za izvajanje preizkusa učinkovitosti v Androidu lahko uporabite orodja, kot je Traceview, ki vam lahko pomaga pri odpravljanju napak v aplikaciji in profiliranju njene učinkovitosti.

Avtomatizirano TESTIRANJE ANDROIDA

Ker je Android razdrobljen, je potrebno testiranje na številnih napravah. A to vas bo stalo tudi denar. Avtomatizirano preskušanje Androida lahko pomaga zmanjšati stroške

Prednosti samodejnega testiranja androidov

  • Skrajšajte čas za izvajanje testnih primerov
  • Povečajte produktivnost vašega razvojnega procesa
  • Zgodnje odkrivanje napak, prihranite stroške vzdrževanja programske opreme
  • Hitro najti in odpraviti napake pri izvedbi
  • Zagotovite kakovost programske opreme

Proučili bomo naslednja 2 okvira

  • Okvir za preskušanje Androida
  • Okvir za robotično preskušanje

Okvir za testiranje Androida

Eden od standardnih okvirov za testiranje aplikacije Android je sistem za testiranje Android . Je zmogljiv in enostaven testni okvir, ki je dobro integriran z orodji Android SDK.

Arhitektura preskusnega okolja za Android

  1. Aplikacijski paket je vaša ciljna aplikacija, ki jo je treba preizkusiti
  2. InstrumentationTestRunner je zaganjalnik testnih primerov, ki izvede testni primer na ciljni aplikaciji. Vključuje:

2a) Testna orodja: orodja SDK za gradnjo preizkusov. Integrirani so v Eclipse IDE ali se izvajajo kot ukazna vrstica.

2b) MonkeyRunner: orodje, ki ponuja API-je za pisanje programov, ki nadzorujejo napravo Android ali emulator zunaj kode Androida.

  1. Testni paket je organiziran v testne projekte. Ta paket sledi dogovoru o poimenovanju. Če ima testna aplikacija ime paketa "com.mydomain.myapp", mora biti testni paket "com.mydomain.myapp.test". Paket testa vključuje dva predmeta, kot spodaj:

3a) Razredi testnih primerov: vključujejo preskusne metode, ki se izvajajo na ciljni aplikaciji.

3b) Lažni predmeti: vključuje lažne podatke, ki bodo uporabljeni kot vzorčni vhod za testne primere.

Razredi testnih primerov Android

Diagram razreda AndroidTestCase

  1. TestCase vključuje metode JUnit za zagon testa JUnit
  2. TestSuite se uporablja za izvajanje nabora testnih primerov
  3. InstrumentationTestSuite je TestSuite, ki vbrizga Instrumentation v InstrumentationTestCase, preden jih zažene.
  4. InstrumentationTestRunner je izvajalec testnih primerov, ki izvede testni primer na ciljni aplikaciji.
  5. AndroidTestCase razširja JUnit TestCase. Vsebuje metode za dostop do virov, kot je kontekst dejavnosti.
  6. ApplicationTestCase preverja razrede aplikacij v nadzorovanem okolju.
  7. InstrumentationTestCase preveri določeno lastnost ali vedenje ciljne aplikacije, na primer preveri izhod uporabniškega vmesnika aplikacije.
  8. ActivityTestCase je osnovni razred, ki podpira testiranje aplikacijskih dejavnosti.
  9. ProviderTestCase je razred za testiranje posameznega ContentProviderja.
  10. ServiceTestCase se uporablja za preizkušanje servisnih razredov v testnem okolju. Podpira tudi življenjski cikel storitve.
  11. SingeLauchActivityTestCase se uporablja za preizkušanje posamezne dejavnosti z InstrumentationTestCase.
  12. ActivityUnitTestCase se uporablja za testiranje posamezne izolirane aktivnosti.
  13. ActivityInstrumentationTestCase2 razširja razred JUnit TestCase. Poveže vas s ciljno aplikacijo z instrumentacijo. S tem razredom lahko dostopate do komponente GUI aplikacije in v uporabniški vmesnik pošljete dogodek uporabniškega vmesnika (pritisk tipke ali dogodek na dotik).

Spodaj je primer ActivityInstrumentationTestCase. Preveri delovanje uporabniškega vmesnika aplikacije Kalkulator, preveri pravilnost izhodov uporabniškega vmesnika.

Primer preizkušanja ActivityInstrumentationTestCase2

Robolektrični preskusni okvir

Testiranje z uporabo okvira za testiranje Androida z napravo ali emulatorjem je težko. Preskus gradnje in teka je počasen in zahteva veliko razvojnega napora. Če želite odpraviti to težavo, obstaja še ena izbira - okvir za testiranje Robolectric .

Robolectric framework omogoča izvajanje testov Android neposredno na JVM brez potrebe po napravi ali emulatorju.

Napredne funkcije Robolectric

Razredi Robolectric Test Case

Delovanje Robolectric

  • Kot je prikazano zgoraj, lahko Robolectric izvede naslednja dejanja:
  • Registrirajte se in ustvarite razred Shadow
  • Prestrezite nalaganje razreda Android
  • Uporablja javaassist, da preglasi telesa metod razreda Android
  • Objekt Shadow povežite z razredom Android
  • To omogoča, da se preizkušena koda izvaja brez okolja Android.

Drugi okvir za testiranje

Poleg zgoraj omenjenih preskusnih okvirov obstaja še veliko drugih preskusnih okvirov, kot so:

  • Android Junit Report, poizkusni preizkus instrumentacije za Android, ki ustvarja poročila XML za integracijo z drugimi orodji.
  • Expresso
  • Appium

Miti testiranja Androida

Mnoga podjetja razvijajo strategije testiranja za android, ki temeljijo na pogostih napačnih predstavah. Ta razdelek proučuje nekaj priljubljenih mitov in resničnosti testiranja Androida.

Mit # 1: Vse naprave Android so enake ... dovolj je preizkus na emulatorjih

Začnimo s preprostim primerom. Aplikacija deluje odlično na emulatorjih, vendar se na nekaterih resničnih napravah med izvajanjem zruši

Program se zruši med izvajanjem na resnični napravi

Emulatorji ne zadoščajo za mobilno testiranje. Aplikacijo morate preizkusiti v resničnih napravah.

Mit št. 2: Testiranje na nekaterih običajnih napravah je dovolj

  • V različnih napravah je vaša aplikacija videti drugače, ker imajo različne naprave različno strojno opremo, velikost zaslona, ​​pomnilnik itd. Aplikacijo morate preizkusiti v različnih napravah, različicah OS, omrežjih operaterjev in lokacijah.

Mit # 3: Dovolj je že raziskovalno testiranje tik pred izstrelitvijo

  • Na splošno pri vseh testiranjih oblikujemo testne primere in jih nato izvedemo. Toda pri raziskovalnih testiranjih, načrtovanju in izvedbi preizkusov bo vse narejeno skupaj.
  • Pri raziskovalnem testiranju ni načrta in ni priprav, potem bi tester opravil teste, ki jih želi opraviti. Nekatere funkcije bodo preizkušene večkrat, nekatere pa ne.

Mit # 4: Če je v aplikaciji nekaj napak, bodo uporabniki razumeli

  • Če aplikacija ne deluje in ima napake, jo uporabniki odstranijo
  • Težave s kakovostjo so prvi razlog za slab pregled v Googlu Play. To vpliva na vaš ugled in izgubite zaupanje strank.

Zato je bistvenega pomena ustrezna strategija testiranja androidov

Najboljše prakse v preskušanju Androida

  • Razvijalci aplikacij naj testne primere ustvarijo hkrati, ko pišejo kodo
  • Vse testne primere je treba shraniti v nadzor nad različicami skupaj z izvorno kodo
  • Uporabite neprekinjeno integracijo in zaženite teste vsakič, ko spremenite kodo
  • Izogibajte se uporabi emulatorjev in ukoreninjenih naprav