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

Zašto Android Testiranje?

Android je najveći operativni sustav na svijetu. Istovremeno, Android je fragmentiran. postoji gomila uređaja i Android verzije s kojima vaša aplikacija mora biti kompatibilna.

Android Ispitivanje

Nije važno koliko vremena uložite u dizajn i implementaciju, pogreške su neizbježne, a greške će se pojaviti.

Android Ispitivanje

Android Strategija testiranja

Ispravna strategija testiranja Androida trebala bi uključivati ​​sljedeće

  1. Test jedinice
  2. Test integracije
  3. Operacionalni test
  4. Test sustava

Android Strategija testiranja

Jedinstveni testovi

Jedinični testovi uključuju skupove jednog ili više programa koji su dizajnirani za provjeru atomske jedinice izvornog koda, kao što je metoda ili klasa.

Android platforma dolazi unaprijed integrirana Junit okvir 3.0. To je okvir otvorenog koda za automatizaciju Ispitivanje jedinice. Android Testing Framework moćan je alat za programere za pisanje učinkovitog programa za jedinično testiranje.

Integracija Android i JUnit Okvir
Integracija Android i JUnit okvir

Dodatak jediničnom testiranju su testovi korisničkog sučelja (UI). Ovi se testovi odnose na komponente korisničkog sučelja vaše ciljane aplikacije. Testovi korisničkog sučelja osiguravaju da vaša aplikacija vrati ispravan izlaz korisničkog sučelja kao odgovor na slijed radnji korisnika na uređaju.

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

Uobičajen način testiranja izvedbe korisničkog sučelja na uređaju je Android Instrumentacija. Ali ovo ima problema s izvedbom. Jedan od najboljih alata za testiranje korisničkog sučelja Android is Robotium.

Integracijski testovi

In Ispitivanje integracije, svi jedinično testirani moduli, kombinirani su i provjereni. U Android, integracijski testovi često uključuju provjeru integracije sAndroid komponente kao što su testiranje usluge, testiranje aktivnosti, testiranje pružatelja sadržaja itd

Integracijski testovi
Vrste integracijskih testova na Android

Postoji mnogo okvira za testiranje koji se koriste za provođenje integracijskog testa Android kao što su Troyd, Robolectric, Robotium.

Operacionalni testovi

  • Operacionalni se također nazivaju funkcionalni testovi ili testovi prihvaćanja. To su testovi visoke razine namijenjeni provjeri cjelovitosti i ispravnosti aplikacije.
  • In Android, FitNesse je open-source okvir koji olakšava provođenje operativnih testova za ciljnu aplikaciju.

Testovi sustava

In Ispitivanje sustava sustav se testira kao cjelina i provjerava se interakcija između komponenti, softvera i hardvera.

In Android, Testiranje sustava obično uključuje

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

Na gornjem popisu, Ispitivanje performansi daje se veći fokus. Možete koristiti alate poput Traceview provesti test performansi na Android .Ovaj alat vam može pomoći u otklanjanju pogrešaka vaše aplikacije i profiliranju njezine izvedbe.

Automatizirano ANDROID TESTIRANJE

Kako je android fragmentiran, potrebno je testiranje na velikom broju uređaja. Ali ovo će vas također koštati. Automatizirano Android Testiranje može pomoći u smanjenju troškova

Prednosti automatiziranog android testiranja

  • Smanjite vrijeme za izvršavanje testnih slučajeva
  • Povećajte produktivnost svog razvojnog procesa
  • Rano otkrivanje grešaka, ušteda troškova održavanja softvera
  • Brzo pronalaženje i ispravljanje grešaka u implementaciji
  • Osigurajte kvalitetu softvera

Proučit ćemo sljedeća 2 okvira

  • Android Okvir za testiranje
  • Roboelektrični okvir za testiranje

Android okvir za testiranje

Jedan od standardnih okvira za testiranje Android Aplikacija je Android okvir za testiranje. To je snažan okvir za testiranje jednostavan za korištenje koji je dobro integriran s Android SDK alati.

Android Okvir za testiranje
Android okvir za testiranje Architektura
  1. Paket aplikacija je vaša ciljna aplikacija koju treba testirati
  2. InstrumentationTestRunner je Testni slučaj pokretač koji izvršava testni slučaj na ciljnoj aplikaciji. Uključuje:

2) Alati za testiranje: SDK alati za testiranje izgradnje. Oni su integrirani u Eclipse IDE ili pokrenuti kao naredbeni redak.

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

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

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

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

Android Klase testnih slučajeva

Android Klase testnih slučajeva
AndroidTestCase dijagram klasa
  1. TestCase uključuje JUnit metode za pokretanje JUnit test
  2. TestSuite koristi se za pokretanje skupa testnih slučajeva
  3. InstrumentationTestSuite je TestSuite koji ubacuje Instrumentation u InstrumentationTestCase prije nego što ih pokrene.
  4. InstrumentationTestRunner je pokretač testnog slučaja koji izvršava testni slučaj na ciljnoj aplikaciji.
  5. AndroidTestCase proteže se JUnit TestCase. Sadrži metode za pristup resursima kao što je Kontekst aktivnosti.
  6. ApplicationTestCase provjerava aplikacijske klase u kontroliranom okruženju.
  7. InstrumentationTestCase provjerava određenu značajku ili ponašanje ciljne aplikacije, npr. provjerava izlaz UI aplikacije.
  8. ActivityTestCase je osnovna klasa koja podržava testiranje aktivnosti aplikacije.
  9. ProviderTestCase je klasa za testiranje jednog ContentProvidera.
  10. ServiceTestCase koristi se za testiranje klasa usluga u okruženju za testiranje. Također podržava životni ciklus usluge.
  11. SingeLauchActivityTestCase koristi se za testiranje pojedinačne aktivnosti s InstrumentationTestCase.
  12. ActivityUnitTestCase koristi se za testiranje pojedinačne izolirane aktivnosti.
  13. ActivityInstrumentationTestCase2 proteže JUnit Klasa TestCase. Povezuje vas s ciljanom aplikacijom s instrumentima. Pomoću ove klase možete pristupiti GUI komponenti aplikacije i poslati UI događaj (pritisak tipke ili dodir) u UI.

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

ActivityInstrumentationTestCase2 Testiranje
ActivityInstrumentationTestCase2 primjer testiranja

Roboelektrični okvir za testiranje

Ispitivanje pomoću Android Testiranje okvira s uređajem ili emulatorom je teško. Izrada i pokretanje testa spori su i zahtijevaju mnogo truda u razvoju. Da biste riješili ovaj problem, postoji još jedan izbor – Robolectric okvir za testiranje.

Okvir Robolectric omogućuje vam trčanje Android ispitivanja direktno na JVM bez potreba za uređajem ili emulatorom.

Napredne značajke Robolectrica
Napredne značajke Robolectrica

Klase Roboelektričnih testnih slučajeva

Operacija Robolectrica
Operacija Robolectrica
  • Kao što je gore prikazano, Robolectric može izvršiti sljedeće radnje:
  • Registrirajte se i kreirajte klasu Shadow
  • Presresti učitavanje Android razred
  • Koristi javaassist za nadjačavanje tijela metode Android razred
  • Poveži Shadow objekt za Android razred
  • To omogućuje da se kod koji se testira izvršava bez Android okoliš.

Drugi okvir za testiranje

Osim okvira za testiranje koji su gore spomenuti, postoje mnogi drugi okviri za testiranje kao što su:

Mitovi o Android Ispitivanje

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

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

Počnimo s jednostavnim primjerom. Aplikacija radi savršeno na emulatorima, ali na nekim stvarnim uređajima se ruši tijekom izvođenja

Aplikacija se ruši tijekom izvođenja na stvarnom uređaju
Aplikacija se ruši tijekom izvođenja na stvarnom uređaju

Emulatori su nije dovoljno 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činu zaslona, ​​memoriju itd. Morate testirati svoju aplikaciju na različitim uređajima, verzijama OS-a, mrežama operatera i lokacijama.

Mit #3: Istraživačko testiranje neposredno prije lansiranja je dovoljno

  • Općenito, u svim testiranjima dizajniramo testne slučajeve i zatim ih izvršavamo. Ali u istraživačkom testiranju, dizajn testa i izvođenje sve će se raditi zajedno.
  • U eksplorativnom testiranju nema plana i pripreme, tada bi ispitivač radio testove koje želi. Neke funkcije će se testirati opetovano, dok se neke neće u potpunosti testirati.

Mit #4: Ako postoje greške u aplikaciji, korisnici će razumjeti

  • Ako aplikacija ne radi i ima greške, korisnici deinstaliraju vašu aplikaciju
  • Problemi s kvalitetom prvi su razlog loše recenzije na Google Playu. To utječe na vaš ugled i gubite povjerenje kupaca.

Stoga je ključno imati ispravnu strategiju testiranja Androida

Najbolje prakse u Android Ispitivanje

  • Programeri aplikacija trebaju izraditi testne slučajeve u isto vrijeme kada pišu kod
  • Svi testni slučajevi trebaju biti pohranjeni u kontroli verzija - zajedno s izvornim kodom
  • Koristite kontinuiranu integraciju i pokrenite testove svaki put kada se kod promijeni
  • Izbjegavajte korištenje emulatora i rootanih uređaja