android app testing tutorial
Grundläggande kunskapssamling innan du testar Android-appar:
Som själva titeln antyder, kommer vi i denna handledning att diskutera mer om Android-testprocessen.
Men innan jag går in i de olika detaljerna i testprocessen för Android vill jag ställa några frågor.
Äger du en mobiltelefon?
Hur dum är den frågan nu! Naturligtvis gör vi alla det. Alla har en mobiltelefon. Mobiltelefoner har blivit en grundläggande nödvändighet för mänsklig existens nuförtiden.
Kan du berätta för mig operativsystemet som finns på din telefon?
Om du köpte din telefon mellan 2014-16 är chansen att din telefon körs på Android cirka 80-85%.
Vad du kommer att lära dig:
- Tillväxt av Android
- Android-applikationsintroduktion
- 'Att göra' -listan innan testprocessen startar
- Testtyper för mobilappar
- Bästa praxis i Android App Testing
- Android Testing Framework
- Slutsats
- Rekommenderad läsning
Tillväxt av Android
Nedanstående statistik beskriver mer om tillväxten av Android på ett lättförståeligt sätt.
- Tillbaka 2009 var Android nybörjare och utgjorde endast 3,9% av den totala marknaden.
- Den största bidragsgivaren var då Symbian OS med ett jättestort antal 47% (Gyllene dagar av Nokia).
- Den trenden började förändras genom åren och Android har nu nått 85,2% 2016.
( bildkälla )
- Ovanstående siffror gäller endast mobiltelefoner. Android OS har också stor inverkan i surfplattbranschen. Från 4,4% marknadsandel 2011 till 35,7% 2015 talar om intresset som människor har utvecklat för Android-drivna surfplattor.
( bildkälla )
- Google Play-butiken har också sett en snabb ökning av antalet nedladdningar. Från 2010 till 2016 har siffrorna ökat från 1 miljard nedladdningar per månad till 65 miljarder nedladdningar per månad.
- Appnedladdningarna påverkas också kraftigt av de låga priserna (Avg.: 0,06 $ / app) för Android-appar jämfört med iOS-appar.
Varför tog jag dig bara igenom alla dessa siffror?
Det var bara för att göra dig medveten om hur enorm Android har vuxit, hur knepig apputvecklingen har blivit och hur mycket marknaden detta operativsystem har fångat under det senaste decenniet.
Varje webbplats, Windows-app och Mac-app har ett Android-syskon nu. Alla går för att utveckla en app för Android så snart de planerar att utveckla en webbplats / Windows-app. Det har nu blivit nödvändigt, eftersom kunderna också börjat föredra mobilappar framför datorappar eller webbplatser under de senaste åren.
Några av de appar som ofta används i våra dagliga aktiviteter är Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp etc.
Anledningen till den kraftiga ökningen på Android-marknaden är att:
- Det är ett öppet system, därför är det lätt att anpassa, lätt att lära sig och till och med apputveckling är lättare.
- Att publicera en app i Google Play-butiken är ganska lätt jämfört med andra spelbutiker.
- Det finns flera tillverkare på marknaden för Android-telefoner som Sony, HTC, Samsung, Motorola etc.
- Det finns ett stort antal funktioner på Android som DualSIM, microSD, avtagbart batteri etc, vilket är en extra fördel för den.
- Priserna på Android-telefonerna är inte för höga och det är överkomligt etc.
Tillsammans med utvecklingskraven för Android-appar har det också ökat kravet på testare som är kunniga i Android-test.
Innan du testar någon Android-byggd applikation måste du göra mycket läxor som testare. Det första du ska göra är att studera operativsystemet och dess historia. Om du inte känner till operativsystemet kan du inte testa appen mot de olika versionerna. Den grundläggande funktionaliteten i OS-versionen, UI, GPS, stöd för nätverkstyp, batteritid etc. är några av de viktiga aspekterna som påverkar en app.
Med Android är det inte bara operativsystemet utan överflödet av enheter som också behöver en studie.
Ett stort antal enheter finns tillgängliga på marknaden, innan du slutför och fryser din testbädd måste du ta reda på målgruppens enhetsandel. De olika enheterna som erbjuder olika funktioner som DualSIM, dubbel kamera, skärmupplösning, teman etc, påverkar en app och de måste testas.
Därför är det mycket viktigt för en kvalitetssäkring att samla en omfattande kunskap om hela Android-ekosystemet.
Android-applikationsintroduktion
Det finns olika testmetoder som följs av att framgångsrikt certifiera en Android-app.
En typisk Android-apparkitektur skulle likna diagrammet nedan:
bästa mjukvaran för att städa upp pc
Baserat på figuren ovan finns det två möjligheter för en app:
1) Mobilapp för webbapplikationen: Det kan vara möjligt att kunden har en webbapp och vill skapa en mobilapp för samma. Amazon, Jabong, Myntra etc. gjorde samma sak, och när mobilapparna började skapa en boom på marknaden insåg dessa kommersiella företag att snart kommer människor att flytta från webbappar till mobilappar.
2) Mobilapp som en separat affärsenhet: Jag testade en liknande logistikapp för att öka affären skapade den en separat app för sina förare för att underlätta en smidig leverans och tog bort pappersarbetet.
Förarna hade appen installerad på sina telefoner för att flytta sändningen till olika leveransstadier och deras motsvarande status, och leveransuppdateringar återspeglades i deras befintliga webbapp.
Andra sådana Exempel där mobilapp är en separat enhet är WhatsApp, hälsospårningsappar som S Health etc.
'Att göra' -listan innan testprocessen startar
Till skillnad från en normal testcykel, för den allra första utgåvan av en mobilapp, finns det några artiklar som behöver lite extra forskning och planering för en lyckad leverans av appen.
Följande är några av de aktiviteter som är viktiga för en kvalitetsbedömning att utföra innan den faktiska testningen startar:
# 1) Forskning om operativsystem och enheter:
Förutom att förstå appkravet måste du också förstå effekterna av de olika operativsystemversionerna och enhetsmodellerna. Du måste skapa testfall eller scenarier med operativsystem och enhetsmodeller.
#två) Testbädd:
Till skillnad från stationära, webb- och iOS-appar är testbäddsskapandet för Android-appar mycket svårt på grund av det öppna Android-systemet. Beslutet bör tas efter diskussion med BA, utvecklare och produktägare för att hitta målgruppen.
# 3) Testplan:
Eftersom det är den första versionen bör en godkänd plan med godkänd testbädd, testtyper etc. finnas på plats. Om det krävs en separat tid för att undersöka funktionaliteter eller affärsregler eller om testningen kommer att bli knepig etc. bör allt täckas i planen.
# 4) Automationsverktyg:
Automationsverktygen som krävs för mobilappar skiljer sig mycket från skrivbords- eller webbapps. Därför kan du behöva spendera extra tid och ansträngning för att lära dig verktyget. Den tid och ansträngning som krävs för samma ska godkännas av produktägaren eller kunden.
# 5) Testtekniker eller metoder:
Till skillnad från konventionella tester som vi normalt gör är det få tester som är mycket specifika för mobilappar. Nämligen fälttest, GPS-test, bildtagningstest osv. Dessa måste dokumenteras i testfallet tillsammans med hur denna typ kommer att testas.
Testtyper för mobilappar
Följande typer av tester utförs för att certifiera en Android-applikation:
1) Funktionell testning:
Testning uppnås normalt med testflöden som initierats av användargränssnittet. Inte bara testas flödet av ett användningsfall utan även de olika affärsreglerna testas. Testning görs genom att certifiera kraven. dvs om applikationen fungerar baserat på kraven.
Låt oss ta Exempel av Zomato-appen.
När du startar appen, baserat på platsen, visas listan över restauranger. Nu som QA måste du testa listan över restauranger.
Detta är funktionstestning och här testar du funktioner som:
- Kontrollera om restaurangkorten visas med platsen.
- Kontrollera om de visade restaurangerna ligger inom det angivna området (km) för platsen.
- Kontrollera om granskningsantalet för varje kort är synkroniserat med de givna recensionerna.
- Kontrollera om du lägger till en ny restaurang för en plats återspeglas i listan.
- Kontrollera om restaurangerna är listade baserat på filtreringsregeln för Zomato etc.
2) Testning av Android UI:
Detta är en användarcentrerad testning av applikationen. I denna testfas testas objekt som synlighet av text på olika skärmar i appen, interaktiva meddelanden, datajustering, appens utseende och känsla för olika skärmar, storlek på fält etc under detta.
För samma ovanstående exempel på Zomato skulle UI-testerna vara:
- Kontrollera om korten visas korrekt i linje med mobilens skärmstorlek.
- Kontrollera om restaurangens bild visas som förväntat.
- Kontrollera om kortuppgifterna, restaurangens betyg, typ av mat, adress osv. Visas korrekt justerade.
- Kontrollera om rullningen i listan är felfri och att korten inte visas feljusterade när en lång kortlista rullas etc.
3) Kompatibilitetstest:
Denna testning görs mestadels i form av två matriser av OS Vs app och Device model Vs app. Vanligtvis tillhandahålls en lista över operativsystem (och ibland enheter) som stöds av produktägaren eller kunden.
Behovet av denna testning är:
- När ett operativsystem som Android tas med i beräkningen, finns det 7 basversioner som försummar antalet patchversioner / EP: er.
- Kan du gissa vilka typer av Android-enheter som för närvarande fungerar över hela världen? 1000? 2000? Fel! Det rätta svaret är 24000. Det finns 24000 typer av unika Android-enheter som är närvarande och aktiva i världen.
- Med variationer som dessa spelar kompatibilitetstest en viktig roll för att certifiera en Android-app.
- Vi behöver inte bara validera operativsystemet och typen av enheten utan också validera några andra funktioner som faller under kompatibilitetstest. Funktionerna inkluderar:
- Skärmstorlek
- Skärmupplösning
- Nätverksanslutning
4) Gränssnitttestning:
Med andra ord kallas det också som integrationstestning. Denna testning görs efter att alla modulerna i appen har utvecklats helt, testats individuellt och alla fel har fixats.
Gränssnitttestning inkluderar tester som en fullständig testning av app till slut, interaktion med andra appar som Maps, sociala appar etc, användning av mikrofon för att skriva in text, användning av kamera för att skanna en streckkod eller för att ta en bild etc.
Återigen med tanke på Zomato skulle integrationstesterna vara som:
- Kontrollera om användaren kan boka bord för en restaurang.
- Kontrollera om användaren kan se menyn och beställa mat online.
- Kontrollera om användaren kan använda en PayTM-kupong när han beställer mat.
- Kontrollera om användaren kan se platsen för restaurangen på Google Maps.
- Kontrollera om användaren kan öppna telefonväljaren och ringa restaurangen etc.
5) Nätverksprovning:
De viktigaste funktionerna i Network Testing inkluderar:
- Appen bör prata med mellantjänsten för att genomföra processen.
- Under denna testning testas begäran / svar på / från tjänsten för olika förhållanden.
- Detta test görs främst för att verifiera svarstiden under vilken aktiviteten utförs som att uppdatera data efter synkronisering eller ladda data efter inloggning etc.
- Detta görs för både stark wifi-anslutning och mobildatanätverket.
- Detta är en intern testning.
6) Prestandatestning:
Applikationens prestanda under vissa speciella förhållanden kontrolleras.
Dessa villkor inkluderar:
- Lågt minne i enheten.
- Batteriet är extremt lågt.
- Dålig / dålig nätverksmottagning.
Prestanda testas i princip från två ändar, applikationsänden och applikationsserversidan
7) Installationstest:
Det finns två typer av appar på en Android-enhet, dvs. förinstallerade applikationer och applikationer som installeras senare av användaren.
För båda ovanstående måste installationstester utföras. Detta för att säkerställa en smidig installation av applikationen utan att hamna i fel, delvis installation etc.
Testning av uppgradering och avinstallation utförs som en del av installationstestningen.
8) Säkerhetstestning:
Sekretess och säkerhet är de två viktigaste kraven för en app. Men inom bank, sjukvård blir detta det primära kravet.
manuella testintervjuer och svar för erfarna
Testning av dataflödet för kryptering och dekrypteringsmekanism ska testas i denna fas. Tillgång till lagrad data testas också i denna fas.
9) Fältprovning:
Fälttestning görs specifikt för mobildatanätverket och inte internt utan genom att gå ut och använda appen som en vanlig användare. Denna testning görs ”bara” efter att hela appen har utvecklats, testats och återtagits (för buggar och testfall).
Det görs i grunden för att verifiera appens beteende när telefonen har en 2G- eller 3G-anslutning. Fälttestning verifierar om appen kraschar under långsam nätverksanslutning eller om det tar för lång tid att ladda informationen.
Du kan läsa mer om fältprovning i vår artikel “Betydelsen och nödvändigheten av fälttestning för mobilapplikationer”
10) Avbrottstest:
Denna typ av testning är också känd som Offline Scenario Verification. Villkor där kommunikationen bryts i mitten kallas offline-villkor.
Några av villkoren där avbrott i ett nätverk kan testas är följande:
- Ta bort datakabel under dataöverföringsprocessen.
- Nätavbrott under transaktionsbokningsfasen.
- Nätverksåterställning efter ett avbrott.
- Ta bort batteriet eller slå på / av när det är i transaktionsfasen.
Bästa praxis i Android App Testing
Det finns vissa faktorer som ska övervägas när man lägger en strategi för mobilapptestning.
Dom är:
1) Enhetsval:
- Detta är ett av de mest kritiska stegen innan du börjar testa Android-applikationsprocessen.
- Bestäm vilka enheter som ska beaktas vid testprocessen.
- Valet ska göras för att maximera antalet målkunder.
- Faktorer som OS-version, skärmupplösningar och formfaktorer (surfplatta eller smarta telefoner) spelar en viktig roll i urvalsfasen.
- Om det behövs kan även hjälp från emulatorer tas med i beräkningen.
- Men emulatorer bör inte ersätta testprocessen för fysisk enhet.
- Enhetsemulatorer är kostnadseffektiva och de är till nytta under den inledande utvecklingsfasen.
- Men för att testa verkliga scenarier är fysiska enheter ett måste. Både emulatorer och fysiska enheter ska användas på ett balanserat sätt för ett optimerat resultat.
2) Betatestning av applikationen:
- Betatestning är mycket effektivt vid testning med verkliga användare, verkliga enheter, faktiska nätverk och applikationer installerade i en bred geografi.
- Detta ger en tydlig bild av nätverkstätheten, nätverksvariationer (Wi-Fi, 4G, 3G och 2G) och påverkan på applikationen.
- Betatestning i den verkliga världen är av sitt slag och kan inte replikeras i en kontrollerad miljö.
3) Anslutning:
- Normalt är Android-applikationer anslutna till internet för olika krav.
- Anslutningen på olika enheter spelar en nyckelroll för att sätta upp strategin.
- För det mesta styrs anslutningen av simuleringsprogramvara som hjälper till att reglera nätverkshastighet, latens och begränsad anslutning under testning.
- Det sägs att testning under riktiga nätverksanslutningar alltid är tillrådligt för realtidsresultat / data.
4) Manuell eller automatiserad testning:
- Även om automatiseringstestning tar mycket tid för första körningen, kommer det till nytta när testningen måste upprepas. Detta minskar också den totala tidsperioden för testning under olika utvecklingsstadier.
- Android Automation bör klubbas med manuell testning när repetitionstestningsupprepningen är hög i applikationsutvecklingsfasen, kompatibilitetstestning måste göras för samma applikation på olika OS-versioner, bakåtkompatibilitetskontroller etc.
Android Testing Framework
Det finns en handfull Android-testramar som är tillgängliga.
I denna handledning kommer vi att diskutera 3 olika typer av mest använda ramar:
- Robotium testramverk
- Robo-elektrisk testram
- Appium Test Framework
1) Robotium Test Framework:
- Detta ramverk används för att skriva sofistikerade och robusta testboxar för svart låda för Android-applikationer.
- Den stöder både inhemska såväl som hybridklienter.
- Funktioner, systemtestfall och användaracceptansfall kan skrivas med hjälp av detta ramverk.
- Robotium stöder Android 1.6 och senare och stöder även dialoger, menyer, aktiviteter etc.
- Detta ramverk hanterar flera Android-aktiviteter automatiskt.
- En handfull metoder ges som en del av Robotium för interaktion med olika grafiska komponenter i Android-applikationen. Några av dem är som nedan:
- gå tillbaka();
- getButton ();
- isRadioButtonChecked ();
- searchText (“User”);
- klicka på knappen (“Logout”);
2) Robo-elektrisk testram:
- Detta ramverk hjälper till att testa Android-applikationer på JVM baserat på JUnit4-ramverket.
- Den använder Android API.
- Detta hjälper till att skriva testfall och köra dem på JVM.
- Under detta ersätts alla klasser med något som kallas skuggobjekt.
- Närhelst en metod implementeras skickar Robo-electric internt samtalet till skuggobjektet.
- Baserat på implementeringen returneras ett värde om en metod implementeras av skuggobjekt. Annars returneras NULL.
- På grund av skuggobjekten och JVM blir körningen snabbare.
3) Testramar-epoker;
- Detta ramverk fungerar för native, hybrid- och mobilappar för Android-enheter.
- Appium är gratis att använda verktyget.
- Single API fungerar för både Android och iOS-plattformen. Detta är en av ramarna som stöder testning på flera plattformar.
- Den använder Selenium Web Driver för att interagera med Android-applikationen.
- Appium stöder manusskrivning med många programmeringsspråk som Java, C #, Python, PHP, Ruby etc.
Slutsats
Android-applikationsautomatisering kan klubbas med manuell enligt behov. Om Androind Automation-test läggs till i strategin är det dock en stor uppgift att välja rätt verktyg. När du väljer automatiseringsverktygsfaktorer som stöd för flera plattformar, testflöde, pris för verktyget, service / support etc. bör beaktas.
Det finns flera utmaningar med att testa Android-applikationer. Det finns olika faktorer att ta hänsyn till innan Android-testprocessen verkligen kan implementeras, men när det är gjort blir detta en mycket intressant uppgift.
Se vår kommande handledning för att lära dig mer om Mobila testutmaningar och lösningar.
Rekommenderad läsning
- 11 bästa automatiseringsverktyg för testning av Android-applikationer (Android-apptestverktyg)
- Mobile App Beta Testing Services (iOS och Android Beta Testing Tools)
- Skapa appiumtest för en Android-app
- Funktionell testning mot icke-funktionell testning
- Mobile App Testing Tutorials (En komplett guide med 30+ Tutorials)
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Alpha Testing och Beta Testing (En komplett guide)
- Fördjupade förklaringar om förmörkelser för nybörjare