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.
Det spelar ingen roll hur mycket tid du investerar i design och implementering, misstag är oundvikliga och buggar kommer att dyka upp.
Android Teststrategi
En korrekt teststrategi för Android bör innehålla följande
- Enhetstest
- Integrationstest
- Operationellt test
- Systemtest
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.
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.
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
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.
- Ansökningspaket är din målapplikation som måste testas
- 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.
- 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
- Testfall innefattar JUnit metoder att köra JUnit test
- Test svit används för att köra uppsättning testfall
- InstrumentationTestSuite är en TestSuite som injicerar instrumentering i InstrumentationTestCase innan de körs.
- InstrumentationTestRunner är testfallslöparen som exekverar testfall på målapplikationen.
- AndroidTestfall sträcker JUnit Testfall. Den innehåller metoder för att komma åt resurser som Activity Context.
- ApplicationTestCase verifierar applikationsklasserna i en kontrollerad miljö.
- InstrumentationTestCase verifierar en viss funktion eller beteende hos målapplikationen, t.ex. verifierar applikationens användargränssnitt.
- ActivityTestCase är basklass som stöder testning av applikationsaktiviteter.
- ProviderTestCase är klass för att testa en enda ContentProvider.
- ServiceTestCase används för att testa serviceklasser i testmiljö. Det stöder också tjänstens livscykel.
- SingeLauchActivityTestCase används för att testa enstaka aktivitet med ett InstrumentationTestCase.
- ActivityUnitTestCase används för att testa enskild isolerad aktivitet.
- 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.
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.
Klasser för roboelektriska testfall
- 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:
- Android Junit Rapport, en anpassad instrumenteringstestlöpare för Android som genererar XML-rapporter för integration med andra verktyg.
- Express
- Appium
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
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