Android Handledning för apptestning med automatiseringsramverk
⚡ Smart sammanfattning
Android Apptestning verifierar en build över ett fragmenterat enhetslandskap och kombinerar enhets-, integrations-, drifts- och systemkontroller med automatiseringsramverk som körs antingen på en enhet eller direkt på JVM:n.
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 uppstå.
Android Teststrategi
En korrekt Android teststrategin bör inkludera följande
- Enhetstest
- Integrationstest
- Operationellt test
- Systemtest
Enhetstester
Enhetstester är uppsättningar program som är utformade för att verifiera en atomär enhet av källkod, till exempel en metod eller en klass.
Ocuco-landskapet Android plattformen är förintegrerad med JUnit 3.0-ramverket. Det är ett ramverk med öppen källkod för automatisering Enhetstestning, och det låter utvecklare skriva effektiva enhetstestprogram.
Ett tillägg till enhetstestning är användargränssnittstester (UI). De täcker UI-komponenterna i din målapplikation och säkerställer att den returnerar korrekt utdata för en sekvens av användaråtgärder på enheten.
Det vanliga sättet att utföra UI-tester på en enhet är Android Instrumentering. Men detta har prestandaproblem. Ett av de bästa verktygen att utföra UI-testning på Android is Robotium.
⚠️ Versionsnotering: JUnit 3 klasser som t.ex. InstrumentationTestCase föråldrades vid API 24; nuvarande projekt använder AndroidX-test, Espresso och UI Automator. Robotium har inte haft någon utgivning sedan 2016.
Integrationstester
In Integrationstestning, alla enhetstestade moduler kombineras och verifieras. Android Detta innebär ofta att kontrollera integrationen med komponenter som testning av tjänster, aktiviteter och innehållsleverantörer.
Många testramverk används för att utföra integrationstester för Android, såsom Troyd, Robolectric och Robotium.
Operationella tester
OperaFunktionstester, även kallade funktionstester eller acceptanstester, är högnivåtester som kontrollerar applikationens fullständighet och korrekthet.
In Android, FitNesse är ett ramverk med öppen källkod som gör det enkelt att köra operativa tester mot målapplikationen.
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 Tracidning att genomföra prestandatester på AndroidDet här verktyget kan hjälpa dig att felsöka din applikation och profilera dess prestanda. Tracgranskning är nu avskriven till förmån för CPU-profilerare.
Automatiserad Android Testning
As Android är fragmenterad, testning på många enheter är nödvändig, och det kostar pengar. Automatiserad Android Testning hjälper till att minska dessa kostnader.
Fördelar med automatisering 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 applikationerna är Android testramverket. Det är väl integrerat med Android SDK-verktyg, och dess arkitektur har tre delar.
- Applikationspaketet är din målapplikation som behöver testas.
- InstrumentationTestRunner är Testfall runner som kör testfall på målapplikationen. Den inkluderar:
- Testverktyg: SDK-verktyg för att bygga tester. De är integrerade i IDE:n eller körs från kommandoraden.
- MonkeyRunner: Ett verktyg som tillhandahåller API:er för att skriva program som styr en Android enhet eller emulator utanför Android koda.
- Testpaketet är organiserat i testprojekt och följer en namngivningskonvention. Om applikationen som testas har paketnamnet "com.mydomain.myapp" ska testpaketet vara "com.mydomain.myapp.test". Testpaketet innehåller två objekt:
- Testfallsklasser: inkludera testmetoder som ska köras på målapplikationen.
- Mock-objekt: inkludera mockdata som kommer att användas som exempelindata för testfall.
Android Testfallsklasser
- TestCase inkluderar JUnit metoder att köra JUnit test
- TestSuite används för att köra en uppsättning testfall
- InstrumentationTestSuite är en TestSuite som injicerar Instrumentation i InstrumentationTestCase innan den körs.
- InstrumentationTestRunner kör testfall på målapplikationen.
- AndroidTestCase utökar JUnit TestCase med metoder för att komma åt resurser som aktivitetskontext.
- ApplicationTestCase verifierar applikationsklasserna i en kontrollerad miljö.
- InstrumentationTestCase verifierar en viss funktion eller ett visst beteende, till exempel programmets användargränssnittsutdata.
- ActivityTestCase är en basklass som stöder testning av applikationsaktiviteter.
- ProviderTestCase är en klass för att testa en enda ContentProvider.
- ServiceTestCase testar serviceklasser i en testmiljö och stöder servicelivscykeln.
- SingleLaunchActivityTestCase används för att testa en enskild aktivitet med ett InstrumentationTestCase.
- AktivitetsenhetTestfall används för att testa enstaka isolerade aktivitet.
- AktivitetInstrumentTestfall2 förlänger JUnit TestCase-klassen och ansluter dig till målapplikationen med instrumentation, så att du kan komma åt GUI-komponenter och skicka UI-händelser som tangenttryckningar eller beröringar.
Nedan följer ett exempel på ActivityInstrumentationTestCase. Det verifierar UI-funktionen i en Calculator-applikation och kontrollerar att UI-utdata är korrekta.
Ramverk för roboelektrisk testning
Testning med hjälp av Android Att testa ramverket med en enhet eller emulator är svårt. Att bygga och köra tester är långsamt och kräver mycket utvecklingsarbete. För att åtgärda detta problem finns det ett annat alternativ: testramverket Robolectric.
Robolectric låter dig köra Android tester direkt på JVM utan behov av en enhet eller emulator.
Klasser för roboelektriska testfall
Robolectric kan utföra följande åtgärder:
- Registrera dig och skapa en Shadow-klass
- Avlyssna lastningen av Android klass
- du använder Javahjälpa till 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 en Android miljö.
Andra testramverk
Förutom de testramverk som nämns ovan finns det många andra, såsom:
- Android Junit Rapport, en anpassad instrumenteringstestlöpare för Android som genererar XML-rapporter för integration med andra verktyg.
- Espresso
- 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 nr 1: Alla Android enheterna är desamma, så det räcker med att testa på emulatorer
En applikation kan fungera perfekt på emulatorer, men krascha under körning på vissa riktiga enheter.
Emulatorer räcker inte för mobiltestning. Du måste testa din app på riktiga enheter.
Myt nr 2: Det räcker med att testa på vissa vanliga enheter
Din applikation ser olika ut mellan olika enheter eftersom hårdvara, skärmstorlekar och minne skiljer sig åt. Testa på en rad olika enheter, operativsystemversioner, operatörsnätverk och platser.
Myt nr 3: Det räcker med utforskande tester precis före lansering
- I de flesta tester designar vi testfall och kör dem sedan; i utforskande testning sker design och körning tillsammans.
- Det finns ingen plan eller förberedelse, så testaren kör vilka tester han vill. Vissa funktioner testas upprepade gånger, medan andra aldrig testas.
Myt nr 4: Om det finns några buggar i applikationen kommer användarna att förstå
- Om appen inte fungerar och har buggar avinstallerar användarna din app.
- Kvalitetsproblem är den första orsaken till dåliga recensioner Google Spela, skada ditt rykte och förlora kundernas 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 ska lagras i versionshantering, tillsammans med källkod
- Använd kontinuerlig integration och kör tester varje gång koden ändras
- Undvik att enbart förlita sig på emulatorer och rootade enheter; bekräfta resultaten på riktig hårdvara med en inspektör som t.ex. uiautomatorviewer





