Vodič za testiranje Android APP-a s okvirom za automatizaciju

Sadržaj:

Anonim

Zašto Android testiranje?

Android je najveći operativni sustav na svijetu. Istodobno je Android fragmentiran. postoji mnoštvo uređaja i verzija Androida s kojima vaša aplikacija mora biti kompatibilna.

Nije važno koliko vremena ulažete u dizajn i implementaciju, pogreške su neizbježne i pojavit će se pogreške.

U ovom vodiču naučit ćete-

  • Zašto Android testiranje?
  • Strategija Android testiranja
    • Jedinstveni testovi
    • Integracijski testovi
    • Operativni testovi
    • Ispitivanja sustava
  • Automatizirano ANDROID TESTIRANJE
    • Android okvir za testiranje
    • Robolektrični okvir za ispitivanje
  • Mitovi Android testiranja
  • Najbolji primjeri iz Android testiranja

Strategija Android testiranja

Ispravna strategija testiranja androida trebala bi sadržavati sljedeće

  1. Jedinstveni test
  2. Integracijski test
  3. Operativni test
  4. Test sustava

Jedinstveni testovi

Jedinstveni testovi uključuju skupove jednog ili više programa koji su dizajnirani za provjeru atomske jedinice izvornog koda, poput metode ili klase.

Android platforma dolazi s unaprijed integriranim okvirom Junit 3.0. To je okvir otvorenog koda za automatizaciju jediničnog testiranja. Android Testing Framework moćan je alat za programere za pisanje učinkovitog programa za jedinstveno testiranje.

Integracija Androida i JUnit okvira

Dodatak jedinstvenom testiranju su testovi korisničkog sučelja (UI). Ovi testovi se odnose na komponente korisničkog sučelja vaše ciljne aplikacije. UI testovi osiguravaju da vaša aplikacija vraća točan izlaz korisničkog sučelja kao odgovor na slijed korisničkih radnji na uređaju.

Uobičajene radnje korisničkog korisničkog sučelja na aplikaciji

Uobičajeni način testiranja izvedbe korisničkog sučelja na uređaju je Android Instrumentation. Ali ovo ima problema s izvedbom. Jedan od najboljih alata za provođenje testiranja korisničkog sučelja na Androidu je Robotium.

Integracijski testovi

U integracijskom testiranju kombiniraju se i provjeravaju svi moduli koji su testirani na jedinici. U Androidu integracijski testovi često uključuju provjeru integracije s Android komponentama kao što su testiranje usluga, testiranje aktivnosti, testiranje davatelja sadržaja itd.

Vrste integracijskog testa na Androidu

Postoje mnogi okviri za testiranje koji se koriste za provođenje integracijskog testa za Android kao što su Troyd, Robolectric, Robotium.

Operativni testovi

  • Operativni se nazivaju i funkcionalni testovi ili testovi prihvatljivosti. To su testovi na visokoj razini osmišljeni kako bi provjerili potpunost i ispravnost primjene.
  • U Androidu FitNesse je okvir otvorenog koda koji olakšava provođenje operativnih testova za ciljanu aplikaciju.

Ispitivanja sustava

Tijekom testiranja sustava sustav se ispituje u cjelini i provjerava interakcija između komponenata, softvera i hardvera.

U sustavu Android, testiranje sustava obično uključuje

  • GUI testovi
  • Ispitivanja upotrebljivosti
  • Ispitivanja performansi
  • Stres testovi

Na gornjem popisu ispitivanju izvedbe daje se veći fokus. Možete koristiti alate poput Traceview za provođenje testa izvedbe na Androidu. Ovaj vam alat može pomoći u otklanjanju pogrešaka u aplikaciji i profiliranju njezine izvedbe.

Automatizirano ANDROID TESTIRANJE

Kako je android fragmentiran, potrebno je testiranje na mnoštvu uređaja. Ali ovo će vas također koštati. Automatizirano Android testiranje može vam pomoći smanjiti troškove

Prednosti automatiziranog android testiranja

  • Smanjite vrijeme za izvršavanje testnih slučajeva
  • Povećajte produktivnost vašeg razvojnog procesa
  • Rano otkrivanje programskih pogrešaka, ušteda troškova na održavanju softvera
  • Brzo pronađite i ispravite greške u implementaciji
  • Osigurajte kvalitetu softvera

Proučit ćemo sljedeća 2 okvira

  • Okvir za Android testiranje
  • Okvir za robotičko ispitivanje

Android okvir za testiranje

Jedan od standardnih okvira za testiranje Android aplikacija je Android test framework . To je moćan i jednostavan za korištenje testni okvir koji je dobro integriran s Android SDK alatima.

Android arhitektura za testiranje

  1. Aplikacijski paket vaš je ciljni program koji treba testirati
  2. InstrumentationTestRunner je pokretač test slučaja koji izvršava test slučaja na ciljanoj aplikaciji. Uključuje:

2a) Alati za testiranje: Alati za SDK za testiranje zgrada. Integrirani su u Eclipse IDE ili se izvode kao naredbeni redak.

2b) MonkeyRunner: Alat koji pruža API-je za pisanje programa koji kontroliraju Android uređaj ili emulator izvan Android koda.

  1. Testni paketi organizirani su u test projekte. Ovaj paket slijedi konvenciju imenovanja. Ako aplikacija koja se testira ima naziv paketa "com.mydomain.myapp", tada bi testni paket trebao biti "com.mydomain.myapp.test". Paket za testiranje uključuje 2 objekta kao što je prikazano u nastavku:

3a) Klase testnih slučajeva: uključuju metode ispitivanja koje se izvršavaju na ciljanoj aplikaciji.

3b) Lažni objekti: uključuje lažne podatke koji će se koristiti kao uzorak za testne slučajeve.

Razredi za testne slučajeve Androida

Dijagram klase AndroidTestCase

  1. TestCase uključuje JUnit metode za pokretanje JUnit testa
  2. TestSuite koristi se za pokretanje skupa test slučajeva
  3. InstrumentationTestSuite je TestSuite koji ubrizgava Instrumentation u InstrumentationTestCase prije njihovog pokretanja.
  4. InstrumentationTestRunner je pokretač test slučaja koji izvršava test slučaja na ciljanoj aplikaciji.
  5. AndroidTestCase proširuje JUnit TestCase. Sadrži metode za pristup resursima poput Konteksta aktivnosti.
  6. ApplicationTestCase provjerava klase aplikacija u kontroliranom okruženju.
  7. InstrumentationTestCase provjerava određenu značajku ili ponašanje ciljne aplikacije, na primjer, provjerava UI izlaz aplikacije.
  8. ActivityTestCase je osnovna klasa koja podržava testiranje aplikacijskih aktivnosti.
  9. ProviderTestCase je klasa za testiranje pojedinačnog ContentProvider-a.
  10. ServiceTestCase koristi se za testiranje klasa usluga u testnom okruženju. Također podržava životni ciklus usluge.
  11. SingeLauchActivityTestCase koristi se za testiranje pojedinačne aktivnosti pomoću InstrumentationTestCase.
  12. ActivityUnitTestCase koristi se za testiranje pojedinačne izolirane aktivnosti.
  13. ActivityInstrumentationTestCase2 proširuje klasu JUnit TestCase. Povezuje vas ciljanu aplikaciju s instrumentima. Pomoću ove klase možete pristupiti GUI komponenti aplikacije i poslati UI događaj (pritisak tipke ili događaj dodira) na UI.

Ispod je primjer ActivityInstrumentationTestCase. Provjerava rad korisničkog sučelja aplikacije Kalkulator, provjerava ispravnost izlaza korisničkog sučelja.

Primjer testiranja ActivityInstrumentationTestCase2

Robolektrični okvir za ispitivanje

Teško je testirati pomoću Android Testing framework-a s uređajem ili emulatorom. Test za izgradnju i trčanje je spor i treba puno napora za razvoj. Da biste riješili taj problem, postoji još jedan izbor - okvir za testiranje Robolectric .

Robolectric framework omogućuje vam pokretanje Android testova izravno na JVM-u bez potrebe za uređajem ili emulatorom.

Napredne značajke Robolectrica

Predavanja na robotičkim test slučajevima

Djelovanje Robolectrica

  • Kao što je gore prikazano, Robolectric može izvesti sljedeće radnje:
  • Registrirajte se i stvorite razred sjene
  • Presretnite učitavanje Android klase
  • Koristi javaassist da nadjača tijela metoda klase Android
  • Priveži objekt sjene za klasu Android
  • To omogućuje izvršavanje koda koji se testira bez Android okruženja.

Ostali okviri za testiranje

Pored gore spomenutih okvira za testiranje, postoje i mnogi drugi okviri za testiranje, kao što su:

  • Android Junit Report, prilagođeni pokretač testnih instrumenata za Android koji generira XML izvješća za integraciju s drugim alatima.
  • Expresso
  • Appium

Mitovi Android testiranja

Mnoga poduzeća razvijaju android strategije testiranja koje se temelje na uobičajenim zabludama. Ovaj odjeljak ispituje nekoliko popularnih mitova i stvarnosti Android testiranja.

Mit 1.: Svi su Android uređaji isti ... dovoljan je test na emulatorima

Počnimo s jednostavnim primjerom. Aplikacija savršeno radi na emulatoru, ali na nekim stvarnim uređajima pada tijekom izvođenja

Aplikacija se ruši tijekom izvršavanja na stvarnom uređaju

Emulatori nisu dovoljni za vaše mobilno testiranje. Morate testirati svoju aplikaciju na stvarnim uređajima.

Mit 2.: Dovoljno je testiranje na nekim uobičajenim uređajima

  • Na različitim uređajima vaša aplikacija izgleda drugačije jer različiti uređaji imaju različit hardver, veličine zaslona, ​​memoriju itd. Morate testirati svoju aplikaciju na različitim uređajima, verzijama OS-a, mrežama prijenosnika i lokacijama.

Mit # 3: Dovoljno je istraživačko testiranje neposredno prije lansiranja

  • Općenito u svim testiranjima dizajniramo test slučajeve, a zatim ih izvršavamo. Ali u istraživačkom testiranju, dizajnu i izvođenju testova sve će se raditi zajedno.
  • U istraživačkom testiranju nema plana i nema pripreme, a tester bi obavio testove koje želi napraviti. Neke će se funkcije testirati više puta, dok neke funkcije neće biti testirane u potpunosti.

Mit # 4: Ako u aplikaciji postoje neke pogreške, korisnici će to razumjeti

  • Ako aplikacija ne radi i ima bugova, korisnici će je deinstalirati
  • Problemi s kvalitetom prvi su razlog lošeg pregleda na Google Playu. To utječe na vašu reputaciju i gubite povjerenje kupaca.

Stoga je neophodno imati odgovarajuću strategiju testiranja androida

Najbolji primjeri iz Android testiranja

  • Programeri aplikacija trebali bi stvoriti test slučajeve istodobno dok pišu kôd
  • Svi testovi trebaju biti pohranjeni u kontroli verzija zajedno s izvornim kodom
  • Koristite kontinuiranu integraciju i pokrenite testove svaki put kad se kod promijeni
  • Izbjegavajte upotrebu emulatora i ukorijenjenih uređaja