Android APP testimise õpetus koos automatiseerimisraamistikuga

Miks Android Testimine?

Android on maailma suurim operatsioonisüsteem. Samal ajal Android on killustatud. seal on tonni seadmeid ja Android versioonid, millega teie rakendus peab ühilduma.

Android Testimine

Pole tähtis, kui palju aega projekteerimisele ja juurutamisele investeerite, vead on vältimatud ja ilmnevad vead.

Android Testimine

Android Testimisstrateegia

Õige Androidi testimisstrateegia peaks sisaldama järgmist

  1. Üksuse test
  2. Integratsiooni test
  3. Operariiklik test
  4. Süsteemi test

Android Testimisstrateegia

Ühiktestid

Ühiktestid hõlmavad ühe või mitme programmi komplekte, mis on loodud lähtekoodi tuumaühiku (nt meetodi või klassi) kontrollimiseks.

Android platvorm on eelintegreeritud Junit 3.0 raamistik. See on avatud lähtekoodiga raamistik automatiseerimiseks Üksuse testimine. Android Testing Framework on võimas tööriist arendajale tõhusa üksuse testimise programmi kirjutamiseks.

Integratsioon Android ja JUnit Raamistik
Integreerimine Android ja JUnit raamistik

Ühiktestimise täienduseks on kasutajaliidese (UI) testid. Need testid on seotud teie sihtrakenduse kasutajaliidese komponentidega. Kasutajaliidese testid tagavad, et teie rakendus tagastab õige kasutajaliidese väljundi vastuseks kasutaja toimingute järjestusele seadmes.

Tavalised kasutajaliidese toimingud rakenduses
Levinud kasutajaliidese toimingud rakenduses

Tavaline viis seadme kasutajaliidese testimiseks on Android Koosseis. Kuid sellel on jõudlusega probleeme. Üks parimaid tööriistu kasutajaliidese testimiseks Android is Robotium.

Integreerimistestid

In Integratsiooni testimine, kõik seadmega testitud moodulid on kombineeritud ja kontrollitud. sisse Android, hõlmavad integratsioonitestid sageli integratsiooni kontrollimistAndroid komponendid, nagu teenuse testimine, tegevuste testimine, sisupakkuja testimine jne

Integratsioonitestid
Integratsioonitestide tüübid Android

Integratsioonitestide läbiviimiseks kasutatakse palju testimisraamistikke Android nagu Troyd, Robolectric, Robotium.

Operariiklikud testid

  • OperaNeid nimetatakse ka funktsionaalseteks testideks või aktsepteerimistestideks. Need on kõrgetasemelised testid, mille eesmärk on kontrollida rakenduse täielikkust ja õigsust.
  • In Android, FitNesse on avatud lähtekoodiga raamistik, mis muudab sihtrakenduse töötestide läbiviimise lihtsaks.

Süsteemi testid

In Süsteemi testimine testitakse süsteemi tervikuna ning kontrollitakse komponentide, tarkvara ja riistvara koostoimet.

In AndroidSüsteemi testimine hõlmab tavaliselt

  • GUI testid
  • Kasutatavuse testid
  • Jõudluskatsed
  • Stressitestid

Ülaltoodud loendis Jõudluse testimine pööratakse rohkem tähelepanu. Võite kasutada selliseid tööriistu nagu Traceview jõudlustesti läbiviimiseks Android .See tööriist aitab teil oma rakendust siluda ja selle toimivust profileerida.

Automatiseeritud ANDROIDI TESTIMINE

Kuna android on killustatud, on vaja testida paljudes seadmetes. Kuid see maksab teile ka raha. Automatiseeritud Android Testimine võib aidata kulusid vähendada

Androidi automatiseeritud testimise eelised

  • Vähendage testjuhtumite läbiviimise aega
  • Suurendage oma arendusprotsessi tootlikkust
  • Varajane vigade avastamine, säästa tarkvara hoolduskulusid
  • Rakendamisel esinevad vead leiti ja parandati kiiresti
  • Tagada tarkvara kvaliteet

Uurime kahte järgmist raamistikku

  • Android Testimisraamistik
  • Roboelektrilise testimise raamistik

Android testimise raamistik

Üks standardsetest testimisraamistikest Android taotlus on Android testimise raamistik. See on võimas ja hõlpsasti kasutatav testimisraamistik, mis on hästi integreeritud Android SDK tööriistad.

Android Testimisraamistik
Android testimise raamistik Architektuur
  1. Rakenduspakett on teie sihtrakendus, mida tuleb testida
  2. InstrumentationTestRunner on Testjuhtum jooksja, mis käivitab sihtrakenduses testjuhtumi. See sisaldab:

2a) Testimisvahendid: SDK tööriistad ehitamise testimiseks. Need on integreeritud Eclipse IDE või käivitage käsureal.

2b) MonkeyRunner: Tööriist, mis pakub API-sid programmide kirjutamiseks, mis juhivad Android seade või emulaator väljaspool Android kood.

  1. Testpakett on organiseeritud testprojektideks. See pakett järgib nimetamise tava. Kui testitava rakenduse paketi nimi on "com.mydomain.myapp", peaks testpakett olema "com.mydomain.myapp.test". Testpakett sisaldab 2 allolevat objekti:

3a) Testjuhtumite klassid: sisaldavad sihtrakenduses käivitatavaid testimeetodeid.

3b) Näidisobjektid: sisaldab näidisandmeid, mida kasutatakse testjuhtumite näidissisendina.

Android Testjuhtumite klassid

Android Testjuhtumite klassid
AndroidTestCase klassiskeem
  1. TestCase hõlmab JUnit jooksmise meetodid JUnit test
  2. TestSuite kasutatakse testjuhtumite komplekti käivitamiseks
  3. InstrumentationTestSuite on TestSuite, mis sisestab instrumentatsiooni enne nende käivitamist InstrumentationTestCase'i.
  4. InstrumentationTestRunner on testjuhtumi käivitaja, mis käivitab sihtrakenduses testjuhtumi.
  5. AndroidTestCase laieneb JUnit TestCase. See sisaldab meetodeid ressurssidele, nagu tegevuse kontekst, juurdepääsuks.
  6. ApplicationTestCase kontrollib rakenduste klasse kontrollitud keskkonnas.
  7. InstrumentationTestCase kontrollib sihtrakenduse konkreetset funktsiooni või käitumist, näiteks rakenduse kasutajaliidese väljundi kontrollimiseks.
  8. ActivityTestCase on baasklass, mis toetab rakenduste tegevuste testimist.
  9. ProviderTestCase on klass ühe ContentProvideri testimiseks.
  10. ServiceTestCase kasutatakse teenuseklasside testimiseks testimiskeskkonnas. See toetab ka teenuse elutsüklit.
  11. SingeLauchActivityTestCase kasutatakse üksiku tegevuse testimiseks InstrumentationTestCase'iga.
  12. ActivityUnitTestCase kasutatakse üksiku isoleeritud aktiivsuse testimiseks.
  13. TegevusInstrumendi testijuhtum2 laiendab JUnit TestCase klass. See ühendab teid seadmete abil sihtrakendusega. Selle klassi abil pääsete juurde rakenduse GUI komponendile ja saate kasutajaliidesele kasutajaliidese sündmuse (klahvivajutuse või puutetundliku sündmuse).

Allpool on näide ActivityInstrumentationTestCase'ist. See kontrollib rakenduse Calculator kasutajaliidese toimimist, kontrollib kasutajaliidese väljundite õigsust.

ActivityInstrumentationTestCase2 testimine
ActivityInstrumentationTestCase2 testimise näide

Roboelektrilise testimise raamistik

Testimine kasutades Android Seadme või emulaatoriga raamistiku testimine on keeruline. Testi koostamine ja käitamine on aeglane ja nõuab palju arendustööd. Selle probleemi lahendamiseks on veel üks valik – Roboelektriline testimise raamistik.

Roboelektriline raamistik võimaldab teil joosta Android testid otse JVM-is ilma vajadus seadme või emulaatori järele.

Robolectricu eelisfunktsioonid
Robolectricu täiustatud funktsioonid

Roboelektriliste katsejuhtumite klassid

OperaRobolectricu
OperaRobolectricu
  • Nagu ülal näidatud, saab Robolectric teha järgmisi toiminguid:
  • Registreeruge ja looge varjuklass
  • Peatage laadimine Android klass
  • Kasutab javaassisti meetodi kehade alistamiseks Android klass
  • Seo Shadow objekt Android klass
  • See võimaldab testitavat koodi ilma käivitada Android keskkond.

Teised testimise raamistik

Lisaks ülalmainitud testimisraamistikele on palju teisi testimisraamistikke, näiteks:

Müüdid Android Testimine

Paljud ettevõtted arendavad Androidi Testimine strateegiad, mis põhinevad levinud väärarusaamadel. Selles jaotises käsitletakse mõnda populaarset müüti ja tegelikkust Android katsetamine.

Müüt nr 1: kõik Android seadmed on samad... piisab emulaatorite testimisest

Alustame lihtsa näitega. Rakendus töötab emulaatorites suurepäraselt, kuid mõnes reaalses seadmes jookseb see täitmise ajal kokku

Rakendus jookseb reaalses seadmes täitmise ajal kokku
Rakendus jookseb reaalses seadmes täitmise ajal kokku

Emulaatorid on ei piisa mobiili testimiseks. Peate oma rakendust testima päris seadmetes.

Müüt nr 2: piisab mõne levinud seadme testimisest

  • Erinevates seadmetes näeb teie rakendus välja erinev, kuna erinevatel seadmetel on erinev riistvara, ekraanisuurused, mälu jne. Peate oma rakendust testima erinevates seadmetes, OS-i versioonides, operaatorivõrkudes ja asukohtades.

Müüt#3: Piisab uurimuslikust testimisest vahetult enne käivitamist

  • Üldiselt kavandame kõigi testimiste puhul testjuhtumid ja seejärel teostame need. Kuid uurimusliku testimise puhul tehakse testi kavandamine ja teostamine kõik koos.
  • Uuriva testimise puhul pole plaani ega ettevalmistust, siis testija teeks teste, mida ta tahab teha. Mõnda funktsiooni testitakse korduvalt, samas kui mõnda funktsiooni täielikult ei testita.

Müüt#4: kui rakenduses on vigu, saavad kasutajad aru

  • Kui rakendus ei tööta ja sellel on vigu, desinstallivad kasutajad teie rakenduse
  • Kvaliteediprobleemid on Google Play halva arvustuse esimene põhjus. See mõjutab teie mainet ja kaotate klientide usalduse.

Seetõttu on oluline omada õiget Androidi testimisstrateegiat

Parimad tavad sisse Android Testimine

  • Rakenduste arendajad peaksid katsejuhtumid looma samal ajal, kui nad koodi kirjutavad
  • Kõik testjuhtumid tuleks salvestada versioonikontrollis koos lähtekoodiga
  • Kasutage pidevat integreerimist ja testige iga kord, kui koodi muudetakse
  • Vältige emulaatorite ja juurdunud seadmete kasutamist