Testhandledning för iOS-appar: Manual & Automation

Vad är iOS App Testing?

iOS-apptestning är en testprocess där en iOS-applikation testas på riktiga Apple-enheter för att kontrollera om den fungerar som förväntat eller inte för specifika användaråtgärder som installationstid, användargränssnitt, användarupplevelse, utseende, beteende, funktionalitet, laddningstid, prestanda, app Butiksinformation, OS-versionsstöd etc.

Varför testa iOS-appar?

iOS-apptestning krävs eftersom iOS är Apples plattform för mobilapplikationer som släpptes den 29 juni 2007. Till skillnad från Android, Apple licensierar inte iOS för installation på icke-Apple-maskinvara. iOS- och iOS-applikationer kan bara installeras på Apple-enheter och därför måste din iOS-app vara kompatibel med iOS-versioner och iOS-enheter.

IOS-apptestning

Detta är den vanliga frågan när utvecklare skapar en iOS-applikation.

IOS-apptestning

Det spelar ingen roll hur mycket tid du investerar i design och implementering, misstag är oundvikliga och buggar kommer att dyka upp. Det finns några vanliga buggar i iOS-applikationen. Som visas i bilden nedan.

IOS-apptestning

Appen kraschar

Ett av de mest frustrerande problemen när du använder Apples enheter är att ett program kan krascha ofta under körning. Många gånger kraschar appen eftersom det finns några buggar eller minnesläckor i appar.

Applikationsinkompatibiliteter

Din iOS-applikation kan fungera perfekt på nuvarande iOS-version, men om iOS uppgraderas kanske det inte fungerar på grund av inkompatibilitetsproblem.

Säkerhetssårbarhet

En säkerhetssårbarhet i iOS tillåter hackaren att attackera dina iOS-enheter, stjäla din privata information. Hittills har allvarliga säkerhetsbrister för iPhone upptäckts i olika iOS-versioner.

Minne läcker

Minnesläckor är block av allokerat minne som programmet inte längre använder. Minnesläckor gör att din iOS-applikation kraschar.
De är buggar och bör alltid fixas.

iOS testar MindMap

IOS-testning MindMap

Som visas i bilden ovan, iOS Testning MindMap visar alla objekt som testare bör tänka på när de utför tester på iOS.

Checklista för iOS-applikationstestning

Den här checklistan är speciellt utformad för att testa egenskaperna hos iOS-mobilapplikationer. Uppenbarligen testar den bara generiska applikationsegenskaper och inte dess funktionalitet.

  • Kontrollera installationstiden för applikationen på enheten. Se till att applikationen installeras inom en acceptabel tid.
  • När applikationen är installerad kontrollerar du om applikationen har appikon och namn. Se också till att både ikonen och namnet är självförklarande och återspeglar programmets kärnavsikt.
  • Starta programmet och kontrollera om startskärmen visas.
  • Kontrollera startskärmens timeout och tiden det tar att ladda hemskärmen. Appens startskärm bör laddas inom en acceptabel tid. Om startskärmen bara tar längre tid att ladda, så finns det större chans för användaren att avsluta eller till och med avinstallera själva programmet. Kontrollera också hur innehållet laddas på startskärmen.
  • Applikationens huvudfunktion bör vara uppenbar omedelbart. Det borde tala för sig självt.
  • Kontrollera om appen stöder både liggande och stående orientering. Om så är fallet, kontrollera appen i båda riktningarna. Applikationens användargränssnitt bör ställas in därefter.
  • Utan internetanslutning startar du programmet. Se till att appen beter sig som designad/önskad. Det finns en chans att applikationen kraschar när den startas eller bara visar en tom skärm.
  • Om applikationen använder platstjänster kontrollerar du om varning om platsbehörighet visas eller inte. Den här varningen bör endast skickas till användaren en gång.
  • Om applikationen skickar push-meddelanden, kontrollera sedan om push-aviseringsbehörighetsvarning visas eller inte. Denna varning bör också uppmanas till användaren endast en gång.
  • Starta programmet, avsluta det och starta om. Kontrollera om appen beter sig som designad/önskad
  • Stäng applikationen genom att trycka på hemknappen på enheten och öppna appen igen. Kontrollera om appen fungerar som designad/önskad.
  • När den är installerad kontrollerar du om appen är listad i iPhones inställningsapp.
  • Efter att applikationen har gjorts live, kontrollera om applikationen kan hittas i "App Store." Det kommer att finnas en OS-version som stöds för applikationen. Så se till att applikationen kan hittas i enhetens "App Store" som stöds av operativsystemversionen. Applikationen bör inte heller listas i enhetens "App Store" som inte stöds av OS-version.
  • Kontrollera om programmet går i viloläge när det körs i bakgrunden för att förhindra att batteriet laddas ur.
  • Om applikationens prestanda är långsam eller när innehållet laddas, kontrollera om det finns en statusikon för förloppet ("Lasar in..."), helst med ett specifikt meddelande.
  • Sök efter programmet med dess namn i enhetens sökfält. Kontrollera om appen är listad
  • Kontrollera om utseendet på knappar som utför standardåtgärder inte ändras i appen (till exempel: uppdatera, organisera, papperskorgen, Svara, tillbaka, etc.)
  • Kontrollera om standardknappar inte används för andra funktioner än de normalt används för

iOS-teststrategi

Bilden nedan introducerar några vanliga typer av iOS-teststrategier.

IOS-teststrategi

Automatiserad testning

Automatiserad testning är de största fördelarna med iOS-testning. Det gör att du snabbt kan upptäcka buggen och prestandaproblem. Fördelarna med automatisk testning enligt nedan:

  • Automatisk testning kan köras på flera enheter, vilket sparar tid
  • Automatisk testning kan rikta in sig på SDK:er. Du kan köra test på olika SDK-versioner
  • Automatiserad testning ökar din produktivitet vid testning, spara dina kostnader för programvaruutveckling
  • Det finns många testramverk med öppen källkod som stöder automatiserad testning på iOS

Enhetstestning med OCUnit

När den ursprungliga iOS SDK släpptes saknades den Enhetstestning Förmågor. Så Apple har tagit tillbaka OCUnit enhetstestlösning i iOS SDK version 2.2.

OCUnit är ett testramverk för C- Objective i Mac OS. De största fördelarna med ett OCUnit-ramverk är den snäva integrationen i XCode utvecklingsmiljö som visas nedan.

Enhetstestning med OCUnit

Några av fördelarna med OCUnit visas i bilden nedan.

Enhetstestning med OCUnit

UI-testning med UIAutomation

UI-testning med UIAutomation

UI-automatisering är en JavaScript bibliotek som tillhandahålls av Apple Inc, som kan användas för att utföra ett automatiskt test på riktiga enheter och på iOS Simulator. Detta ramverk läggs till iOS SDK4.0. Med hjälp av UI Automation kan du automatisera testning av applikationen inte bara på simulatorn utan även på den verkliga enheten.

UIAutomation ger dig dessa fördelar:

  • Minska ansträngningen på Manuell testning
  • Använd mindre minne för att utföra alla dina tester
  • Förenkla din testprocedur för användargränssnittet (tryck bara på en eller tre knappar och kör hela dina testsviter)

UIAutomation-instrumentet fungerar från skript, som är skrivna i JavaManus. Det simulerar användarhändelser på mål iOS-applikationen.

UIAutomation Nackdelar vs.Pros

Fördelar Nackdelar
1. Bra stöd för gester och rotation Det är inte öppen källkod, mindre stöd från utvecklaren
2. Kan köra UIAutomation-tester på enheten, inte den enda simulatorn. Kan inte integreras med andra verktyg särskilt bra
3. Utvecklad av JavaScript, det är ett populärt programmeringsspråk.

UI-testning med UIAutomation

Ovanstående figur representerar några vanliga klasser i UIAutomation-ramverket.

  • Smakämnen UIAElement class är superklassen för alla användargränssnittselement i automationssammanhang
  • Smakämnen UIATarget klass representerar användargränssnittselementen på hög nivå i systemet som testas
  • Smakämnen UIALogger klass ger test- och felinformation om hämtningsfunktionalitet
  • Smakämnen UIActivityViewklass ger åtkomst till och kontroll över aktivitetsvyer i din app.
  • Smakämnen UIAAactionSheet klass ger åtkomst till och kontroll över åtgärdsblad i din app.
  • Användare Händelseåtgärd
  • UISlider klass
  • UIABnappklass
  • UIAKyckelklass
  • UIAtangentbordsklass

Andra ramverk för automatisk testning

  • Frank: Automatiserad Acceptanstest ramverk för iPhone och iPad
  • KIF : är en iOS integrationstest ramverk. Det möjliggör enkel automatisering av iOS-appar genom att utnyttja tillgänglighetsattributen som operativsystemet gör tillgängliga för personer med synnedsättning.

Manuell testning

Utforskande testning

Det är en testning utan en formell testplan. Exploratory Testing är en billig testmetod, men den kan missa potentiella buggar i din iOS-applikation.

Exploratory Testing Nackdelar vs. Fördelar

Fördelar Nackdelar
1. Less förberedelse behövs, tidigt upptäcka allvarliga buggar. Kräver hög skicklighet av testaren
2. Behöver inte Testplan påskynda felupptäckten. Testtäckningen är låg. Det garanterar inte att alla dina krav testas.
3. De flesta buggar upptäcks tidigt genom någon form av utforskande testning Brist på testdokumentation

Användare Provning

Användartestning är en typ av manuell testning på iOS. Syftet med detta test är att skapa bättre appar, inte bara buggfri appar. Bilden nedan visar fyra typer av användartestning

Användare Provning

Begreppstest

Utvärdera användarnas svar på en applikationsidé innan den släpps på marknaden. Procedurer för koncepttestning på iOS beskrivs nedan

Begreppstest

Användbarhetstestning

Användbarhetstestning är ett test hur lätt det är att använda din iOS-applikation. I iOS-testning kan användbarhetstest vara registreras att komma ihåg eller att dela med andra.

Det finns några verktyg som stöder användbarhetstestning på iOS.

TryMyUI mobilanvändartestappar för Android och iOS.

Delight.io, det här verktyget kan fånga verklig användarinteraktion på dina iOS-appar.

Betatestning

Betatestning är integrationstest med riktiga data för att få slutlig feedback från användarna. För att distribuera dina appar för betatestning måste du följa stegen nedan.

Betatestning

-Förkonditionering: Om du betatestar en slutlig kandidat för en release, se till att validera appen innan du distribuerar den till testare.

-Hitta testare via tjänsten: du samlar in enhets-ID från testare och lägger till dem Medlemscenter

-Skapa ad-hoc distribution: Ad hoc-distribution låter testaren köra din app på sin enhet utan behov Xcode. Detta steg innehåller 2 delsteg

  • Skapa distributionscertifikat
  • Skapa ad-hoc provisioneringsprofiler

-Be om feedback från testare: Testare genomför tester och skickar felrapporter till dig. När din app har släppts kan du hämta rapporterna från iTunes ansluta.

A / B-testning

A / B-testning är ett av de mest kraftfulla sätten att utvärdera effektiviteten av din iOS-app. Det använder randomiserade experiment med två enheter, A och B.

A / B-test

A/B-testning omfattar tre huvudsteg

  • Konfigurera ett test: Förberedde 2 versioner av din iOS-app (A & B) och testmått
  • Testa: Testa 2 iOS-appversioner ovan på enheter samtidigt.
  • Analysera: Mät och välj en bättre version att släppa

Följande verktyg stöder A/B-testning på iOS.

  • Stiga upp: A/B-testning för både iOS och Android. Den kan integreras i din iOS-app och göra testprocessen snabbare.

Bästa metoder för A/B-testning

  • Definiera mål av ditt test. Alla tester är värdelösa utan ett mål.
  • Kolla på slutanvändare använder din app första gången
  • Körning ett testa endast per uppdatering. Det sparar tid när du genomför tester
  • Övervaka ditt test noggrant. Du kan lära dig erfarenheter från ditt test genom att övervaka det.

iOS-testning Bästa praxis

Här är några tips du bör känna till när du organiserar testningen av din iOS-applikation

  1. Testa applikationen på en riktig enhet för att bli verklig om prestanda
  2. Förbättra dina testmetoder, eftersom traditionella testmetoder inte längre är tillräckliga för att täcka alla tester på iOS-testning
  3. Använda konsollogg för att testa iOS-applikationen. Det här är en iOS-funktion som innehåller information från varje applikation på enheten.
  4. Dokument programbuggar som använder inbyggd skärm kort kommando. Det hjälper utvecklaren att förstå hur felen uppstår.
  5. Kraschrapportering är användbara verktyg när du testar din applikation. De kan upptäcka krascher och loggdetaljer så att du enkelt kan undersöka felen.

MYTER om iOS-testning

Det här avsnittet undersöker några populära myter och realiteter kring iOS-testning

Testar applikation på iOS och Android är samma sak.

iOS och Android är två plattformar som utvecklats av Apple Inc och Google. De är helt olika. Etc testmiljöer, testramar, programmeringsspråk.

Testapplikation på iOS Simulator räcker.

iOS Simulator är inte tillräckligt stark för att testa en app. Eftersom iOS Simulator har vissa begränsningar:

  • Hårdvarubegränsningar (kamera, mikrofoningång, sensor)
  • Appens användargränssnitt kan se ut att fungera både snabbare och smidigare än på en enhet
  • API-begränsningar
  • Vissa ramverk stöds inte (Media Player, Store Kit, Message UI...)

Alla kommer att ladda ner mina appar på app store eftersom den har många funktioner

Ju fler funktioner din applikation har, desto fler buggar kan du få. Ingen användare kommer att ladda ner din applikation om den fortfarande har många defekter.