Testveiledning for iOS-apper: Manuell og automatisering

Hva er iOS-apptesting?

iOS-apptesting er en testprosess der en iOS-applikasjon testes på ekte Apple-enheter for å sjekke om den fungerer som forventet eller ikke for spesifikke brukerhandlinger som installasjonstid, brukergrensesnitt, brukeropplevelse, utseende, oppførsel, funksjonalitet, lastetid, ytelse, app Butikkoppføring, støtte for OS-versjon osv.

Hvorfor iOS-apptesting?

iOS-apptesting er nødvendig fordi iOS er Apples plattform for mobilapplikasjoner som ble utgitt 29. juni 2007. I motsetning til Android, Apple lisensierer ikke iOS for installasjon på ikke-Apple-maskinvare. iOS- og iOS-applikasjoner kan bare installeres på Apple-enheter, derfor må iOS-appen din være kompatibel med iOS-versjoner og iOS-enheter.

IOS-apptesting

Dette er det vanlige spørsmålet når utviklere lager en iOS-applikasjon.

IOS-apptesting

Det spiller ingen rolle hvor mye tid du investerer i design og implementering, feil er uunngåelige, og feil vil dukke opp. Det er noen vanlige feil på iOS-applikasjonen. Som vist i figuren nedenfor.

IOS-apptesting

Appen krasjer

Et av de mest frustrerende problemene når du bruker Apples enheter, er at en applikasjon kan krasje ofte under kjøring. Mange ganger krasjer appen fordi det er noen feil eller minnelekkasjer i apper.

Applikasjonsinkompatibiliteter

iOS-applikasjonen din kan kjøre perfekt på gjeldende iOS-versjon, men hvis iOS er oppgradert, kan det hende at den ikke fungerer på grunn av inkompatibilitetsproblemer.

Sikkerhetssårbarhet

En sikkerhetssårbarhet i iOS lar hackeren angripe iOS-enhetene dine, stjele din private informasjon. Til nå er alvorlige sikkerhetssårbarheter for iPhone oppdaget i forskjellige iOS-versjoner.

Minne lekker

Minnelekkasjer er blokker med tildelt minne som programmet ikke lenger bruker. Minnelekkasjer fører til at iOS-appen din krasjer.
De er feil og bør alltid fikses.

iOS tester MindMap

IOS Testing MindMap

Som vist i figuren ovenfor, iOS Testing MindMap viser alle elementene som testeren bør vurdere når de utfører testing på iOS.

Sjekkliste for iOS-applikasjonstesting

Denne sjekklisten er spesielt utviklet for å teste egenskapene til iOS-mobilapplikasjoner. Åpenbart tester den bare generiske applikasjonsegenskaper og ikke funksjonaliteten til den.

  • Sjekk installasjonstiden som applikasjonen tar på enheten. Sørg for at applikasjonen er installert innen en akseptabel tid.
  • Når applikasjonen er installert, sjekk om applikasjonen har appikon og navn. Sørg også for at både ikonet og navnet er selvforklarende og gjenspeiler applikasjonens kjerneintensjon.
  • Start programmet og sjekk om splash-skjermen vises.
  • Sjekk startskjermens tidsavbrudd og tiden det tar å laste startskjermen. Startskjermen til applikasjonen skal lastes innen en akseptabel tid. Hvis startskjermen bare tar lengre tid å laste, er det større sjanse for brukeren til å avslutte eller til og med avinstallere selve applikasjonen. Sjekk også hvordan innholdet lastes inn på startskjermen.
  • Hovedfunksjonen til applikasjonen bør være tydelig umiddelbart. Det burde tale for seg selv.
  • Sjekk om appen støtter både liggende og stående orientering. I så fall, sjekk appen i begge retninger. Applikasjonens brukergrensesnitt bør settes deretter.
  • Start applikasjonen uten internettforbindelse. Sørg for at appen oppfører seg som designet/ønsket. Det er en sjanse for at applikasjonen kan krasje ved oppstart eller bare vise en tom skjerm.
  • Hvis applikasjonen bruker posisjonstjenester, kontroller om varsel om posisjonstillatelse vises eller ikke. Dette varselet skal bare sendes til brukeren én gang.
  • Hvis applikasjonen sender push-varsler, må du kontrollere om push-varslingstillatelse vises eller ikke. Dette varselet skal også bare sendes til brukeren én gang.
  • Start applikasjonen, avslutt den og start den på nytt. Sjekk om appen oppfører seg som designet/ønsket
  • Lukk applikasjonen ved å trykke på Hjem-knappen på enheten og åpne appen igjen. Sjekk om appen fungerer som designet/ønsket.
  • Når den er installert, sjekk om appen er oppført i iPhones innstillingsapp.
  • Etter at applikasjonen er publisert, sjekk om applikasjonen finnes i "App Store". Det vil være støttet OS-versjon for applikasjonen. Så sørg for at applikasjonen kan bli funnet i den støttede OS-versjonens "App Store". Appen skal heller ikke være oppført i enhetens "App Store" som ikke støttes av OS-versjon.
  • Sjekk om applikasjonen går i hvilemodus når den kjører i bakgrunnen for å forhindre at batteriet tappes.
  • Hvis ytelsen til applikasjonen er treg eller når innhold lastes inn, sjekk om det er et fremdriftsstatusikon ("Laster ..."), helst med en spesifikk melding.
  • Søk etter applikasjonen med navnet i enhetens søkefelt. Sjekk om appen er oppført
  • Sjekk om utseendet til knapper som utfører standardhandlinger ikke endres i appen (for eksempel: oppdater, organiser, søppel, Svar, tilbake, etc.)
  • Sjekk om standardknapper ikke brukes til andre funksjoner enn de vanligvis brukes til

iOS-teststrategi

Figuren nedenfor introduserer noen vanlige typer iOS-teststrategier.

IOS-teststrategi

Automatisert testing

Automatisert testing er de største fordelene med iOS-testing. Den lar deg oppdage feilen og ytelsesproblemer raskt. Fordelene med automatisert testing som vist nedenfor:

  • Automatisert testing kan kjøres på flere enheter, noe som sparer tid
  • Automatisert testing kan målrette mot SDK-er. Du kan kjøre test på forskjellige SDK-versjoner
  • Automatisert testing øker produktiviteten ved testing, spar kostnadene for programvareutvikling
  • Det er mange open source-testrammeverk som støtter automatisert testing på iOS

Enhetstesting med OCUnit

Da den originale iOS SDK ble utgitt, manglet den Enhetstesting evner. Så Apple har brakt tilbake OCUnit enhetstestløsning i iOS SDK versjon 2.2.

OCUnit er et testrammeverk for C- Objective i Mac OS. De største fordelene med et OCUnit-rammeverk er den tette integreringen i XCode utviklingsmiljø som vist nedenfor.

Enhetstesting med OCUnit

Noen av fordelene med OCUnit er vist i figuren nedenfor.

Enhetstesting med OCUnit

UI-testing med UIAutomation

UI-testing med UIAutomation

UI-automatisering er en JavaScript bibliotek levert av Apple Inc, som kan brukes til å utføre en automatisert test på ekte enheter og på iOS Simulator. Dette rammeverket er lagt til iOS SDK4.0. Ved å bruke UI Automation kan du automatisere testing av applikasjonen, ikke bare på simulatoren, men også den virkelige enheten.

UIAutomation gir deg disse fordelene:

  • Reduser innsatsen på Manuell testing
  • Bruk mindre minne til å utføre alle testene dine
  • Forenkle testprosedyren for brukergrensesnittet (bare trykk på én eller tre knapper og kjør hele testpakkene dine)

UIAutomation-instrumentet fungerer fra skript, som er skrevet inn JavaManus. Den simulerer brukerhendelser på mål iOS-applikasjonen.

UIAutomation Cons vs.Pros

Pros Ulemper
1. God støtte for gest og rotasjon Det er ikke åpen kildekode, mindre støtte fra utvikleren
2. Kan kjøre UIAutomation-tester på enheten, ikke den eneste simulatoren. Kan ikke integreres med andre verktøy ekstremt godt
3. Utviklet av JavaScript, det er et populært programmeringsspråk.

UI-testing med UIAutomation

Figuren ovenfor representerer noen vanlige klasser i UIAutomation-rammeverket.

  • Ocuco UIAElement klasse er superklassen for alle brukergrensesnittelementer i sammenheng med automatiseringen
  • Ocuco UIATarget klasse representerer brukergrensesnittelementene på høyt nivå i systemet som testes
  • Ocuco UIALlogger klasse gir test- og feilinformasjon om gjenfinningsfunksjonalitet
  • Ocuco UIActivityViewklasse gir tilgang til og kontroll over aktivitetsvisninger i appen din.
  • Ocuco UIAAactionSheet klasse gir tilgang til og kontroll over handlingsark i appen din.
  • Bruker Hendelseshandling
  • UISlider klasse
  • UIA-knappklasse
  • UIAKøkkelklasse
  • UIAKeyboard klasse

Andre automatiserte testrammeverk

  • Frank: Automatisert Godkjenningstest rammeverk for iPhone og iPad
  • KIF : er en iOS integrasjonstest rammeverk. Det muliggjør enkel automatisering av iOS-apper ved å utnytte tilgjengelighetsattributtene som operativsystemet gjør tilgjengelig for de med synshemming.

Manuell testing

Utforskende testing

Det er en testing uten en formell testplan. Utforskende testing er en rimelig testmetode, men den kan gå glipp av potensielle feil i iOS-applikasjonen din.

Utforskende testing Ulemper vs. Fordeler

Pros Ulemper
1. Less forberedelse er nødvendig, tidlig oppdage alvorlige feil. Krever høy dyktighet av testeren
2. Trenger ikke Testplan få fart på feildeteksjonen. Testdekningen er lav. Det garanterer ikke at alle dine krav er testet.
3. De fleste feil oppdages tidlig ved en slags utforskende testing Mangel på testdokumentasjon

Brukertesting

Brukertesting er en type manuell testing på iOS. Hensikten med denne testen er å lage bedre apper, ikke bare Feilfri apper. Figuren nedenfor viser fire typer brukertesting

Brukertesting

Konsepttesting

Evaluer brukerrespons på en applikasjonside før den slippes ut på markedet. Prosedyrer for konsepttesting på iOS er beskrevet som nedenfor

Konsepttesting

Brukervennlighetstesting

Brukervennlighetstesting er en test hvor enkelt det er å bruke iOS-appen din. I iOS-testing kan brukervennlighetstest være registrert å huske eller dele med andre.

Det er noen verktøy som støtter brukervennlighetstesting på iOS.

TryMyUI mobilbrukertesting-apper for Android og iOS.

Delight.io, kan dette verktøyet fange opp ekte brukerinteraksjon på iOS-appene dine.

Betatesting

Beta-testing er integrasjonstesting med ekte data for å få endelig tilbakemelding fra brukere. For å distribuere appene dine for betatesting, må du følge trinnene nedenfor.

Betastesting

-Pre-conditioning: Hvis du betatester en endelig kandidat for en utgivelse, sørg for å validere appen før du distribuerer den til testere.

-Finn tester via tjenesten: du samler enhets-IDer fra testere og legger dem til Medlemssenter

-Lag ad hoc-distribusjon: Ad hoc-distribusjon lar testeren kjøre appen din på enheten sin uten behov Xcode. Dette trinnet inkluderer 2 undertrinn

  • Opprett distribusjonssertifikater
  • Opprett ad-hoc-klargjøringsprofiler

-Be om tilbakemelding fra testeren: Testeren utfører testing og sender feilrapporter til deg. Etter at appen din er utgitt, kan du få rapportene fra iTunes koble til.

A / B-testing

A / B-testing er en av de kraftigste måtene å evaluere effektiviteten til iOS-appen din. Det bruker randomiserte eksperimenter med to enheter, A og B.

A / B-testing

A/B-testing inkluderer tre hovedtrinn

  • Konfigurer en test: Forberedte 2 versjoner av iOS-appen din (A & B) og testberegning
  • Test: Test 2 iOS-appversjoner ovenfor på enheter samtidig.
  • Analyser: Mål og velg bedre versjon for utgivelse

Følgende verktøy støtter A/B-testing på iOS.

  • Oppstå: A/B-testing for både iOS og Android. Den kan integreres i iOS-appen din og gjøre testprosessen raskere.

Beste praksis for A/B-testing

  • Definer mål av testen din. Enhver test er ubrukelig uten et mål.
  • Se sluttbrukere bruker appen din første gang
  • Kjør en test kun per oppdatering. Det sparer tid når du utfører testing
  • Overvåke din test nøye. Du kan lære erfaringer fra testen din ved å overvåke den.

iOS-testing Beste praksis

Her er noen tips du bør vite når du organiserer testingen av iOS-applikasjonen din

  1. Test applikasjonen på en ekte enhet for å bli ekte om ytelse
  2. Forbedre dine testmetoder, fordi tradisjonelle testmetoder ikke lenger er tilstrekkelige til å dekke alle tester på iOS-testing
  3. Ved hjelp av konsolllogg for å teste iOS-applikasjonen. Dette er en iOS-funksjon som inneholder informasjon fra alle applikasjoner på enheten.
  4. Document applikasjonsfeil bruker innebygd skjerm kort kommando. Det hjelper utviklere å forstå hvordan feilene oppstår.
  5. Krasjrapportering er nyttige verktøy når du tester applikasjonen din. De kan oppdage krasj og loggdetaljer slik at du enkelt kan undersøke feilene.

MYTER om iOS-testing

Denne delen undersøker noen populære myter og realiteter ved iOS-testing

Tester applikasjon på iOS og Android er det samme.

iOS og Android er to plattformer utviklet av Apple Inc og Google. De er helt forskjellige. Etc testmiljøer, testrammer, programmeringsspråk.

Testapplikasjon på iOS Simulator er nok.

iOS Simulator er ikke sterk nok til å teste en app. Fordi iOS Simulator har noen begrensninger:

  • Maskinvarebegrensninger (kamera, mikrofoninngang, sensor)
  • Appens brukergrensesnitt kan se ut til å kjøre både raskere og jevnere enn på en enhet
  • API-begrensninger
  • Noen rammeverk støttes ikke (Media Player, Store Kit, Message UI..)

Alle vil laste ned appene mine på appbutikken fordi den har mange funksjoner

Jo flere funksjoner applikasjonen din har, jo flere feil kan du få. Ingen brukere vil laste ned applikasjonen din hvis den fortsatt har mange mangler.