Ställ testbara krav på din app!

2011-09-16 Artikelbanken Test Läst 11946 gånger

För många har användning av appar blivit en självklar del av vardagen. Men vad är det som gör en app värd att prata om? Varför blir vissa en världsnyhet medan andra aldrig används? Det finns idag många hundratusentals appar och den siffran ökar för varje dag som går. Det finns alltså en stor efterfrågan på test av appar, men vad behöver jag som testare tänka på inför ett uppdrag att kvalitetssäkra en app? Är det som att testa vilket program som helst?

Syftet är nyckelordet

När du ska testa en app så är förståelsen för syftet med appen det allra viktigaste, kanske till och med viktigare än vid test av traditionella program och system. Du som testare behöver veta vad den är tänkt att användas till och vilken målgrupp den riktar sig mot. Det finns appar som ska vara funktionella, det vill säga underlätta en funktion i vardagen. Låt oss ta Sthlm Traveling som ett exempel. Det är en app som på ett smidigt sätt berättar resvägen, avgångar och eventuella störningar i trafiken inom Stockholms län. Syftet med appen är att underlätta för resenärerna.
För att jämföra med något helt annat så finns appen Android Archer, där du använder mobilens kamera för att skapa en virtuell måltavla i verkligheten. Sedan är det bara att sikta och skjuta med den konstgjorda pilbågen. Du måste dock ta hänsyn till dem verkliga hindren framför måltavlan. Syftet med appen är ren underhållning genom en kul och annorlunda idé. Appen behöver alltså inte fylla någon särskild praktisk funktion, i detta fall spelar utseendet och känslan en större roll. Med andra ord så kommer teststrategin av dessa två appar skilja sig rejält åt på grund av syftet. I fallet med Sthlm Traveling är det viktigt att verifiera synkningen mot och informationen från SLs system, medan Android Archer inte kräver någon koppling mot externa system.

Målgruppen har också en stor betydelse för testandet. Om en bank ska utveckla en app så kommer säkerhetstester ligga högst upp på listan för att det handlar om användarnas pengar. En app som hittar ny musik däremot behöver lägga mer krut på utseende och smarta sökfunktioner medan risken för att användaren blir av med pengar genom appen är liten. Därför är det viktigt att prioritera kraven och testerna efter syftet.

”Kravmärkta” appar vinner

Det är ingen nyhet att välformulerade krav är en förutsättning för att testarbetet skall bli lyckat. När det gäller appar är det dessutom inte ovanligt att ledningsgruppen säger att appen ska fungera på samma sätt som hemsidan. I dessa lägen behöver du som testare våga ifrågasätta och ställa krav. Det är viktigt att få beslutsfattarna att förstå att en app inte kan, eller ens bör, göra allt som görs på hemsidan. Det är vad hemsidan är till för. En app behöver tydliga avgränsningar på vad den ska kunna göra och vad den inte ska göra. En app bör avgränsas till ett fåtal specialiserade funktioner och utföra dessa väl.

Som nämndes ovan så är en tydligt definerad målgrupp mycket viktigt vid test av appar. Det är därför mycket effektivt att redan ifrån början arbeta utifrån olika personas (tänkta slutanvändare). Detta för att beställare, kravdesigner och testare skall ha samma bild av vilka appen är till för och därmed kunna anpassa krav och tester efter det.

Någonting som ofta glöms bort i kravställningen av appar är att även bakomliggande system påverkas av appen. Ett vanligt exempel på detta är att en populär app genererar mycket last och datatrafik gentemot befintliga system. Helt plötsligt så hinner inte bakomliggande system med att bearbeta trafiken och stora delar av verksamheten påverkas negativt. Glöm därför inte av att kravställa även mot bakomliggande system.

Tänk enkelt

Från ett användarperspektiv så har en app mycket att leva upp till. Den måste vara lätt att använda då svåranvända appar har en tendens till att avinstalleras direkt. Som testare är det därför din skyldighet att ifrågasätta design och funktion. De populära apparna har oftast en väldigt enkel design och du förstår direkt vad du ska göra för att komma igång. Användartester är på grund av detta ett mycket viktigt testmoment som måste genomföras och prioriteras när en app skall testas. Nästa viktiga punkt är stabiliteten – en app som hänger sig ofta accepteras inte av användarna. Därför är det bra att utföra uthållighetstester samt att verifiera att den kan köras samtidigt som andra program.

Vidare så spelar hastigheten en stor roll. Appen får inte dra för mycket datatrafik – ”En slö app är en död app”. Detta innebär att tester bör utföras för att säkerställa att appen enbart överför så mycket data som den behöver när den behöver det. Även prestandatester av serversidan bör utföras för att verifiera att prestandan är godtagbar om appen skulle bli populär och få många användare. Detta behöver testas i förhand då spridningen av populära appar ofta går mycket fort. Det finns många exempel på nya appar som på mindre än en vecka laddas ner runt 100 000 gånger.

Sist men inte minst ska det vara lätt att hitta till appen. Eftersom det finns så otroligt många appar så krävs bra sökord. Detta är något som lätt glöms bort, men som bör funderas på i kravarbetet och sedan verifieras i testarbetet att appen hittas genom de sökord som kravställts. Den största utmaningen är dock att vinna användarnas förtroende och få bra recensioner i appbutikerna. Testare kan se till att appen som levereras har så hög kvalitet som önskas och är möjligt, men sen är det upp till användaren att bestämma om just den appen är till nytta för honom eller henne.

Den mobila testmiljön

En stor skillnad på att testa en app jämfört med ett vanligt program är att själva telefonen eller surfplattan är din testmiljö. Det brukar finnas emulatorer i utvecklingsmiljön som man kan verifiera stora delar av appen på, men bara för att det funkar i emulatorn betyder det inte att det kommer funka när appen installeras på telefonen. Det finns en mängd olika märken, modeller med olika skärmupplösningar och versioner på operativsystemet i telefonerna. Återigen spelar kraven en avgörande roll. Vi måste veta vilka modeller, versioner samt OS-funktioner som appen skall stödja. Vidare så interagerar de flesta appar med andra funktioner och program i telefonen och måste därför verifieras. Det kan vara allt från Internet, GPS, meddelanden, samtalshistorik och synkroniseringsfunktioner. Det kommer även ständigt nya versioner av appen och därför är det väldigt viktigt att utföra uppgraderingstester. Sparade inställningar och data får inte försvinna när en ny version installeras.

Då samma funktionalitet skall testas många gånger mot olika enheter så är det naturligt att börja fundera kring eventuell testautomatisering. Att testa appar automatiserat via emulatorerna brukar sällan vara ett problem, men precis som vid manuell testning så börjar svårigheterna när du vill testa mot de riktiga enheterna. Lösningen på att kunna automatisera mot de fysiska enheterna är att använda sig av någon form av ”device manager” som automatiseringsverktyget (t.ex HP Quick Test Professional) kommunicerar med. Device managern kommunicerar sedan i sin tur med en agent som är installerad på telefonen/plattan. På så sätt kan vi använda de automatiseringsverktyg som vi är vana vid att använda även vid testautomatisering av appar.

Känn till riskerna

Appar är en relativt ny teknik som ständigt utvecklas och därför finns det väldigt lite dokumentation om hur det går till att testa en app, vilket i sin tur kan innebära en risk. Det är oroväckande hur lite vi vet om appen som installeras på vår telefon eller platta. Det står klart och tydligt när man installerar en app att den kräver tillgång till meddelanden, telefonsamtal och personlig information, men trots det så installeras den utan en användares tvekan. Säkerhetstester har visat att 8 % av de 10 000 vanligaste android apparna ”läcker” information till okända servrar utan användarens tillåtelse eller kännedom. Därför är det viktigt att utföra säkerhetstester för att minimera risken att användaren utsätts för attacker. Tyvärr så är majoriteten av apparna som finns tillgängliga inte så här utförligt testade, vilket betyder att användarna får förlita sig på vad andra människor har sagt om appen.

Sammanfattning

Vi som jobbar med kvalitetssäkring vet hur viktigt det är med tydliga krav. Att testa en app utan en bra kravspecifikation är som att bygga ett hus utan ritning. Att sedan inte veta varför eller till vem man bygger huset åt slutar sällan lyckligt. Därför är följande punkter bra att känna till för att testarbetet skall bli lyckat:

  • Syftet, vad ska appen göra och vem är målgruppen?
  • Kraven, de ska vara testbara.
  • Användarvänligt, ”less is more” när det gäller appens design.
  • Testmiljön, glöm inte att verifiera flera olika modeller och OS-versioner.
  • Säkerhetstester, måste utföras för att skydda användarnas integritet.

Vad gör en app värd att prata om? Jag skulle säga att en app som är stabil och som ger nytta på ett enkelt, bra eller roligt sätt blir en given succé. Det är alltså en blandning av användarvänlighet, design och funktion som gör att användare väljer en app och sedan sprider den vidare. Det i sig är det högsta betyget en app kan få.

Nästa steg

Ta reda på vad syftet med appen är och vilken målgrupp den riktar sig till. Då blir det lättare att skapa testfall utifrån kraven. Se även till att ha olika telefoner och plattor tillgängligt för att garantera att appen fungerar på de mest populära versionerna. Det är även viktigt att redan vid kravställningen tydligt avgränsa appens funktion.

Konsultbolag1 har utvecklat en egen app där vi har tagit fasta på det som sagts i artikeln. Vi började med att utveckla kraven eftersom de ligger till grund för testfallen. Syftet med appen, i sin första version, är att göra oss bättre på att kravställa och testa appar. Utöver det blir vår kompetensbank mobilt tillgänglig för både medarbetare och kunder med ett bonussyfte att fler ska lära sig att kravställa och testa appar. Vår egen app utvecklas enligt agil metodik och den första sprinten levererar infrastruktur samt tillgång till våra mallar.

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