Nya krav på test i den mobila världen

2014-05-15 Artikelbanken Test Läst 8020 gånger

Mobiltelefoner har funnits med oss ganska länge nu, från 80-talets yuppietegelsten, 90-talets intåg med mobiltelefoner för gemene man, till 2000-talets mobilrevolution där vi sett sms-explosion, smartphonerevolution och med den: intåget för mobilapplikationer.
Lika länge som mobiltelefonen funnits, har det självklart också funnits mobiltestare. Från den rena mobiltestaren som testade signalstyrka, sms-funktioner, till de tidiga applikationstestarna som testade företagsspecifika mobillösningar, till dagens situation där vi har en marknad där kompetens inom mobilapplikationstestning bör ligga inom alla testares och alla organisationers intresseområde. Mobilitet och mobila applikationer har gått från att vara en separat del, bortkopplad från organisationernas kärnverksamheter, till att idag i många fall vara den dominerande kanalen i kommunikation med kunder.

Som testare är det självklart många områden som är lika inom test av en applikation som en vanlig desktoplösning eller om det är en mobilapplikation. Det finns dock några väsentliga skillnader som påverkar allt från den enskilda testarens arbete, till hur man som organisation bör planera för sina mobilprojekt.

I den här artikeln tänkte vi ge er läsare några exempel på just dessa skillnader samt några handfasta tips att tänka på när det gäller mobilapplikationstestning.

Skillnader mellan PC och Mobil

För att kunna besluta hur man ska testa en mobilapplikation så kan det vara bra om man känner till skillnaderna mellan att testa ”vanliga” PC-program och mobilapplikationer. För att nämna några av de mest avgörande:

PC

  • Testaren sitter oftast på ett och samma ställe, dvs kontoret
  • Det används antingen WIFI eller fast uppkoppling till internet
  • Skärmen går oftast inte att vrida och saknar touch screen
  • Det finns en högre tolerans från användarna, vilket kan beror på att kvaliteten på programvaran är högre av den anledningen att leveranstiden är längre

Mobil

  • Fler situationer som behöver simuleras så som; dålig täckning, standby, batteriet dör, etc
  • Går att testa var som helst så länge det finns uppkoppling
  • Test av olika typer av uppkoppling 3G/LTE/WiFi/USB
  • Det går oftast att köra applikationen i olika skärmlägen, landskap eller porträtt
  • Snabba releaser eftersom programmen är mindre och med begränsad funktionalitet
  • Toleransen är låg hos användarna vilket beror på att det finns andra applikationer som gör exakt samma sak. Det är lätt att välja en annan applikation i hopp om att den ska vara av bättre kvalitet

Utmaningar inom applikationstestning

Operativsystemen

Det finns i skrivande stund tre operativsystem som dominerar den mobila marknaden: Android, IOS och Windows. Detta gör att beställare behöver ta ställningen till om applikationen ska stödja alla plattformar. Men vi återkommer till detta lite längre fram i artikeln.

Android är överlägset det största operativsystemet idag. Det är på gott och ont, för utmaningen med Android är att det finns många aktiva versioner av operativsystemet ute hos användarna. Detta beror på att den senaste versionen inte skickas ut till alla som använder Android på samma sätt som till exempel Apple gör. Där ligger uppgraderingsgraden nära 100 % snart efter att en ny version har släppts.

Om vi räknar från Android 4.0 (Ice Cream Sandwich) som släpptes den 19 oktober 2011, finns det 5 stora versioner som används. Därefter har det kontinuerligt kommit uppdateringar som diagrammet nedan visar.

Den senaste versionen av Android heter KitKat 4.4 och släpptes i november 2013. Från och med januari 2014 är Android 4.x Jelly Bean den version som används till ca 59 % av alla androidtelefoner världen över. Som nämndes tidigare får alla som äger en iPad/iPhone den senaste versionen av Apples iOS, vilket gör det naturligt för användarna att uppdatera programvaran så fort de får möjlighet. Den senaste versionen är i dagsläget IOS 7.1.1.

Antalet användare som kör Windows i sina mobiler växer stadigt och operativsystemet som till största del används idag globalt sett är Windows 7.8. Den version som växer mest för Windows är dock 8.1, det är också för denna version som applikationsutvecklingen fokuserar på idag.

Utöver de ledande operativsystemen finns det ett par mindre aktörer, bland annat Blackberry, Firefox OS och Sailfish. Blackberry är främst inriktat till företagsorganisationer medan Firefox OS och Sailfish är nykomlingar som vi kommer att följa med spänning. Vem vet, om fem år är det kanske något av de två sistnämnda operativsystemen som kommer att dominera marknaden.

Enheterna

Nästa utmaning är att varje tillverkare har flera modeller av telefoner som består av olika versioner av operativsystem. Återigen är det Android som står för majoriteten av enheter då det finns ca 300 telefoner och 467 surfplattor. Det är viktigt att vara medveten om att surfplattorna skiljer sig i storlek, prestanda och komponenter vilket gör att applikationen kan bete sig annorlunda än i telefonen. Apple har ”endast” 15 telefoner och 43 surfplattor medan Windows ligger på ca 40 telefoner och 221 surfplattor.

Anledningen till att det är så höga siffror beror på att vi räknat varje enhet med dess olika minneskapacitetvarianter samt olika möjligheter till uppkoppling (WiFi, 3G etc).

För att göra det lite mer komplicerat så varierar även upplösningen på enheterna, vilket kan medföra grafiska fel beroende på vilken enhet man kör.

Webbläsarna

Om det är webbaserade (responsive/HTML5) applikationer som ska testas så måste de olika webbläsarna räknas in. Några av de vanligaste webbläsarna är Internet Explorer, Firefox, Chrome, Safari och Opera vilket gör att en testsvit snabbt blir gigantisk om tester görs på alla webbläsare. Med detta sagt kan en lätt panikkänsla uppstå vid testning av en applikation.

Lugn - det finns knep

Det handlar helt enkelt om att avgränsa sig, och det finns några frågor som kan behöva besvaras för att kunna ta bra beslut. Den första är vilka plattformar applikationen ska stödja. Det är idag vanligast att applikationer först lanseras till iPhone och Android, men Windows Phone börjar ta fler andelar och troligtvis kommer inom kort både leverans och funktionalitet vara på samma nivå som de två förstnämnda. För att kunna bestämma plattform kan man börja med att titta på nuvarande statistik eller loggar från företagets kanaler för att göra en enhetsanalys över vilka enheter som kunderna använder just nu. Om det till exempel visar sig majoriteten använder sig av iPhone är det den plattform man bör börja utveckla för.

Om det är jämt mellan de tre plattformarna finns det en möjlighet att välja ett flaggskepp från varje operativsystem för att hålla sig à jour med den senaste tekniken. Det kommer behövas utföras stickprover på äldre enheter och versioner av OS för att se att huvudflöden fungerar. Dessa tester bör dock vara nerskalade, annars kommer testtiden att skena iväg vilket sällan accepteras av beställaren.

Det är även bra att hålla sig uppdaterad om framtida telefoner och uppdateringar av operativsystemen för att slippa otrevliga överraskningar. Det är inte ovanligt att en ny telefon eller nytt OS gör att viktiga funktioner i en applikation slutar att fungera. För den som vill täcka så mycket tester som möjligt samt hålla nere kostnader finns det en del mobiltjänster som kan underlätta testningen. Det finns företag vilka erbjuder betatestare som hjälper till att testa, vilket gör att inköpskostnaden av mobiler försvinner. Fördelen är att du själv bestämmer vilka telefoner och operativsystem som din applikation skall testas på samt att du får snabbt en stor testtäckning då det finns över 15 000 testare i vissa nätverk. Det finns även mobilhotell, vilket ger möjligheten att fjärrstyra riktiga telefoner där möjligheten finns att spela in testerna som skall utföras.

Vi ska inte glömma bort emulatorerna av telefoner som kan täcka en del av testerna, men det rekommenderas inte att enbart köra på emulatorer då de inte kan simulerar en riktig telefon tillräckligt bra.

Tips för testaren

För att underlätta testningen av mobilapplikationer vill vi ge dig som läsare några bra tips. Det första blir att kombinera utforskande tester med listan nedan då det är ett snabbt och effektivt sätt att hitta många defekter.

Simulera verkligheten

Som vi nämnde i början av artikeln finns det fler scenarier att simulera när man testar applikationer jämfört med datorer. Att försöka återspegla verkliga händelser i vardagen är en nyckelfaktor för att hitta de buggar som visar sig när användaren befinner sig i exempelvis tunnelbana under jord där teckningen är som sämst. Det finns två generella testområden där väldigt många fel dyker upp. Det första är när användaren multitaskar, till exempel byter låt, googlar på en restaurang eller kontrollerar när nästa tunnelbana går. Det andra är avbrottshantering, där avbrotten kan vara allt från att täckningen försvinner, batteriet tar slut, telefonen går ner i standby-läge eller om användaren får ett samtal.

Växla uppkoppling

Det är viktigt att testa att växla från WiFi och 3G och vice versa. Det är lätt att glömma bort när man som testare sitter på kontoret med full fart på det trådlösa nätverket att användarna kommer till största del köra på det mobila nätverket.

Byt språk

Det är lätt att tro att det inte ska spela någon roll vilket språk man har på telefonen men det kan vara stora skillnader på ordlängden samt specialtecken som används i vissa språk. En gång när vi prövade att ändra till engelska dök det upp röda streck lite här och var i applikationen samt att datumet visas annorlunda vilket gjorde att hela datumet inte visades.
Ändras språket till tyska kan det tyska ü ställa det till om man inte tänkt på detta.

Kombinera olika lägen

Ett område som kan generera roliga defekter är en kombination av inaktivitet/standby med landscape/portrait. Detta kan göra att applikationen inte riktigt hänger med och då kan det se ut på följande vis:

Detta är några exempel på hur det kan se ut vid mix av olika lägen. Därför kan det ibland vara bäst att låsa applikationen i porträttläge för att slippa dessa problem. Men det är som sagt inte alltid den bästa lösningen då det kan behöva skrivas/läsas mycket i applikationen.

Skapa en mobilteststrategi

Otaliga undersökningar och rapporter visar att stora satsningar görs, planeras att göras, eller behöver göras inom verksamheterna när det gäller just mobilområdet. Som testare gäller det här att vi hjälps åt och lyfter frågan kring hur verksamheten jobbar med mobilapplikationsutveckling. För varje testare, vare sig man har jobbat med mobiltestning förut eller inte, är det mer och mer ett område man kommer komma in på, det är viktigt som testare att förstå vilka dimensioner som tillkommer.
Som verksamhet är det också viktigt att förstå dessa extra dimensioner och att ha förståelse för att den fördelning som tidigare gällt, där test tagit ca en tredjedel i anspråk av utvecklingstiden inte längre gäller. Sammantaget om vi tittar på de områden test måste gå igenom här ovan, och ett antal till, krävs det i ett mobilutvecklingsprojekt snarare en fördelning 50/50 mellan utveckling och test.
Test är helt enkelt ett område som måste satsas på om det ska vara en effektiv och produktiv utvecklingsprocess där inte utvecklarna stundtals kommer sitta inaktiva i väntan på att test kommer igenom de testfall som de måste köra.
Men oavsett hur det kanske ser ut i morgon, vad kan testare eller verksamhet göra för att ha ett så bra utgångsläge som möjligt när det gäller test av mobilapplikationer?
Ett första steg är att skapa en mobilteststrategi, eller lägger till ett avsnitt i den befintliga teststrategin som rör de delar som handlar om mobiltest.

Förslag på saker att ta upp i denna strategi:

  • Vilka operativsystem inklusive versioner av dessa kommer applikationen att testas på?
    • Android X.X, iOSX.X, Windows Phone X, något annat?
  • Vilka enheter kommer testerna utföras med?
    • iPhone? Samsung? HTC?
  • Vilka nätverk och operatörer kommer testerna testas på?
    • WiFi/3G/LTE,
    • Telia, Telenor etc.
    • Operatörer utomlands?
    • Roaming?
  • Kommer emulatorer, betatestare, cloudlösningar att användas?

Sist men inte minst bör det tas ställning till hur ytterligare två områden ska hanteras i sin testplan eller strategi:

Prestanda

Tittar vi utanför ramarna jämfört med prestanda för desktoplösningar så kan vi när det gäller mobilapplikationer se ett nyckelområde som är högst väsentligt att titta på: batteriet.
Oavsett vilken typ av applikation man utvecklar är det viktigt att tidigt mäta hur applikationen använder processorn. Vilken användare som helst kan bli irriterad om batteriet dräneras för snabbt, och för vissa typer av applikationer kan det vara helt avgörande för om den tas emot väl av dess tilltänkta användare. Ett exempel skulle kunna vara en applikation som använder sig av GPS-funktioner. Sannolikt är en person som använder en sådan typ av applikation ute och rör på sig, utan möjlighet att ladda telefonen. Om batteriet töms snabbt kan du vara alldeles säker på att användaren kommer att dra sig för att använda applikationen allt för mycket, om ens alls.
Kort sagt, som testare kan du här göra något så enkelt (men lätt att glömma bort) som att se till att inte ha den mobila enheten inkopplad till någon strömkälla när du kör dina tester.

Säkerhet

Här gäller det att analysera vad för typ av potentiellt känslig data som applikationen hanterar. Om den hanterar känslig data, så som personuppgifter, bankkonton och liknande, vad händer om sessionen avbryts oväntat? Raderas data som det ska, eller ligger något kvar i cacheminne eller liknande?
Kan användaren spara applikationen på ett uttagbart minneskort? Vad händer om du sen flyttar över minneskortet till en annan enhet?
Är känslig information som sparas i telefonen krypterad eller kan den nås av personer som har direkt tillgång till plattan/telefonen? Den här typen av enheter är tyvärr flera gånger om mer trolig att bli stulen, eller tappas bort, än en laptop eller dator och gör säkerhetsfrågor av den här typen allt viktigare.

Riktlinjer för operativsystemen

Slutligen, Apple, Microsoft och Google har alla riktlinjer för utveckling till deras plattformar. Förutom krav på hur applikationerna ska utformas finns här i somliga fall färdiga testfall att köra. Se till att tidigt under projektet gå in på respektive operativsystem och se vilka krav som behöver uppfyllas och testas av, samt se till att utnyttja de redan färdiga testfallen! Observera att det även för HTML5-applikationer kan vara värdefulla krav och riktlinjer som finns här, trots att ni kanske inte planerar att släppa er applikation via någon av de tillgängliga butikerna.

Riktlinjer

Sammanfattning

Som ni ser finns det en hel del nya saker att tänka på. Med ett gott förarbete och en teststrategi för mobila applikationer kommer det gå utmärkt att hantera de nya utmaningarna. Vi hoppas att ni här har hittat lite inspiration och tips som kan underlätta just ert arbete framåt. Glöm nu inte att:

  • Gör en enhetsanalys utifrån företagets loggar.
  • Sätt en plan för vilka enheter och operativssystemsversioner ni vill fokusera på, det går inte att testa allt.
  • Håll ögon och öron öppna för framtida telefoner och operativsystem för att slippa överraskningar.
  • Titta på lösningar med mobilhotell eller simulatorer. Tjänster utvecklas ständigt och snart kanske en som passar er dyker upp.
  • Skapa en mobilteststrategi/plan.
  • Och till sist: koppla ur enheten ur sladden, kör testerna i olika miljöer, utförandes olika saker, i olika lägen.
  • Installera gärna applikationen på era privata telefoner, detta gör det lättare att ta rollen som en vanlig användare.

Nästa steg

  • Läs gärna artikeln Ställ testbara krav på din app!
  • Vill ni veta mer om säkerhet och mobiler rekommenderar vi artikeln Säkerhetstestning av mobila applikationer.
  • Behöver ni hjälp med att komma igång med krav och test inom mobilapplikationsutveckling har Konsultbolag1 ett flertal konsulter med lång erfarenhet av test, krav, testledning, säkerhet och testautomatisering av mobilapplikationer.

KONTAKTA OSS

Har du frågor? Vill du ha hjälp med områden inom kravhantering och test?
Hör av dig till oss! Vi hjälper dig gärna. 

Kontakt 

Dela artikeln