ios app testing beginners guide with practical approach
Grundläggande kunskapssamling för iOS-apptestning:
”Du vet, alla har en mobiltelefon, men jag känner inte en person som gillar sin mobiltelefon. Jag vill skapa en telefon som människor älskar. ” - Steve Jobs.
Det handlade om iPhone av Steve Jobs. Steve fick verkligen Apple att arbeta för att göra sin mobila enhet till en favorit för alla.
Användare har alltid älskat Apples mobila enheter, vare sig det är iPhone, iPod Touch eller iPad. Nuvarande data tyder på att det finns nästan 1 miljard Apple-enheter i världen som körs på iOS.
Det är en hel miljard av dem.
Nedan följer analysen av marknadsandelar av iPhones 2016:
(bild källa )
Vad du kommer att lära dig:
- iOS
- iOS-testning
- Typer av iOS-applikationstestning
- Manuell testning - Använda enheten
- Manuell testning - Använda emulator
- iOS-automatisering
- Bästa metoder för att testa en iOS-app
- iOS Automation Frameworks
- Slutsats
- Rekommenderad läsning
iOS
iOS är ett mobiloperativsystem som designades av Apple exakt för sina enheter, ofta benämnt iDevices. Sedan 2007, när iOS endast gjordes för iPhones, utvecklades operativsystemet för att stödja Touch-enheterna och iPadsna.
Aktuell forskning rapporterar att iOS är det näst mest populära mobiloperativsystemet på marknaden. Android körs på enheter som byggts av olika tillverkare, men skönheten i iOS är att den endast är begränsad till Apples hårdvara, vilket tydligt anger operativsystemets popularitet.
iOS har sett totalt 10 stora utgåvor genom åren och har erbjudit anmärkningsvärda funktionsuppdateringar i varje version.
vad är den bästa gratis e-posttjänsten
Detta iOS-operativsystem är känt för sin användarvänlighet, rörlighet i drift, kraschfria appar etc. Medan vi diskuterar APP: erna är Apples iTunes app store för iOS ganska för rik med ett antal appar som skjuter upp till 2,2 miljoner. Nedladdningen av appar har snabbt gått upp till hela 130 miljarder i antal.
iOS är ett operativsystem som inte är begränsat av någon zon- eller språkbarriär. Detta är en av de viktigaste faktorerna i detta operativsystem som blir så känt på bara tio år av dess utveckling. Den stöder 40 olika språk.
Inte bara språken, även användargränssnittet för iOS-enheter är också mycket tilltalande och elegant jämfört med Android-enheterna.
Medan vi pratar i detalj om applikationerna nedan är några av statistiken om den:
- Apple iTunes App Store får nästan 1000 nya ansökningar varje dag.
- Cirka 1/3rdav de totala applikationerna i Apple iTunes App Store är gratis att ladda ner.
- De betalda iOS-applikationsavgifterna varierar i genomsnitt från 1,10 till 1,30 $.
- Genomsnittspriset för ett iOS-spel varierar från 0,55 till 0,65 $.
Hur många applikationer har du använt på din iPhone, iPod Touch eller iPad?
Ganska en handfull! Rätt? Från Gmail och Facebook till Clash of Clans and Asphalts. Den här typen av applikationer, siffrorna och de olika användarna ger programvarutestare en seriös affär. Inte de ??
Som testare behöver inte bara funktionaliteten utan också en djupgående UI-testning göras för att verifiera appen på iPhone, iPod och iPad på grund av variationen i deras storlekar.
iOS-testning
Som diskuterats tidigare är iOS endast begränsat till Apple-maskinvara eller Apple-tillverkade enheter. Det är verkligen en enorm lättnad. Det finns dock många Apple-enheter och deras versioner som stöder iOS.
Slutsatsen är att Apple har ett slutet system, till skillnad från Android som är ett öppet system. Utgivningarna av operativsystem eller enheter är väl planerade.
Detta är en extra fördel eftersom:
- Storleken på enheterna som är tillgängliga eller kommer att släppas är fasta och som en kvalitetssäkring måste vi ha en mycket tydlig uppfattning om vad alla enheter är ute av marknaden. Det blir lätt för en QA att bestämma testbädden för testning
- Liksom enheter behöver vi inte göra en djup analys för operativsystemet, eftersom det är ett slutet system, det är mindre tid (och ansträngning) att ta beslut om testbädden för OS-test.
- Apple har ett stort urval av sina egna automatiseringsverktyg även om de är lite knepiga att lära sig.
- Jag kommer ihåg att för GPS-testning för Android var jag tvungen att spendera 2-3 dagar på att ta reda på hur man skapar dummy-skript för att skicka falsk plats. Men det var väldigt enkelt och enkelt i iOS eftersom det har en inbyggd funktion för att skicka falsk GPS för promenader, löpning, cykling etc.
- För den första testningen rekommenderas det inte att testa GPS med ett fälttest, det är lämpligt att skicka GPS-data, och det sparar också tid.
- Apple har strikta riktlinjer för att skicka in en ansökan, detta är en stor hjälp på ett sätt snarare än att bli avvisad efter inlämning och en god chans att lyckas, till skillnad från andra operativsystem där det inte finns några strikta riktlinjer.
- Enhetens och operativsystemets funktionalitet är fast och enkel, vilket minskar risken för att en app kan fungera. I iOS finns det inget sätt att tvinga stopp på en app medan vi kan döda och tvinga stoppappar på Android. Således minskar komplexiteten för testning här.
Det här är några av fördelarna med Apple-produkter men inte nödvändigtvis att det här är fördelarna med varje produkt eller app. Medan för appar som utvecklas i plattform är iOS svårt att hantera.
De hög nivå klassificeringen är som visas nedan:
Det första steget i att testa iOS-applikationer är att överväga vilken typ av implementering.
Applikationsimplementeringen kan vara någon av nedanstående tre typer:
1) Webbaserade applikationer: Det här är applikationerna som beter sig på samma sätt som iOS-applikationerna. Det här är de vanliga webbplatserna som en användare öppnar i iPhones Safari-webbläsare.
2) Naturlig applikation: En applikation som utvecklats med iOS SDK (Software Development Kit) körs på de iOS-enheter som stöds som VLC, Flipboard, Uber etc.
3) Hybridapplikation: Detta är blandningen eller hybrid av båda typerna som nämns ovan. Detta ger åtkomst till webbinnehållet via ett visningsområde för webbinnehåll och har också några användargränssnittselement för iOS. T.ex. Zomato, Twitter, Gmail etc.
Typer av iOS-applikationstestning
De olika typerna av iOS-applikationstester (som det görs under vanliga förhållanden) kan vara följande:
- Manuell testning - Använda enheten
- Systemtestning
- UI / UX-testning
- Säkerhetstestning
- Fälttest
- Manuell testning - Använda emulator
- Enhetstestning
- Integrationstestning
- UI-testning
- Automationstestning
- Regressionstestning
- BVT-testning
- Kompatibilitetstestning
- Prestandatester
Exempel på en ansökan:
Innan vi går in i de olika aspekterna av iOS-testprocesser, låt oss ta ett exempel på en typisk iOS-applikation.
Låt oss ta en ansökan om idrottslagssamling. Applikationen har ett socialt kontoinloggning (Google / Facebook) och en betalningssida.
Innan du går till betalningssidan bör det finnas ett alternativ att välja systemdefinierade belopp eller ett anpassat fält för att mata in beloppet. När betalningen är klar ska ett certifikat-PDF visas på skärmen och samtidigt måste PDF-filen också skickas till e-postkontot till den användare som för närvarande är inloggad.
Manuell testning - Använda enheten
a) Systemtestning:
Denna typ av iOS-testning utförs på systemet för att kontrollera om de olika komponenterna i systemet fungerar tillsammans.
I denna testprocess lanseras iOS-applikationen på en riktig Apple-enhet följt av dess interaktion med användargränssnittet för att utlösa en viss uppsättning eller uppsättningar användaråtgärder. Typiska användaråtgärder kan vara en pekoperation eller en svepning på skärmen.
Slutligen testas resultatet mot det förväntade resultatet.
För vårExempelovan kan ett typiskt systemtest innefatta följande steg:
kvalitetssäkringsintervjuer och svar för nybörjare
- Logga in på iOS-sportteamet och insamlingsapplikationen med Facebook-inloggningen med öppen autentisering.
- Välj ett fördefinierat systembelopp på $ 10 från de angivna alternativen.
- Fortsätt till betalningsportalen.
- Välj PayTm mobilplånbok för betalningsprocessen.
Systemtester är de operationer som mest täcker de olika flödet från slut till slut i systemet. Varje test måste utföras med olika tillgängliga konfigurationer. Och det beror också på enheten och iOS-versionen som applikationen är installerad på.
b) iOS UI-testning
UI / UX för iOS-enheter har varit ett viktigt inslag i deras framgångshistoria.
UI / UX-test i iOS-enheter kan klassificeras i följande kategorier:
- Ingångar: Testning av pekskärmsfunktionerna (som lång / kort beröring, 3D-beröring, rullning), knappstorlekar, knapparnas placering, teckensnittsfärg och deras storlek etc. faller inom denna kategori.
- Hårtangenter: Native-applikationer fungerar sömlöst med de inbyggda hårdvaruknapparna / hårddiskarna som finns på enheten, t.ex. hemknappen, ljudknapparna etc. Programmet som testas bör också interagera med hårddiskarna på liknande sätt.
- Soft Keys / Soft Keyboard: Hur irriterande är det när tangentbordet inte visas när du är på din Whatsapp-meddelandesida? Ett tangentbords utseende, möjlighet att gömma sig när du inte behöver det, stöd för smileys, symboler, alla tecken / symboler etc. är nödvändiga.
- I vår Exempel kan tangentbordet komma in i bilden på flera ställen, t.ex. genom att ange det anpassade beloppet, skriva in referenser / kortuppgifter i betalningsporten etc.
- Skärm: Applikationen, om den stöds över flera enheter, bör testas för dess orientering i alla enheter. Det kan förekomma vissa upplösningsändringar baserat på den enhet som väljs för testprocessen. Samtidigt bör testning också utföras för stående / liggande läge och användningen av tangentbordet i vart och ett av fallen.
Om din app skapas inte bara för iOS finns det några tips som måste testas specifikt för iOS som:
- Listor: I iOS när det finns en lista som ska visas, visas alltid en helt ny skärm, till skillnad från Android där en popup visas.
Följande är ett exempel på detsamma:
( källa )
- Meddelanden: När en app kraschar skiljer sig meddelandet i iOS från det i en Android. Även om du har observerat blinkar små meddelanden på Android-telefoner när du frigör minne som '#GB-minne frigjort' etc., men vi kan aldrig se flashmeddelanden i iOS.
Följande är ett exempel:
( källa )
- Radera bekräftelse: Om du noggrant följer en iOS-app i en popup för popup-bekräftelse, är Avbryt-åtgärden till vänster om alternativet Ta bort. I Android eller annat operativsystem är det tvärtom.
Det här är några av de exempel som behöver separata testfall och testning eftersom iOS har standardgränssnittet, meddelanden etc. som inte kan ändras.
c) Säkerhetstestning:
I vår exempel , vi har en applikation med en betalningsgateway och en inloggningssida som stöds av social sidintegration.
Till exempel , låt oss anta att du har en ICICI-app på din telefon och när du loggar in snarare än din kontoinformation om någon annans information visas eller om du utför en penningöverföring och appen skickar OTP till något annat telefonnummer som inte är ditt , du kan föreställa dig vad som kommer att hända. Således är säkerhetstester ett måste.
Data i termer av inloggning på sociala medier och betalningsportalen ska krypteras eller skyddas för att göra applikationen säker från hack.
d) Fältprovning:
Ett fälttest görs för att verifiera appens beteende i telefonens datanätverk.
Detta test görs vanligtvis när appen når ett stabilt stadium och inte kraschar när det testas internt och alla funktionalitetsproblem har åtgärdats. Detta görs främst för att testa appens prestanda i det långsamma datanätverket.
Manuell testning - Använda emulator
a) Enhetstestning:
Detta görs mestadels av utvecklingsteamet / enskild utvecklare. Denna testning kontrollerar om en viss modul av källkoden fungerar som förväntat eller inte.
Utvecklare utformar enhetstestfall för en enda komponent, dvs en isolerad modul som de arbetar på. Detta test visar att den enskilda modulen fungerar, varefter den injiceras i källkoden för att fungera som en del av den integrerade arkitekturen. Som rubriken säger är detta mestadels en manuell testkörning och görs med hjälp av testemulering.
b) Integrationstest:
I de föregående stegen diskuterade vi mer om enhetstestning. Nu, eftersom vi är säkra på funktionerna hos de enskilda enheterna / modulerna, blir det också nödvändigt att kontrollera integrationen. Denna testning utförs för att ta reda på problemen relaterade till olika integrationspunkter.
I vår Exempel , vi kan kalla inloggningen som en modul och betalningsgatewayen som en annan modul.
Enhetstestning kommer att täcka testningen av båda individuellt. Integrationstest kommer dock att testa integriteten hos båda modulerna.
c) UI-testning:
Som förklarats ovan måste en UI-testning göras för en app eftersom den är en nyckelfaktor för appens framgång.
Att köpa alla telefonmodeller för testning är praktiskt taget inte möjligt eftersom det skulle kosta mycket. Användning av emulator är därför det bästa alternativet eftersom det är kostnadsfritt och också uppenbara UI-buggar fångas lätt på emulatorer.
iOS-automatisering
a) Regressionstest:
I den ständigt föränderliga miljön görs ändringar kontinuerligt för att förbättra applikationen eller för att åtgärda de problem som hittades i den tidigare versionen av den. Medan ändringarna implementeras finns det en chans att ändringarna som görs i applikationen kan ändra den befintliga funktionaliteten.
Enkelt uttryckt kan de ändringar som gjorts introducera en ny uppsättning problem i applikationen.
För att verifiera om applikationen fungerar på samma sätt även efter att ändringarna har implementerats måste regressionstester utföras. Och eftersom det är en repetitiv aktivitet kommer automatisering till nytta för denna typ av testkörning.
b) BVT-testning:
Det är en bra sed att ha en automatisk svit som körs på den nya byggnaden släppt för testning eftersom det sparar mycket tid och om de grundläggande funktionerna kraschar rapporteras den omedelbart. Jämfört med en manuell insats kan resultaten av automatiserade grundläggande verifieringstester för att acceptera eller avvisa en byggnad tas på några minuter.
c) Testning av kompatibilitet:
Som diskuterat finns det många enheter / typer som släpps av Apple. För att vara exakt finns det 15 olika typer av iPhones, 6 iPod Touch-modeller, 10 iPad-modeller och 2 iPad Pro-modeller på marknaden.
Nu när en app som vår (applikation för insamling av idrottslag) utvecklas bör den stödjas av alla ovan nämnda enheter. Det innebär en sak som- Alla testfall ska köras på alla dessa enheter.
Nu är manuell ansträngning inte möjlig när antalet enheter är enormt som detta. För kompatibilitet föredras automatiseringstestning.
d) Prestandatestning:
Några av de som testas i Prestandatestning är:
- Hur applikationen beter sig när den används eller körs under mycket lång tid. Under applikationsperioden ska applikationen kommunicera / interagera / förbli inaktiv.
- Samma operation måste utföras med olika mängd last varje gång.
- Hur systemet beter sig när dataöverföringen är riktigt enorm.
Dessa fall är repetitiva till sin natur och görs oftast med hjälp av automatisering.
Bästa metoder för att testa en iOS-app
Att testa iOS-applikationer kan vara tufft, knepigt, utmanande om det inte görs korrekt.
För att flytta iOS-apptester i rätt riktning kan följande metoder implementeras:
# 1) Glöm emulatorer: I de flesta fall föredras emulatorer framför verkliga enheter. Men det är inte det perfekta fallet. Saker som användarinteraktioner, batteriförbrukning, nätverkstillgänglighet, prestanda vid användning, minnestilldelning kan inte testas på emulatorerna. Så försök att testa på riktiga enheter hela tiden.
# 2) Automatisera saker istället för att göra manuellt: Hur snabbt är du i att göra en specifik uppgift? I dagens värld är alla främst bekymrade över den tid som spenderas. Automation minskar inte bara körtiden utan ökar också effektiviteten, effektiviteten och täckningen av programvarutestningen.
# 3) Dela arbetet: Dela testningen mellan team inklusive utvecklingsteamet. Vi kan få hjälp när det gäller att manuellt utföra testfallet samt få hjälp från utvecklingsteamet när det gäller att automatisera manuella testfall.
# 4) Fånga kraschloggarna: Applikationen för iOS kan frysa eller krascha under vissa omständigheter. För att åtgärda problemet spelar kraschloggar en viktig roll.
Följande steg kan utföras för att fånga kraschloggar:
- För MacOS:
- Synkronisera iOS-enheten med datorn (Mac).
- För Mac OS håller du ner alternativknappen för att öppna menyraden.
- Gå till Go-menyn och klicka på Bibliotek.
- Navigera till ~ / Library / Logs / CrashReporter / MobileDevice //.
- Loggfilens namn bör börja med programmets namn.
- För Windows OS:
- Synkronisera iOS-enheten med datorn (Windows).
- Navigera till C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- Loggfilens namn bör börja med programmets namn.
# 5) Fånga konsolloggarna:
Konsolloggar ger den övergripande informationen om applikationerna på iOS-enheten.
Detta kan göras med hjälp av verktyg som iTools. I iTools-applikationen klickar du på ikonen “Verktygslåda” när iOS-enheten är ansluten till systemet där iTools körs. Om du klickar på 'Realtidslogg' visas konsolloggen i realtid.
finns det en app för att schemalägga instagraminlägg
# 6) Fångande skärm: Det blir lätt att förstå problemet och därför är det enkelt att fixa om stegen är visuella.
Det är tillrådligt att spela in skärmen eller ta skärmdumpar av problemen för att få utvecklingsgruppen att förstå dem bättre. Skärmdumpen kan tas med den inbyggda funktionen genom att trycka på ström- och hemknappen tillsammans.
Inspelningen av en skärm kan göras med inspelning av snabbtidsspelare medan iOS-enheten är ansluten till Mac med blixtkabeln.
iOS Automation Frameworks
Några av de mest använda automatiseringsramarna listas nedan:
# 1) epoker;
Appium använder Selenium Web Driver för att automatisera iOS-applikationstestning.
Denna plattform är oberoende och kan användas både på webben och mobila enheter (både Android och iOS). Detta är en öppen källkod och är inte begränsad av språk. Programändringar eller källkodsåtkomst krävs inte för automatisering med Appium.
Appium fungerar sömlöst oberoende av applikationstypen: vare sig det är, Native, Hybrid eller Web.
# 2) Kalabas:
Calabash är en öppen källkod plattform som stöder både Android och iOS automatiseringstestning.
Kalabastest skrivs i gurka som liknar en specifikation och är lätt att förstå. Calabash består av bibliotek som gör det möjligt för användaren att interagera med både native- och hybridapplikationer. Den stöder interaktioner som gester, påståenden, skärmdump etc.
# 3) Earl Grey:
Earl Gray är Googles eget interna testramverk. Detta har använts för att testa YouTube, Google Foto, Google Play Musik, Google Kalender etc.
Earl Gray har nyligen skapats som öppen källkod. Några av de största fördelarna med Earl Grey är, inbyggd synkronisering, synlighetskontroller före interaktioner, sann användarinteraktion (knackning, svepning etc.). Detta liknar väldigt Espresso av Google som används för Android UI-automatisering.
# 4) UI-automatisering:
UI Automation är utvecklat av Apple och liknar mycket UI Automator till Android. API: erna definieras av Apple och testerna är skrivna i JAVA.
# 5) HUR:
KIF står för 'Keep it Functional'. Detta är en ram från tredje part och öppen källkod.
Detta är ett testramverk för iOS-integration som är nära relaterat till och används för XCTest-testmål. KIF är enkelt att konfigurera eller integrera med Xcode-projektet och därför krävs inte ytterligare webbserver eller ytterligare paket. KIF har en bred täckning när det gäller iOS-versioner.
Slutsats
iOS-applikationstestning kan vara en mycket utmanande uppgift att göra. Hoppas att du hade en bra förståelse för testning av iOS-applikationer genom den här artikeln.
Att välja rätt tillvägagångssätt, bästa möjliga testprocess, metoder, verktyg, emulatorer / enheter etc. gör dock att iOS-applikationstestning blir mycket framgångsrik.
Vår kommande handledning kommer att ge dig information om alla grundläggande begrepp Android App Testing Tutorial .
Rekommenderad läsning
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Handbok för testbarhet med praktiska exempel
- Alfatestning och betatestning (En komplett guide)
- Funktionell testning mot icke-funktionell testning
- Skapa Appium Test för en iOS-app
- Testing Primer eBook Download
- Vad är tidig testning: Testa tidigt, testa ofta MEN hur? (En praktisk guide)
- Mobile App Testing Tutorials (En komplett guide med 30+ Tutorials)