Android APP tesztelési útmutató automatizálási keretrendszerrel

Tartalomjegyzék:

Anonim

Miért Android Testing?

Az Android a legnagyobb operációs rendszer a világon. Ugyanakkor az Android töredezett. rengeteg eszköz és Android verzió van, amelyekkel alkalmazásodnak kompatibilisnek kell lennie.

Nem számít, mennyi időt fordít a tervezésre és a megvalósításra, a hibák elkerülhetetlenek, és hibák jelennek meg.

Ebben az oktatóanyagban megtanulja-

  • Miért Android Testing?
  • Android tesztelési stratégia
    • Egységvizsgálatok
    • Integrációs tesztek
    • Működési tesztek
    • Rendszertesztek
  • Automatizált android teszt
    • Android tesztelési keretrendszer
    • Robolektromos tesztelési keretrendszer
  • Az Android tesztelésének mítoszai
  • Az Android-tesztelés bevált módszerei

Android tesztelési stratégia

A helyes android tesztelési stratégiának a következőket kell tartalmaznia

  1. Egységteszt
  2. Integrációs teszt
  3. Működési teszt
  4. Rendszer teszt

Egységvizsgálatok

Az egység tesztek egy vagy több program készletét tartalmazzák, amelyek célja a forráskód atomi egységének, például egy módszer vagy egy osztály, ellenőrzése.

Az Android platform előre integrált Junit 3.0 keretrendszerrel rendelkezik. Nyílt forráskódú keretrendszer az egység tesztelésének automatizálásához. Az Android Testing Framework hatékony eszköz a fejlesztők számára, hogy megírják a hatékony egységteszt programot.

Az Android és a JUnit keretrendszer integrálása

Az egység tesztelése kiegészíti a felhasználói felület (UI) teszteket. Ezek a tesztek a célalkalmazás felhasználói felületének összetevőivel kapcsolatosak. A felhasználói felület tesztjei biztosítják, hogy az alkalmazás a megfelelő felhasználói felület kimenetet adja vissza, válaszul az eszköz felhasználói műveleteinek sorrendjére.

Gyakori felhasználói felhasználói felület műveletek az alkalmazáson

Az eszköz UI-tesztjeinek általános módja az Android Instrumentation. De ennek teljesítményproblémái vannak. A felhasználói felület tesztelésének egyik legjobb eszköze az Android-on a Robotium.

Integrációs tesztek

Az integrációs tesztelés során az összes egység által tesztelt modult egyesítik és ellenőrzik. Androidban az integrációs tesztek gyakran magukba foglalják az integráció ellenőrzését az Android-összetevőkkel, például a szolgáltatás tesztelésével, az aktivitás tesztelésével, a tartalomszolgáltató tesztelésével stb.

Az integrációs teszt típusai Androidon

Számos tesztelési keretrendszert használnak az Android integrációs tesztjének elvégzésére, mint például a Troyd, Robolectric, Robotium.

Működési tesztek

  • Az operatív funkciókat funkcionális teszteknek vagy elfogadási teszteknek is nevezik. Ezek magas szintű tesztek, amelyek célja az alkalmazás teljességének és helyességének ellenőrzése.
  • Az Androidban a FitNesse egy nyílt forráskódú keretrendszer, amely megkönnyíti a célalkalmazás operatív tesztjeinek elvégzését.

Rendszertesztek

A Rendszer tesztelés során a rendszert teljes egészében tesztelik, és ellenőrzik az alkatrészek, a szoftver és a hardver kölcsönhatását.

Az Android rendszerben a Rendszertesztelés általában magában foglalja

  • GUI tesztek
  • Használhatósági tesztek
  • Teljesítményvizsgálatok
  • Stressz tesztek

A fenti listában a Performance Testing kap nagyobb hangsúlyt. Olyan eszközöket használhat, mint a Traceview, az Android-on történő teljesítményvizsgálat elvégzéséhez. Ez az eszköz segíthet az alkalmazás hibakeresésében és a teljesítményének profiljában.

Automatizált android teszt

Mivel az android széttöredezett, sok eszközön kell tesztelni. De ez pénzbe is kerül. Az automatizált Android-tesztelés segíthet a költségek csökkentésében

Az automatizált androidos tesztelés előnyei

  • Csökkentse a tesztesetek végrehajtásának idejét
  • Növelje fejlesztési folyamatának termelékenységét
  • Korai hibajavítás, költségmegtakarítás a szoftverfenntartás terén
  • Gyorsan megtalálja és kijavítja a hibákat a megvalósítás során
  • Biztosítsa a szoftver minőségét

Tanulmányozzuk a következő 2 keretet

  • Android tesztelési keretrendszer
  • Robolektromos tesztelési keretrendszer

Android tesztelési keretrendszer

Az Android alkalmazás egyik standard tesztelési keretrendszere az Android tesztelési keretrendszer . Ez egy hatékony és könnyen használható tesztelési keretrendszer, amely jól integrálódik az Android SDK eszközeivel.

Android tesztelési keretrendszer

  1. Az alkalmazáscsomag az a célalkalmazás, amelyet tesztelni kell
  2. Az InstrumentationTestRunner az a teszteset-futó, amely tesztesetet hajt végre a célalkalmazásban. Magába foglalja:

2a) Teszteszközök: SDK eszközök az épület teszteléséhez. Be vannak építve az Eclipse IDE-be, vagy parancssorként futnak.

2b) MonkeyRunner: Olyan eszköz, amely API-kat biztosít a programíráshoz, amely egy Android-eszközt vagy emulátort vezérel az Android-kódon kívül.

  1. A tesztcsomag tesztprojektekké szerveződik. Ez a csomag a névadási szokásokat követi. Ha a tesztelt alkalmazás csomagneve "com.mydomain.myapp", akkor a Test csomagnak "com.mydomain.myapp.test" -nek kell lennie. A tesztcsomag 2 objektumot tartalmaz az alábbiak szerint:

3a) Teszteset-osztályok: tartalmazzák a célalkalmazáson végrehajtandó vizsgálati módszereket.

3b) Mintás objektumok: olyan áladatokat tartalmaz, amelyeket mintabevitelként használunk a tesztesetekhez.

Android teszt esetek osztályai

AndroidTestCase osztálydiagram

  1. A TestCase JUnit módszereket tartalmaz a JUnit teszt futtatásához
  2. A TestSuite tesztesetek futtatására szolgál
  3. Az InstrumentationTestSuite egy olyan TestSuite, amely az InstrumentationTestCase eszközbe fecskendezi őket, mielőtt futtatná őket.
  4. Az InstrumentationTestRunner az a teszteset-futó, amely tesztesetet hajt végre a célalkalmazásban.
  5. Az AndroidTestCase kiterjeszti a JUnit TestCase alkalmazást. Az erőforrások, például az Activity Context elérésének módszereit tartalmazza.
  6. Az ApplicationTestCase ellenőrzi az alkalmazásosztályokat egy ellenőrzött környezetben.
  7. Az InstrumentationTestCase ellenőrzi a célalkalmazás adott tulajdonságát vagy viselkedését, például ellenőrzi az alkalmazás felhasználói felületének kimenetét.
  8. Az ActivityTestCase egy alaposztály, amely támogatja az alkalmazási tevékenységek tesztelését.
  9. A ProviderTestCase az egyetlen ContentProvider tesztelésének osztálya.
  10. A ServiceTestCase szolgáltatási osztályok tesztelésére szolgál tesztelési környezetben. Támogatja a Service életciklusát is.
  11. A SingeLauchActivityTestCase az egyetlen tevékenység tesztelésére szolgál egy InstrumentationTestCase segítségével.
  12. Az ActivityUnitTestCase egyetlen izolált aktivitás tesztelésére szolgál.
  13. Az ActivityInstrumentationTestCase2 kiterjeszti a JUnit TestCase osztályt. Ez összeköti Önt az alkalmazás célzásával a műszerekkel. Ezzel az osztállyal elérheti az alkalmazás grafikus felhasználói felületét, és elküldheti a kezelőfelület eseményét (billentyűleütés vagy érintésesemény) a felhasználói felületre.

Az alábbiakban bemutatunk egy példát az ActivityInstrumentationTestCase fájlra. Ellenőrzi a Számológép alkalmazás felhasználói felületének működését, ellenőrzi a felhasználói felület kimeneteinek helyességét.

ActivityInstrumentationTestCase2 tesztelési példa

Robolektromos tesztelési keretrendszer

Tesztelés Android tesztelési keretrendszerrel eszközzel vagy emulátorral nehéz. A teszt építése és futtatása lassú, és sok fejlesztési erőfeszítést igényel. A probléma megoldására van egy másik választás - Robolectric testing framework.

Robolectric keret lehetővé teszi, hogy futtatni Android tesztek közvetlenül a JVM nélkül , hogy szükség van egy eszköz vagy egy emulátor.

A Robolectric előnyei

Robolektromos teszteset osztályok

Robolectric működése

  • Amint fent látható, a Robolectric a következő műveleteket hajthatja végre:
  • Regisztráljon és hozzon létre egy Árnyék osztályt
  • Felfogja az Android osztály betöltését
  • A javaassist segítségével felülbírálja az Android osztály metódusait
  • Árnyék objektum kötése az Android osztályhoz
  • Ez lehetővé teszi a tesztelt kód végrehajtását Android környezet nélkül.

Mások tesztelési keretrendszer

A fent említett keretrendszerek tesztelése mellett számos más tesztelési keretrendszer is létezik, például:

  • Az Android Junit Report, az Android számára készült egyedi műszer teszt futtató, amely XML jelentéseket állít elő más eszközökkel való integráció céljából.
  • Expresso
  • Appium

Az Android tesztelésének mítoszai

Sok vállalkozás olyan Android tesztelési stratégiákat fejleszt ki, amelyek általános tévhiteken alapulnak. Ez a szakasz az Android-tesztelés néhány népszerű mítoszát és valóságát vizsgálja.

1. mítosz: Minden androidos eszköz ugyanaz ... elég az emulátorokon végzett teszt

Kezdjük egy egyszerű példával. Egy alkalmazás tökéletesen működik az emulátorokon, de néhány valós eszközön a végrehajtás során összeomlik

Az alkalmazás összeomlik a valós eszközön történő végrehajtás során

Az emulátorok nem elegendőek a mobil teszteléséhez. Tesztelnie kell alkalmazását valós eszközökön.

2. mítosz: Elég a tesztelés néhány általános eszközön

  • Különböző eszközökön az alkalmazás másképp néz ki, mert a különböző eszközök hardvere, képernyőmérete, memóriája stb. Különböző eszközökön, operációs rendszer verziókon, szolgáltatói hálózatokon és helyeken kell tesztelni az alkalmazást.

3. mítosz: Elég az indító előtti feltáró teszt

  • Általában az összes tesztelés során megtervezzük a teszteseteket, majd végrehajtjuk azokat. De a feltáró tesztelés során a teszt tervezése és végrehajtása mind együtt fog történni.
  • Feltáró tesztelés során nincs terv és előkészítés, akkor a tesztelő elvégezné azokat a teszteket, amelyeket meg akar tenni. Egyes funkciókat többször tesztelnek, míg egyes funkciókat nem tesztelnek teljesen.

4. mítosz: Ha vannak hibák az alkalmazásban, a felhasználók megértik

  • Ha az alkalmazás nem működik, és hibákat tartalmaz, a felhasználók eltávolítják az alkalmazást
  • A minőségi problémák az első okok a rossz felülvizsgálatra a Google Playen. Ez hatással van a hírnevére, és elveszíti az ügyfél bizalmát.

Ezért elengedhetetlen a megfelelő android tesztelési stratégia megléte

Az Android-tesztelés bevált módszerei

  • Az alkalmazásfejlesztőknek a kódírás során egyidejűleg kell létrehozniuk a teszteseteket
  • Minden tesztesetet a verziókezelésben kell tárolni, a forráskóddal együtt
  • Használjon folyamatos integrációt és futtasson teszteket minden alkalommal, amikor a kód megváltozik
  • Kerülje az emulátorok és a gyökeres eszközök használatát