Androidi rakenduse testimisõpetus koos automatiseerimisraamistikuga

Lang L: none (table-of-contents):

Anonim

Miks Androidi testimine?

Android on maailma suurim operatsioonisüsteem. Samal ajal on Android killustatud. on palju seadmeid ja Androidi versioone, millega teie rakendus peab ühilduma.

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

Selles õpetuses saate teada

  • Miks Androidi testimine?
  • Androidi testimisstrateegia
    • Ühikutestid
    • Integreerimiskatsed
    • Töökatsed
    • Süsteemi testid
  • Androidide automatiseeritud testimine
    • Androidi testimisraamistik
    • Robolektrilise testimise raamistik
  • Androidi testimise müüdid
  • Androidi testimise parimad tavad

Androidi testimisstrateegia

Õige android-testimise strateegia peaks sisaldama järgmist

  1. Ühiku test
  2. Integreerimiskatse
  3. Töökatse
  4. Süsteemi test

Ühikutestid

Ühikutestid hõlmavad ühe või mitme programmi komplekte, mis on loodud lähtekoodi aatomiüksuse, näiteks meetodi või klassi kontrollimiseks.

Androidi platvormil on eelintegreeritud Junit 3.0 raamistik. See on avatud lähtekoodiga raamistik üksuste testimise automatiseerimiseks. Android Testing Framework on arendajale võimas tööriist efektiivse ühikutestimisprogrammi kirjutamiseks.

Androidi ja JUniti raamistiku integreerimine

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

Tavalised kasutajaliidese toimingud rakenduses

Seadme kasutajaliidese testimise levinud viis on Android Instrumentation. Kuid sellel on jõudlusega seotud probleeme. Üks parimatest vahenditest Androidi kasutajaliidese testimise läbiviimiseks on Robotium.

Integreerimiskatsed

Integreerimistestimises ühendatakse ja kontrollitakse kõiki üksuse testitud mooduleid. Androidis hõlmavad integreerimistestid sageli integreerimise kontrollimist Android-komponentidega, näiteks teenuse testimine, tegevuse testimine, sisupakkuja testimine jne

Integreerimistesti tüübid Androidis

Androidi integreerimistesti läbiviimiseks kasutatakse palju testimisraamistikke, näiteks Troyd, Robolectric, Robotium.

Töökatsed

  • Operatiivseid nimetatakse ka funktsionaalseteks testideks või aktsepteerimistestideks. Need on kõrgetasemelised testid, mis on loodud rakenduse täielikkuse ja õigsuse kontrollimiseks.
  • Androidis on FitNesse avatud lähtekoodiga raamistik, mis hõlbustab sihtrakenduse operatiivtestide läbiviimist.

Süsteemi testid

Süsteemi testimisel testitakse süsteemi tervikuna ning kontrollitakse komponentide, tarkvara ja riistvara vastastikust mõju.

Androidis hõlmab süsteemi testimine tavaliselt ka järgmist

  • GUI testid
  • Kasutatavuse testid
  • Jõudluskontroll
  • Stressitestid

Ülaltoodud loendis keskendutakse jõudlustestimisele rohkem. Android-is jõudlustesti läbiviimiseks võite kasutada selliseid tööriistu nagu Traceview. See tööriist aitab teil oma rakendust siluda ja selle toimivust profileerida.

Androidide automatiseeritud testimine

Kuna android on killustatud, on vaja testida paljude seadmetega. Kuid see maksab ka teile raha. Automaatne Androidi testimine aitab kulusid vähendada

Androidi automatiseeritud testimise eelised

  • Vähendage testjuhtumite sooritamise aega
  • Suurendage oma arendusprotsessi tootlikkust
  • Varajane veatuvastus võimaldab säästa tarkvara hoolduskulusid
  • Kiiresti leitud ja parandatud vead rakendamisel
  • Tagage tarkvara kvaliteet

Uurime järgmist 2 raamistikku

  • Androidi testimisraamistik
  • Robolektrilise testimise raamistik

Androidi testimisraamistik

Üks Androidi rakenduse standardne testimisraamistik on Androidi testimisraamistik . See on võimas ja hõlpsasti kasutatav testimisraamistik, mis on hästi integreeritud Android SDK tööriistadega.

Androidi testimisraamistiku arhitektuur

  1. Rakenduspakett on teie sihtrakendus, mida tuleb testida
  2. InstrumentationTestRunner on testjuhtumi jooksja, kes viib testrakenduse läbi sihtrakenduses. See sisaldab:

2a) Testitööriistad: SDK tööriistad ehitustesti jaoks. Need on integreeritud Eclipse IDE-sse või töötavad käsureana.

2b) MonkeyRunner: tööriist, mis pakub API-sid programmi kirjutamiseks, mis juhib Android-seadet või emulaatorit väljaspool Android-koodi.

  1. Testpakett on korraldatud testprojektideks. See pakett järgib nimetamiskorda. Kui testitava rakenduse paketi nimi on "com.mydomain.myapp", peaks testipakett olema "com.mydomain.myapp.test". Testipakett sisaldab 2 järgmist objekti:

3a) Testjuhtumiklassid: hõlmavad testimismeetodeid, mis viiakse läbi sihtrakenduses.

3b) Mock-objektid: sisaldab mõnitavaid andmeid, mida kasutatakse proovijuhtumite valimisisendina.

Androidi testjuhtumite klassid

AndroidTestCase klassi diagramm

  1. TestCase sisaldab JUniti meetodeid JUniti testi käivitamiseks
  2. TestSuite'i kasutatakse testjuhtumite komplekti käitamiseks
  3. InstrumentationTestSuite on TestSuite, mis süstib Instrumentationi InstrumentationTestCase'i enne nende käivitamist.
  4. InstrumentationTestRunner on testjuhtumi jooksja, kes viib sihtrakenduses testjuhtumi ellu.
  5. AndroidTestCase laiendab JUnit TestCase'i. See sisaldab meetodeid juurdepääsuks ressurssidele, nagu tegevuskontekst.
  6. ApplicationTestCase kontrollib rakendusklasse kontrollitud keskkonnas.
  7. InstrumentationTestCase kontrollib sihtrakenduse konkreetset funktsiooni või käitumist, näiteks kontrollib rakenduse kasutajaliidese väljundit.
  8. ActivityTestCase on baasklass, mis toetab rakendustegevuste testimist.
  9. ProviderTestCase on üksiku ContentProvideri testimise klass.
  10. ServiceTestCase'i kasutatakse teenindusklasside testimiseks testimiskeskkonnas. Samuti toetab see teenuse olelusringi.
  11. SingeLauchActivityTestCase'i kasutatakse ühe tegevuse testimiseks InstrumentationTestCase'iga.
  12. ActivityUnitTestCase kasutatakse üksiku isoleeritud aktiivsuse testimiseks.
  13. ActivityInstrumentationTestCase2 laiendab klassi JUnit TestCase. See ühendab teid rakenduse sihtimiseks seadmetega. Selle klassi abil saate juurde pääseda rakenduse GUI-komponendile ja saata kasutajaliidese kasutajaliidese sündmuse (klahvivajutus või puutesündmus).

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

Testimise näide ActivityInstrumentationTestCase2

Robolektrilise testimise raamistik

Testimine Androidi testimisraamistiku abil seadme või emulaatoriga on keeruline. Katse ehitamine ja läbimine on aeglane ning nõuab palju arendustööd. Selle probleemi lahendamiseks on veel üks valik - Robolectric testing framework.

Robolektriline raamistik võimaldab teil Android-teste käivitada otse JVM-is, ilma et oleks vaja seadet või emulaatorit.

Robolectricu eelised

Robolektriliste testjuhtumite klassid

Robolektriku töö

  • Nagu eespool näidatud, saab Robolectric teha järgmisi toiminguid:
  • Registreeruge ja looge klass Shadow
  • Peatuge Android-klassi laadimisest
  • Kasutab javaassisti Android-klassi meetodite kehade tühistamiseks
  • Varjude sidumine Android-klassi
  • See võimaldab testitavat koodi käivitada ilma Android-keskkonnata.

Teised testimisraamistik

Lisaks ülalnimetatud raamistike testimisele on palju muid testimisraamistikke, näiteks:

  • Android Junit Report, Androidi kohandatud seadmete testimise jooksja, mis loob XML-aruandeid teiste tööriistadega integreerimiseks.
  • Expresso
  • Appium

Androidi testimise müüdid

Paljud ettevõtted töötavad välja android-testimisstrateegiad, mis põhinevad levinud eksiarvamustel. Selles jaotises uuritakse mõnda Androidi testimise populaarset müüti ja tegelikkust.

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

Alustame lihtsast näitest. Rakendus töötab suurepäraselt emulaatoritel, kuid mõnes reaalses seadmes kukub see käivitamisel kokku

Rakendus kukub reaalses seadmes käivitamise ajal kokku

Emulaatoritest ei piisa teie mobiilseadmete testimiseks. Peate oma rakendust testima reaalsetes seadmetes.

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

  • Erinevates seadmetes näeb teie rakendus välja erinev, kuna erinevatel seadmetel on erinev riistvara, ekraanisuurus, mälu jne. Peate oma rakendust testima erinevates seadmetes, operatsioonisüsteemi versioonides, operaatorvõrkudes ja asukohtades.

Müüt nr 3: piisab uurimuslikust testimisest vahetult enne käivitamist

  • Üldiselt kavandame kõigis testides testjuhtumid ja täidame need. Kuid uurimuslikus testimises tehakse testide kavandamine ja teostamine kõik koos.
  • Uurimistestimisel pole plaani ega ettevalmistust, siis testija teeks testid, mida ta tahab teha. Mõnda funktsiooni testitakse korduvalt, samas kui mõnda funktsiooni ei testita täielikult.

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

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

Seetõttu on oluline, et oleks olemas korralik android-testimise strateegia

Androidi testimise parimad tavad

  • Rakenduste arendajad peaksid testi kirjutamise ajal looma testjuhtumid
  • Kõik testjuhtumid tuleks koos lähtekoodiga salvestada versioonihalduses
  • Kasutage pidevat integreerimist ja käivitage testid iga kord, kui kood muudetakse
  • Vältige emulaatorite ja juurdunud seadmete kasutamist