IOS App Testing Tutorial: Manual & Automatisering

Innehållsförteckning:

Anonim

Vad är iOS-apptestning?

iOS App Testing ä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 Store-lista, OS-versionstö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 licensierar Apple inte iOS för installation på icke-Apple-maskinvara. iOS- och iOS-applikationer kan bara installeras på Apple-enheter, därför måste din iOS-app vara kompatibel med iOS-versioner och iOS-enheter.

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

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

  1. Applikationen kraschar

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

  1. Programkompatibiliteter

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

  1. Säkerhetsproblem

En säkerhetsproblem i iOS gör det möjligt för hackaren att attackera dina iOS-enheter, stjäla din privata information. Hittills upptäcks allvarliga säkerhetsproblem i iPhone i olika iOS-versioner.

  1. Minne läcker

Minnesläckor är block av tilldelat minne som programmet inte längre använder. Minneläckage orsakar att din iOS-applikation kraschar. De är buggar och bör alltid åtgärdas.

I den här handledningen lär du dig-

  • Varför testa iOS?
  • iOS-testning av MindMap
  • Checklista för iOS-test
  • iOS-teststrategi
  • Automatiserad testning
    • Enhetstestning med OCUnit
    • UI-testning med UIAutomation
  • Manuell testning
    • Exploratory Testing
    • Användartestning
      • Koncept testning
      • Testning av användbarhet
      • Betatestning
      • A / B-testning
  • iOS-test Bästa praxis
  • MYTER OM iOS-testning

iOS-testning av MindMap

Som visas i figuren ovan visar iOS Testing MindMap alla objekt som testaren bör överväga när man utför test på iOS.

Checklista för iOS-applikationstest

Denna checklista är speciellt utformad för att testa egenskaperna hos iOS-mobilapplikationer. Uppenbarligen testar den bara generiska applikationsegenskaper och inte funktionaliteten hos den.

  • Kontrollera installationstiden för applikationen på enheten. Se till att programmet installeras inom en acceptabel tid.
  • När applikationen är installerad, kontrollera om appen har appikon och namn. Se också till att både ikon och namn är självförklarande, vilket återspeglar programmets kärnintention.
  • Starta programmet och kontrollera om skärmen visas.
  • Kontrollera tidsgränsen för plasmaskärmen och det tar tid att ladda hemskärmen. Applikationens startskärm ska laddas inom en acceptabel tid. Om startskärmen bara tar mer tid att ladda, 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älv.
  • Kontrollera om appen stöder både liggande och stående orientering. Om så är fallet, kolla appen i båda riktningarna. Applikationens användargränssnitt bör ställas in i enlighet därmed.
  • Starta applikationen utan internetanslutning. Se till att appen fungerar som designad / önskad. Det finns en chans att applikationen kan krascha när den startas eller bara kan visa en tom skärm.
  • Om applikationen använder platstjänster kontrollerar du om varning om platsbehörighet visas eller inte. Den här varningen ska uppmanas användaren bara en gång.
  • Om applikationen skickar push-aviseringar, kontrollera sedan om push-anmälningsbehörighetsvarning visas eller inte. Den här varningen ska också uppmanas användaren bara en gång.
  • Starta programmet, avsluta det och starta om det. Kontrollera om appen fungerar som designad / önskad
  • Stäng applikationen genom att trycka på enhetens hemknapp och öppna appen igen. Kontrollera om appen fungerar som designad / önskad.
  • Kontrollera om appen är listad i iPhones inställningsapp när den är installerad.
  • När applikationen har gjorts live, kontrollera om applikationen finns i "App Store." Det finns operativsystemversion som stöds för applikationen. Se till att applikationen finns i OS OS-enhetens "App Store". Programmet bör inte heller listas i OS-enhetsversionen "App Store" som inte stöds.
  • Kontrollera om applikationen går i viloläge när den körs i bakgrunden för att förhindra att batteriet tappar.
  • Om applikationens prestanda är långsam eller när innehållet laddas, kontrollera om det finns en statusstatusikon ("Laddar ..."), helst med ett specifikt meddelande.
  • Sök i programmet med dess namn i enhetssökfältet. 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 osv.)
  • Kontrollera om standardknappar inte används för andra funktioner som de normalt används för

iOS-teststrategi

Nedanstående figur introducerar några vanliga typer av iOS-teststrategi.

Automatiserad testning

Automatiserad testning är de största fördelarna med iOS-testning. Det gör att du snabbt kan upptäcka problem med fel och prestanda. Fördelarna med automatiserad testning som visas nedan:

  • Automatiserad testning kan köras på flera enheter, vilket sparar tid
  • Automatiserad testning kan rikta SDK: er. Du kan köra test på olika SDK-versioner
  • Automatiserad testning ökar din testproduktivitet, sparar dina kostnader för programutveckling
  • Det finns många testkällor med öppen källkod som stöder automatiserad testning på iOS

Enhetstestning med OCUnit

När den ursprungliga iOS SDK släpptes saknade den enhetstestningsfunktioner. Så Apple har tagit tillbaka testlösningen OCUnit-enhet 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ön som visas nedan.

Några av fördelarna med OCUnit visas i nedanstående bild.

UI-testning med UIAutomation

UI Automation är ett 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 i iOS SDK4.0. Med UI Automation kan du automatiskt testa applikationen inte bara på simulatorn utan också på den verkliga enheten.

UIAutomation ger dig följande fördelar:

  • Minska ansträngningen vid manuell testning
  • Använd mindre minne för att utföra alla dina tester
  • Förenkla ditt UI-testförfarande (tryck bara på en eller tre knappar och kör dina testsviter)

UIAutomation-instrument fungerar från skript som är skrivna i JavaScript. Det simulerar användarhändelser i mål-iOS-applikationen.

UIAutomation Cons vs. Pros

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

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

  • Den UIAElement klassen är super klass för alla användargränssnittselement i samband med Automation
  • Den UIATarget klassen representerar högnivåanvändargränssnitt element i systemet under test
  • Den UIALogger klassen ger test och felinformation om hämtning funktionalitet
  • Den UIAActivityView klassen ger tillgång till, och kontroll av, visningar aktivitet i din app.
  • Den UIAActionSheet klassen ger tillgång till och kontroll över, action ark i din app.
  • Användarhändelseåtgärd
    • UISlider-klass
    • UIAKnappsklass
    • UIAKey-klass
    • UIAKeyboard-klass

Andra automatiserade testramar

  • MonkeyTalk: Ett verktyg för automatiserad testning av iOS-, Android-, HTML5- och Adobe-applikationer. Det är en integrerad miljö för hantering och körning av testsviter
  • Frank: Automated Acceptance Test framework för iPhone och iPad
  • KIF: är ett testramverk för iOS- integration . Det möjliggör enkel automatisering av iOS-appar genom att utnyttja de tillgänglighetsattribut som operativsystemet gör tillgängligt för personer med synstörning.

Manuell testning

Exploratory Testing

Det är en testning utan en formell testplan. Exploratory Testing är låg kostnadstestmetod, men det kan missa de potentiella buggarna i din iOS-applikation.

Exploratory Testing Cons vs. Pros

Fördelar Nackdelar
1. Mindre förberedelser behövs, upptäcka tidigt allvarliga buggar. Kräver testarens höga skicklighet
2. Behöver inte testplanen påskynda felsökningen. 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ändartestning

Användartestning är en typ av manuell testning på iOS. Syftet med denna testning är att skapa bättre appar, inte bara bug-fria appar. Nedanstående figur visar fyra typer av användartester

Koncept testning

Utvärdera användarens svar på en applikationsidé innan du släpper ut på marknaden. Procedurer för koncepttestning på iOS beskrivs som nedan

Testning av användbarhet

Usability Testing är ett test hur lätt att använda din iOS-applikation. I iOS-test kan användbarhetstest spelas in för att komma ihåg eller dela med andra.

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

Magitest, en enkel iOS-användbarhetstestning för webbplatser och appar.

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

Betatestning

Betatestning är integrationstestningen med verkliga 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.

- Förutsättning : Om du betatestar en slutkandidat för en release, se till att du validerar 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 i medlemscentret

- Skapa ad hoc-distribution : Ad Hoc-distribution gör att testaren kan köra din app på sin enhet utan X-kod. Detta steg innehåller två delsteg

  • Skapa distributionscertifikat
  • Skapa Ad-hoc-provisioneringsprofiler

- Begär feedback från testaren: Testaren utför testning och skickar felrapporter till dig. När din app har släppts kan du hämta rapporterna från iTunes connect.

A / B-testning

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

A / B-test innehåller tre huvudsteg

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

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

  • Uppstå: 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ålet för ditt test. Varje test är värdelöst utan mål.
  • Titta på slutanvändare använder din app första gången
  • Kör bara ett test per uppdatering. Det sparar tid när du utför testning
  • Övervaka ditt test noggrant. Du kan lära dig erfarenheter från ditt test genom att övervaka det.

iOS-test Bästa praxis

Här är några tips du bör veta 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 test på iOS-test
  3. Använd konsollogg för att testa iOS-applikationen. Detta är en iOS-funktion som innehåller information från alla applikationer på enheten.
  4. Dokumentapplikationer med inbyggt kortkommando på skärmen . Det hjälper utvecklare att förstå hur buggarna uppstår.
  5. Kraschrapportering är användbara verktyg när du testar din applikation. De kan upptäcka kraschar och logga detaljer så att du enkelt kan undersöka buggarna.

MYTER OM iOS-testning

I det här avsnittet undersöks några populära myter och verkligheter i iOS-testning

Testapplikation 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 tyckas köra både snabbare och smidigare än på en enhet
  • API-begränsningar
  • Vissa ramar stöds inte (Media Player, Store Kit, Message UI ...)

Alla kommer att ladda ner mina appar i App Store eftersom de 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 fel.