Android APP-testhandledning med Automation Framework

Varför Android Testning?

Android är det största operativsystemet i världen. Samtidigt, Android är fragmenterad. det finns massor av enheter och Android versioner som din app måste vara kompatibel med.

Android Testning

Det spelar ingen roll hur mycket tid du investerar i design och implementering, misstag är oundvikliga och buggar kommer att dyka upp.

Android Testning

Android Teststrategi

En korrekt teststrategi för Android bör innehålla följande

  1. Enhetstest
  2. Integrationstest
  3. Operationellt test
  4. Systemtest

Android Teststrategi

Enhetstester

Enhetstest inkluderar uppsättningar av ett eller flera program som är utformade för att verifiera en atomär enhet av källkod, såsom en metod eller en klass.

Android plattformen kommer förintegrerad junit 3.0 ramverk. Det är ett ramverk med öppen källkod för automatisering Enhetstestning. Android Testing Framework är ett kraftfullt verktyg för utvecklare att skriva det effektiva enhetstestprogrammet.

Integration av Android och JUnit Ramverk
Integrationen av Android och JUnit ramverk

Ett tillägg till Unit Testing är User Interface (UI) tester. Dessa tester relaterar till UI-komponenter i din målapplikation. UI-tester säkerställer att din applikation returnerar rätt UI-utdata som svar på sekvensen av användaråtgärder på enheten.

Vanliga användargränssnittsåtgärder på applikation
Vanliga användargränssnittsåtgärder på applikationen

Det vanliga sättet att testa prestandagränssnittet på enheten är Android Instrumentering. Men detta har prestandaproblem. Ett av de bästa verktygen att utföra UI-testning på Android is En robot.

Integrationstester

In Integrationstestning, alla enhetstestade moduler, kombineras och verifieras. I Android, involverar integrationstester ofta att man kontrollerar integration medAndroid komponenter som Servicetestning, Aktivitetstestning, Content Provider-testning, etc

Integrationstest
Typer av integrationstest på Android

Det finns många testramar som används för att utföra integrationstest för Android som Troyd, Robolectric, Robotium.

Operationella tester

  • Operationella kallas även funktionella tester eller acceptanstest. De är tester på hög nivå utformade för att kontrollera tillämpningens fullständighet och korrekthet.
  • In Android, FitNesse är ett ramverk med öppen källkod som gör det enkelt att utföra operativa tester för målapplikationer.

Systemtester

In Kravhantering systemet testas i sin helhet och samspelet mellan komponenter, mjukvara och hårdvara kontrolleras.

In Android, Systemtestning inkluderar normalt

  • GUI-tester
  • Användbarhetstester
  • Prestandatester
  • Stresstester

I listan ovan, Prestandatester ges mer fokus. Du kan använda verktyg som Traceview att utföra prestationstest på Android .Det här verktyget kan hjälpa dig att felsöka din applikation och profilera dess prestanda.

Automatiserad ANDROID-TEST

Eftersom Android är fragmenterat är det nödvändigt att testa på en mängd olika enheter. Men detta kommer också att kosta dig pengar. Automatiserad Android Testning kan hjälpa till att minska kostnaderna

Fördelar med automatiserad Android-testning

  • Minska tiden för att utföra testfall
  • Öka produktiviteten i din utvecklingsprocess
  • Tidig buggidentifiering, spara kostnader på underhåll av programvara
  • Hittade och fixar snabbt buggar vid implementering
  • Säkerställa kvaliteten på programvaran

Vi kommer att studera följande 2 ramar

  • Android Testramverk
  • Ramverk för roboelektrisk testning

Android ramverk för testning

Ett av standardtestramarna för Android ansökan är Android ramverk för testning. Det är ett kraftfullt och lättanvänt testramverk som är väl integrerat med Android SDK-verktyg.

Android Testramverk
Android ramverk för testning Architecture
  1. Ansökningspaket är din målapplikation som måste testas
  2. InstrumentationTestRunner är Testfall löpare som exekverar testfall på målapplikationen. Det inkluderar:

2) Testverktyg: Ett SDK-verktyg för byggtest. De är integrerade i Eclipse IDE eller kör som kommandorad.

2b) MonkeyRunner: Ett verktyg som tillhandahåller API:er för att skriva program som styr en Android enhet eller emulator utanför Android koda.

  1. Testpaket är organiserade i testprojekt. Det här paketet följer namnkonventionen. Om applikationen som testas har paketnamnet "com.mydomain.myapp" bör testpaketet vara "com.mydomain.myapp.test". Testpaketet innehåller 2 objekt enligt nedan:

3a) Testfallsklasser: inkluderar testmetoder som ska köras på målapplikationen.

3b) Mock-objekt: inkluderar mock-data som kommer att användas som exempelindata för testfall.

Android Testfallsklasser

Android Testfallsklasser
AndroidTestCase klassdiagram
  1. Testfall innefattar JUnit metoder att köra JUnit test
  2. Test svit används för att köra uppsättning testfall
  3. InstrumentationTestSuite är en TestSuite som injicerar instrumentering i InstrumentationTestCase innan de körs.
  4. InstrumentationTestRunner är testfallslöparen som exekverar testfall på målapplikationen.
  5. AndroidTestfall sträcker JUnit Testfall. Den innehåller metoder för att komma åt resurser som Activity Context.
  6. ApplicationTestCase verifierar applikationsklasserna i en kontrollerad miljö.
  7. InstrumentationTestCase verifierar en viss funktion eller beteende hos målapplikationen, t.ex. verifierar applikationens användargränssnitt.
  8. ActivityTestCase är basklass som stöder testning av applikationsaktiviteter.
  9. ProviderTestCase är klass för att testa en enda ContentProvider.
  10. ServiceTestCase används för att testa serviceklasser i testmiljö. Det stöder också tjänstens livscykel.
  11. SingeLauchActivityTestCase används för att testa enstaka aktivitet med ett InstrumentationTestCase.
  12. ActivityUnitTestCase används för att testa enskild isolerad aktivitet.
  13. ActivityInstrumentationTestCase2 förlänger JUnit TestCase-klass. Den ansluter dig till målapplikationen med instrumentering. Med den här klassen kan du komma åt programmets GUI-komponent och skicka UI-händelse (tangenttryckning eller pekhändelse) till UI.

Nedan är ett exempel på ActivityInstrumentationTestCase. Det verifierar UI-funktionen för Calculator-applikationen, kontrollera att UI-utgångarna är korrekta.

ActivityInstrumentationTestCase2 Testning
ActivityInstrumentationTestCase2 testexempel

Ramverk för roboelektrisk testning

Testa med hjälp av Android Det är svårt att testa ramverk med enhet eller emulator. Att bygga och köra test är långsamt och kräver mycket utvecklingsansträngning. För att lösa det här problemet finns det ett annat val – Roboelektrisk ramverk för testning.

Robolectric ramverk låter dig springa Android tester direkt på JVM utan behovet av en enhet eller en emulator.

Avancerade funktioner i Robolectric
Avancerade funktioner i Robolectric

Klasser för roboelektriska testfall

Operationen av Robolectric
Operationen av Robolectric
  • Som visas ovan kan Robolectric utföra följande åtgärder:
  • Registrera dig och skapa en Shadow-klass
  • Avlyssna lastningen av Android klass
  • Använder javaassist för att åsidosätta metodkropparna för Android klass
  • Bind Shadow-objekt till Android klass
  • Detta gör att koden som testas kan köras utan Android miljö.

Andra testar ramverk

Förutom testramar som nämndes ovan, finns det många andra testramar som:

Myter om Android Testning

Många företag utvecklar Android Testning strategier som bygger på vanliga missuppfattningar. Detta avsnitt undersöker några populära myter och realiteter Android testning.

Myt #1:Allt Android enheter är desamma... test på emulatorer räcker

Låt oss börja med ett enkelt exempel. En applikation fungerar perfekt på emulatorer men på vissa riktiga enheter kraschar den under körning

Appen kraschar under körning på riktig enhet
Applikationen kraschar under körning på riktig enhet

Emulatorer är inte tillräckligt för ditt mobiltest. Du måste testa din app på riktiga enheter.

Myt #2: Det räcker att testa på några vanliga enheter

  • På olika enheter ser din applikation olika ut eftersom olika enheter har olika hårdvara, skärmstorlekar, minne etc. Du måste testa din applikation på olika enheter, OS-versioner, operatörsnätverk och platser.

Myt #3: Det räcker med utforskande tester precis innan lansering

  • I allmänhet i all testning designar vi testfallen och utför dem sedan. Men i Exploratory testing, testdesign och utförande kommer alla att göras tillsammans.
  • I utforskande tester finns det ingen plan och inga förberedelser, då testaren skulle göra tester som han vill göra. Vissa funktioner kommer att testas upprepade gånger, medan vissa funktioner inte kommer att testas helt och hållet.

Myt #4: Om det finns några buggar i applikationen kommer användarna att förstå

  • Om applikationen inte fungerar och har buggar avinstallerar användarna appen
  • Kvalitetsproblem är den första orsaken till dålig recension i Google Play. Det påverkar ditt rykte och du förlorar kundens förtroende.

Därför är det viktigt att ha en ordentlig android-teststrategi på plats

Bästa metoder inom Android Testning

  • Applikationsutvecklare bör skapa testfallen samtidigt när de skriver koden
  • Alla testfall bör lagras i versionskontroll tillsammans med källkod
  • Använd kontinuerlig integration och kör tester varje gång koden ändras
  • Undvik att använda emulatorer och rotade enheter