ios app testing beginners guide with practical approach
Grunnleggende kunnskapsinnsamling for iOS-apptesting:
«Du vet, alle har en mobiltelefon, men jeg kjenner ikke en person som liker mobiltelefonen sin. Jeg vil lage en telefon som folk elsker. ” - Steve Jobs.
Det handlet om iPhone av Steve Jobs. Steve fikk virkelig Apple til å jobbe mot å gjøre den mobile enheten til en favoritt for alle.
Brukere har alltid elsket Apple-mobile enheter, det være seg, iPhone, iPod Touch eller iPad. Nåværende data antyder at det er nesten 1 milliard Apple-enheter i drift i verden som kjører på iOS.
Det er en hel milliard av dem.
Følgende er markedsandelsanalysen av iPhones i 2016:
(bilde kilde )
Hva du vil lære:
hvordan du programmerer datamaskiner for nybegynnere
- ios
- iOS-testing
- Typer iOS-applikasjonstesting
- Manuell testing - Bruke enhet
- Manuell testing - Bruk av emulator
- iOS-automatisering
- Beste fremgangsmåter for å teste en iOS-app
- iOS Automation Frameworks
- Konklusjon
- Anbefalt lesing
ios
iOS er et mobiloperativsystem som ble designet av Apple nøyaktig for enhetene deres, ofte betegnet som iDevices. Siden 2007, da iOS ble laget for bare iPhones, utviklet operativsystemet seg for å støtte Touch-enhetene og iPads også.
Nåværende forskning rapporterer at iOS er det nest mest populære mobiloperativsystemet i markedet. Android kjører på enheter bygget av forskjellige produsenter, men det fine med iOS er at det bare er begrenset til Apple-maskinvare, noe som tydelig viser populariteten til operativsystemet.
iOS har sett totalt 10 store utgivelser gjennom årene og har tilbudt bemerkelsesverdige funksjonsoppdateringer i hver utgivelse.
Dette iOS-operativsystemet er kjent for brukervennlighet, flyt i operasjoner, krasjfrie apper osv. Mens vi diskuterer appene, er Apple iTunes app store for iOS ganske for rik med en rekke apper som skyter opp til 2,2 millioner. Nedlastingen av apper har raskt gått opp til hele 130 milliarder i antall.
iOS er et operativsystem som ikke er begrenset av noen soner eller språkbarrierer. Dette er en av de viktigste faktorene i dette operativsystemet som blir så kjent på bare 10 år av utviklingen. Den støtter 40 forskjellige språk.
Ikke bare språkene, selv brukergrensesnittet til iOS-enheter er også veldig tiltalende og stilig sammenlignet med Android-enhetene.
Mens du snakker om applikasjonene i detalj, er det noen av statistikkene som er nevnt nedenfor:
- Apple iTunes app store får nesten 1000 nye søknader hver dag.
- Omtrent 1/3rdav de totale applikasjonene i Apple iTunes app store er gratis å laste ned.
- De betalte iOS-applikasjonsgebyrene varierer i gjennomsnitt fra 1,10 til 1,30 $.
- Gjennomsnittsprisen for et iOS-spill varierer fra 0,55 til 0,65 $.
Hvor mange applikasjoner har du brukt på iPhone, iPod Touch eller iPad?
Ganske en håndfull! Ikke sant? Starter fra Gmail og Facebook til Clash of Clans and Asphalts. Denne typen applikasjoner, tallene og mangfoldet av brukere gir programvaretestere noen alvorlig virksomhet. Gjør de ikke det?
Som tester må ikke bare funksjonaliteten, men en grundig UI-testing også gjøres for å verifisere appen på iPhone, iPod og iPad på grunn av variasjonen i størrelsene.
iOS-testing
Som diskutert tidligere er iOS bare begrenset til Apple-maskinvare eller Apple-produserte enheter. Det er virkelig en stor lettelse. Imidlertid er det mange Apple-enheter og deres versjoner som støtter iOS.
Poenget er at Apple har et lukket system, i motsetning til Android som er et åpent system. Utgivelsene av operativsystemer eller enheter er godt planlagt.
Dette er en ekstra fordel fordi:
- Størrelsen på enhetene som er tilgjengelige eller vil bli utgitt er faste, og som en kvalitetssikring må vi ha en veldig klar ide om hva alle enhetene er ute av markedet. Det blir enkelt for en kvalitetssikring å bestemme prøvesengen for testing
- I likhet med enheter trenger vi ikke å gjøre en dyp analyse for operativsystemet, siden det er et lukket system, det er mindre tid (og krefter) å ta en beslutning om testsengen for OS-testing.
- Apple har et stort utvalg av egne automatiseringsverktøy, selv om de er litt vanskelige å lære.
- Jeg husker at for GPS-testing for Android måtte jeg bruke 2-3 dager på å finne ut hvordan jeg skulle lage dummy-skript for å sende falsk plassering. Men det var veldig enkelt og greit i iOS, da det har en innebygd funksjonalitet for å sende falsk GPS for å gå, løpe, sykle osv.
- For den første testen anbefales det ikke å teste GPS-en ved hjelp av en feltprøve. Det anbefales å sende dummy-GPS-data, og det sparer også tid.
- Apple har strenge retningslinjer for å sende inn en søknad, dette er en god hjelp på en måte i stedet for å bli avvist etter innsending og en god sjanse for suksess, i motsetning til andre operativsystemer der det ikke er noen strenge retningslinjer.
- Funksjonaliteten til enheten og selve operativsystemet er fast og grei, og reduserer dermed sjansene for å gå glipp av måtene en app kan fungere på. I iOS er det ingen måte å tvinge stopp av en app mens vi kan drepe og tvinge stopp-apper på Android. Dermed reduseres kompleksiteten for testing her.
Dette er noen av fordelene vi får fra Apple-produkter, men ikke nødvendigvis at dette er fordelene med hvert produkt eller app. Mens for appene som er utviklet i plattform, er iOS vanskelig å håndtere.
De høy level klassifisering er som vist nedenfor:
Det første trinnet for å komme inn på iOS-applikasjonstesting er å vurdere typen implementering.
Søknadsimplementeringen kan være en av følgende tre typer:
1) Nettbaserte applikasjoner: Dette er applikasjonene som oppfører seg på samme måte som innebygd i iOS-applikasjoner. Dette er de vanlige nettstedene som en bruker åpner i iPhone-nettleseren Safari.
2) Innfødt søknad: Et program som er utviklet ved hjelp av iOS SDK (Software Development Kit) kjører naturlig på de støttede iOS-enhetene som VLC, Flipboard, Uber etc.
3) Hybrid applikasjon: Dette er blandingen eller hybrid av begge typene nevnt ovenfor. Dette gir tilgang til nettinnholdet gjennom et visningsområde for webinnhold, og har også noen brukergrensesnittelementer for iOS. F.eks. Zomato, Twitter, Gmail osv
Typer iOS-applikasjonstesting
De forskjellige typene iOS-applikasjonstesting (slik det gjøres under typiske forhold) kan være som følger:
- Manuell testing - Bruke enhet
- Systemtesting
- UI / UX-testing
- Sikkerhetstesting
- Feltprøving
- Manuell testing - Bruk av emulator
- Enhetstesting
- Integrasjonstesting
- UI-testing
- Automatiseringstesting
- Regresjonstesting
- BVT-testing
- Kompatibilitetstesting
- Ytelsestesting
Eksempel på en søknad:
Før vi går inn i de forskjellige aspektene av iOS-testprosesser, la oss ta et eksempel på en typisk iOS-applikasjon.
La oss ta hensyn til et innsamlingsprogram for et idrettslag. Søknaden vil ha en sosial kontoinnlogging (Google / Facebook) og en betalingsside.
Før du går til betalingssiden, bør det være et alternativ å velge systemdefinerte beløp eller et egendefinert felt for å taste inn beløpet. Når betalingen er fullført, skal et sertifikat-PDF vises på skjermen, og samtidig må PDF-en også sendes til e-postkontoen til brukeren som er pålogget.
Manuell testing - Bruke enhet
a) Systemtesting:
Denne typen iOS-testing utføres på systemet for å sjekke om de forskjellige komponentene i systemet fungerer sammen.
I denne testprosessen lanseres iOS-applikasjonen på en ekte Apple-enhet etterfulgt av samspillet med brukergrensesnittet for å utløse et spesifikt sett eller sett med brukerhandlinger. Typiske brukerhandlinger kan være en berøringsoperasjon eller en sveipoperasjon på skjermen.
Til slutt testes resultatet mot forventet utfall.
For vårEksempelgitt ovenfor, kan en typisk systemtest omfatte følgende trinn:
bli en spilltester gratis
- Logg på iOS-idrettslaget og innsamlingsprogrammet ved hjelp av Facebook-kontoinnloggingen ved hjelp av åpen godkjenning.
- Velg et forhåndsdefinert systembeløp på $ 10 fra de gitte alternativene.
- Fortsett til betalingsportalen.
- Velg alternativet PayTm mobil lommebok for betalingsprosessen.
Systemtester er operasjonene som for det meste dekker de forskjellige End to End-strømningene i systemet. Hver test må utføres med de forskjellige tilgjengelige konfigurasjonene. Og det avhenger også av enheten og iOS-versjonen som applikasjonen er installert på.
b) iOS UI-testing
UI / UX på iOS-enhetene har vært et sentralt element i suksesshistorien.
UI / UX-testing i iOS-enheter kan klassifiseres i følgende kategorier:
- Innganger: Testing av berøringsskjermfunksjonalitetene (som lang / kort berøring, 3D-berøring, rulling), knappestørrelser, plassering av knappene, Fargen på skriftene og størrelsen osv., Faller inn i denne kategorien.
- Hard Keys: Innfødte applikasjoner fungerer sømløst med de innebygde maskinvaretastene / hardtastene som er tilstede på enheten, for eksempel hjemmetasten, lydknappene osv. Programmet som testes, skal også samhandle med hardtastene på lignende måte.
- Soft Keys / Soft Keyboard: Hvor irriterende er det når tastaturet ikke vises når du er på Whatsapp-meldingssiden? Utseendet til et tastatur, mulighet for å skjule deg når du ikke trenger det, støtte for smilefjes, symboler, alle tegn / symboler osv. Er nødvendig.
- I vår Eksempel , kan tastaturet komme inn i bildet på flere steder, for eksempel ved å legge inn det egendefinerte beløpet, taste inn legitimasjon / kortdetaljer i betalingsportalen osv.
- Skjerm: Søknaden, hvis den støttes på flere enheter, bør testes for orientering i alle enhetene. Det kan være noen endringer i oppløsningen basert på enheten som er valgt for testprosessen. Samtidig bør det også utføres testing for stående / liggende modus og bruk av tastaturet i hvert tilfelle.
Hvis appen din er opprettet ikke bare for iOS, er det få tips som må testes spesielt for iOS som:
- Lister: I iOS når det er en liste som skal vises, viser den alltid en helt ny skjerm, i motsetning til Android der en popup vises.
Følgende er et eksempel på det samme:
( kilde )
- Meldinger: Når en app krasjer, er meldingen som vises i iOS forskjellig fra den i en Android. Også hvis du har observert, blinker små meldinger på Android-telefoner når du frigjør minne som ‘#GB minne frigjort’ osv., Men vi kan aldri se flashmeldinger i iOS.
Følgende er et eksempel:
( kilde )
- Slett bekreftelse: Hvis du følger nøye med på en iOS-app, i en popup for å slette bekreftelse, er Avbryt-handlingen til venstre for Slett-alternativet. Mens det er i Android eller annet operativsystem, er det omvendt.
Dette er noen av eksemplene som trenger separate testtilfeller og testing, ettersom iOS har standard brukergrensesnitt, meldinger osv., Som ikke kan endres.
c) Sikkerhetstesting:
I vår eksempel , vi har en applikasjon med en betalingsportal og en påloggingsside støttet av sosial sideintegrasjon.
For eksempel , la oss anta at du har en ICICI-app på telefonen din og når du logger på i stedet for kontoinformasjonen din hvis andres informasjon vises eller hvis du utfører en pengeoverføring og appen sender OTP til et annet telefonnummer som ikke er ditt , kan du forestille deg hva som vil skje. Dermed er sikkerhetstesting et must.
Data når det gjelder innlogging på sosiale medier og betalingsporten skal være kryptert eller sikret for å gjøre applikasjonen trygg fra hack.
d) Feltprøving:
En feltprøve gjøres for å verifisere atferden til appen i telefonens datanettverk.
Denne testen utføres vanligvis når appen når et stabilt stadium og ikke krasjer når den testes internt, og alle funksjonalitetsproblemene er løst. Dette gjøres hovedsakelig for å teste ytelsen til appen på det trege datanettverket.
Manuell testing - Bruk av emulator
a) Enhetstesting:
Dette gjøres stort sett av utviklingsteamet / individuell utvikler. Denne testen sjekker om en bestemt modul av kildekoden fungerer som forventet eller ikke.
Utviklere designer enhetstestsaker for en enkelt komponent, dvs. en isolert modul som de jobber med. Denne testen viser at den enkelte modulen fungerer, hvorpå den injiseres i kildekoden for å fungere som et element i den integrerte arkitekturen. Som overskriften sier, er dette for det meste en manuell testkjøring og utført ved hjelp av testemulering.
b) Integrasjonstesting:
I de forrige trinnene diskuterte vi mer om enhetstesting. Nå som vi er sikre på funksjonaliteten til de enkelte enhetene / modulene, blir det nødvendig å sjekke integrasjonen også. Denne testingen er utført for å finne ut problemene knyttet til ulike integreringspunkter.
I vår Eksempler , kan vi kalle påloggingen som en modul og betalingsportalen som en annen modul.
Enhetstesting vil dekke testingen av begge individuelt. Integrasjonstesting vil imidlertid teste integriteten til begge modulene.
c) UI-testing:
Som forklart ovenfor, må en UI-testing gjøres for en app, da den er en nøkkelfaktor for suksessen til appen.
Å kjøpe alle telefonmodeller for testing er praktisk talt ikke mulig fordi det koster mye. Derfor er bruk av emulator det beste alternativet, da det er gratis og også åpenbare UI-feil blir lett fanget på emulatorer.
iOS-automatisering
a) Regresjonstesting:
I det stadig skiftende miljøet gjøres endringer kontinuerlig for å forbedre applikasjonen eller for å løse problemene som ble funnet i forrige versjon av den. Mens endringene implementeres, kommer sjansen der at endringene som er gjort i applikasjonen, kan endre eksisterende funksjonalitet.
Enkelt sagt kan endringene som er gjort, introdusere et nytt sett med problemer i applikasjonen.
For å verifisere om applikasjonen fungerer på samme måte selv etter at endringene er implementert, må det utføres regresjonstesting. Og da det er en repeterende aktivitet, kommer automatisering godt med denne typen testkjøring.
b) BVT-testing:
Det er en god skikk å ha en automatisk pakke kjørt på den nye bygningen utgitt for testing, da det sparer mye tid, og hvis de grunnleggende funksjonene krasjer, blir den rapportert umiddelbart. Sammenlignet med en manuell innsats kan resultatene av automatiserte grunnleggende verifiseringstester for å godta eller avvise en konstruksjon bli tatt på få minutter.
c) Kompatibilitetstesting:
Som diskutert er det mange enheter / typer som er utgitt av Apple. For å være nøyaktig er det 15 forskjellige typer iPhones, 6 iPod Touch-modeller, 10 iPad-modeller og 2 iPad Pro-modeller på markedet.
Nå, når en app som vår (Sportsinnsamlingsapplikasjon) utvikles, bør den støttes av alle de ovennevnte enhetene. Det innebærer en ting som - Alle testtilfellene skal kjøre på alle disse enhetene.
Nå er ikke manuell innsats mulig når antall enheter er stort som dette. For kompatibilitet foretrekkes automatiseringstesting.
d) Ytelsestesting:
Noen av de som blir testet i ytelsestesting er:
- Hvordan applikasjonen oppfører seg når den blir gjort operativ eller kjører i veldig lang tid. Gjør applikasjonen i løpet av driftsperioden til å kommunisere / samhandle / forbli inaktiv.
- Den samme operasjonen må utføres med ulik mengde belastning hver gang.
- Hvordan systemet oppfører seg når dataoverføringen er veldig stor.
Disse sakene er gjentakende og gjøres for det meste ved hjelp av automatisering.
Beste fremgangsmåter for å teste en iOS-app
Å teste iOS-applikasjoner kan være tøft, vanskelig, utfordrende med mindre det gjøres riktig.
For å flytte iOS-apptesting i riktig retning kan følgende fremgangsmåter implementeres:
# 1) Glem emulatorer: I de fleste tilfeller foretrekkes emulatorer fremfor virkelige enheter. Men det er ikke det ideelle tilfellet. Ting som brukerinteraksjoner, batteriforbruk, nettverkstilgjengelighet, ytelse ved bruk, minnetildeling kan ikke testes på emulatorene. Så prøv å teste på ekte enheter hele tiden.
# 2) Automatiser ting i stedet for å gjøre manuelt: Hvor rask er du i å gjøre en bestemt oppgave? I dagens verden er alle hovedsakelig opptatt av tiden som brukes. Automatisering reduserer ikke bare kjøringstiden, men øker også effektiviteten, effektiviteten og dekningen av programvaretestingen.
# 3) Del arbeidet: Del testingen på tvers av team, inkludert utviklingsteamet. Vi kan få hjelp når det gjelder manuell utføring av testtilfellene, samt få hjelp fra utviklingsteamet når det gjelder automatisering av manuelle testsaker.
# 4) Fang krasjloggene: Applikasjonen for iOS kan fryse eller krasje under visse omstendigheter. For å fikse problemet spiller krasjlogger en viktig rolle.
Følgende trinn kan utføres for å registrere krasjloggene:
- For MacOS:
- Synkroniser iOS-enheten med datamaskinen (Mac).
- For Mac OS holder du nede Alternativtasten for å åpne menylinjen.
- Gå til Gå-menyen og klikk på Bibliotek.
- Naviger til ~ / Library / Logs / CrashReporter / MobileDevice //.
- Loggfilens navn skal starte med programmets navn.
- For Windows OS:
- Synkroniser iOS-enheten med datamaskinen (Windows).
- Naviger til C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- Loggfilens navn skal starte med programmets navn.
# 5) Fange konsolloggene:
Konsollogger gir den generelle informasjonen om applikasjonene på iOS-enheten.
Dette kan gjøres ved hjelp av verktøy som iTools. I iTools-applikasjonen klikker du på “Verktøykasse” -ikonet når iOS-enheten er koblet til systemet som iTools kjører på. Ved å klikke på 'Sanntidslogg' får du sanntidskonsolloggen.
er det en app for å planlegge instagraminnlegg
# 6) Skjermbilde: Det blir lett å forstå problemet, og det er derfor enkelt å fikse det hvis trinnene er visuelle.
Det anbefales å ta opp skjermen eller ta skjermbilder av problemene for å få utviklingsteamet til å forstå dem bedre. Skjermbildet kan tas ved hjelp av den innebygde funksjonen ved å trykke på Power og Home-knappen sammen.
Opptaket av en skjerm kan gjøres ved å bruke Quick time player recording mens iOS-enheten er koblet til Mac ved hjelp av lynkabelen.
iOS Automation Frameworks
Noen av de mest brukte automatiseringsrammene er listet opp nedenfor:
# 1) epoker;
Appium bruker Selenium Web Driver for å automatisere iOS-applikasjonstesting.
Denne plattformen er uavhengig og kan brukes både på nettet og mobile enheter (både Android og iOS). Dette er en åpen kildekode og er ikke begrenset av språk. Programendringer eller kildekodetilgang er ikke nødvendig for automatisering ved bruk av Appium.
Appium fungerer sømløst uavhengig av applikasjonstypen: det være seg, Native, Hybrid eller Web.
# 2) Calabash:
Calabash er et open source-plattformrammeverk som støtter både Android- og iOS-automatiseringstesting.
Kalabastester er skrevet i agurk som ligner på en spesifikasjon og er lett å forstå. Calabash består av biblioteker som gjør det mulig for brukeren å samhandle med både native- og hybridapplikasjoner. Den støtter interaksjoner som bevegelser, påstander, skjermbilde osv.
# 3) Earl Grey:
Earl Grey er Googles eget interne UI-testrammeverk. Dette har blitt brukt til å teste YouTube, Google Foto, Google Play Musikk, Google Kalender etc.
Earl Grey ble nylig gjort åpen kildekode. Noen av de største fordelene med Earl Gray er, innebygd synkronisering, synlighetskontroller før interaksjoner, ekte brukerinteraksjon (tapping, sveiping osv.). Dette ligner veldig på Espresso av Google som brukes til automatisering av Android UI.
# 4) UI-automatisering:
UI Automation er utviklet av Apple og ligner veldig på UI Automator til Android. APIene er definert av Apple, og testene er skrevet i JAVA.
# 5) HVORDAN:
KIF står for “Keep it Functional”. Dette er et tredjeparts- og Open source-rammeverk.
Dette er et iOS-integrasjonsrammeverk som er nært knyttet til og brukes til XCTest-testmål. KIF er enkelt å konfigurere eller integrere med Xcode-prosjektet, og det kreves derfor ikke ekstra webserver eller tilleggspakker. KIF har bred dekning når det gjelder iOS-versjoner.
Konklusjon
iOS-applikasjonstesting kan være en mest utfordrende oppgave å gjøre. Håper du hadde en god forståelse av iOS-applikasjonstesting gjennom denne artikkelen.
Imidlertid vil valg av riktig tilnærming, best mulig testprosess, metoder, verktøy, emulatorer / enheter osv. Gjøre iOS-applikasjonstesting veldig vellykket.
Vår kommende opplæring vil orientere deg om alle de grunnleggende konseptene som er involvert i Android App Testing Tutorial .
Anbefalt lesing
- Beste verktøy for testing av programvare 2021 (QA Test Automation Tools)
- Bærbarhetstestveiledning med praktiske eksempler
- Alpha Testing og Beta Testing (En komplett guide)
- Funksjonstesting mot ikke-funksjonell testing
- Lag Appium Test for en iOS-app
- Testing Primer eBook Download
- Hva er tidlig testing: Test tidlig, test ofte MEN hvordan? (En praktisk guide)
- Tutorials for mobilapptesting (en komplett guide med 30+ opplæringsprogrammer)