Afbryd test i mobilapplikation
โก Smart opsummering
Afbrydelsestestning kontrollerer, hvordan en mobilapplikation opfรธrer sig, nรฅr et opkald, en alarm, en notifikation eller et netvรฆrksafbrydelse tager over, og om applikationen vender tilbage til sin nรธjagtige tidligere tilstand, nรฅr afbrydelsen slutter.
Hvad er Interrupt Testing?
Afbryd test er en gren af โโmobilapplikationstest, der omhandler, hvordan en applikation reagerer pรฅ en afbrydelse og vender tilbage til sin tidligere tilstand. Afbrydelsen kommer udefra applikationen - operativsystemet, hardwaren eller en anden app - og testen verificerer, at ingen data, skรฆrmtilstand eller igangvรฆrende transaktion gรฅr tabt, nรฅr kontrollen vender tilbage.
Interrupt Testing gรฆlder for alle applikationstyper - web, mobil, standalone osv. Mangfoldigheden af โโenheder, netvรฆrk og konfigurationer gรธr det langt mere fremtrรฆdende for mobil ansรธgninger end for de andre.
Hvorfor har du brug for Interrupt Testing?
Hvad er den ene ting, der nรฆsten altid sker, nรฅr du er i et mรธde? Du bliver afbrudt, ikke? Nรฅr det sker, blinker nogle mennesker ikke engang, nogle har brug for et minut til at komme tilbage, og nogle mister deres tankegang fuldstรฆndigt. Kort sagt forsรธger Interrupt Testing at finde ud af, hvilken adfรฆrd din applikation udviser.
Hold al formulering til side et รธjeblik, og se pรฅ en anden situation fra den virkelige verden. Lad os sige, at du ejer en lommelygte og tรฆnder den. Batteriet lรธber tรธr, hvilket afbryder dens nuvรฆrende aktive tilstand. Udskift batterierne, og genopret den. Lommelygten burde tรฆnde igen som normalt. Dette er use casen. En testdisciplin, der fokuserer pรฅ, om dette sker eller ej, er afbrydelsestestning.
Business casen er ligetil. En afbrydelse opstรฅr pรฅ det vรฆrst tรฆnkelige tidspunkt โ midt i en betaling, midt i en upload, midt i en formular โ og en bruger, der mister det arbejde, prรธver sjรฆldent igen. Nedbrud pรฅ CV'et, tomme skรฆrme, duplikerede transaktioner og mistet formularinput er alle defekter, som kun en afbrydelse afslรธrer, og derfor overlever de en funktionel proces, der aldrig afbryder noget.
Type af afbrydelser i mobilapplikation
Afbrydelser falder i en hรฅndfuld velkendte grupper, opsummeret i illustrationen nedenfor.
Vi kender alle de almindelige afbrydelser, der normalt opstรฅr. Her er et par af dem:
- Lavt batteri
- Batteri fuldt โ under opladning
- Indgรฅende telefonopkald
- Indgรฅende SMS
- Indgรฅende alarm fra en anden mobilapplikation
- Tilsluttet til opladning
- Tilsluttet fra opladning
- Enheden er slukket
- Pรฅmindelser om applikationsopdateringer
- Alarm
- Tab af netvรฆrksforbindelse
- Gendannelse af netvรฆrksforbindelse
Denne liste er ikke udtรธmmende, men indeholder de mest almindelige scenarier. En praktisk mรฅde at organisere den pรฅ er efter oprindelse: enhedsafhรฆngige hรฆndelser sรฅsom batteri og opladning, brugerinitierede hรฆndelser sรฅsom at besvare et opkald eller skifte app, og eksterne hรฆndelser sรฅsom tab af signal i en elevator eller en tunnel.
Lรธsning i tilfรฆlde af afbrydelse
Den forventede adfรฆrd i tilfรฆlde af disse afbrydelser er en af โโfรธlgende fire:
- Kรธr i baggrunden: Afbrydelsen tager over, mens applikationen trรฆder i baggrunden. Den fรฅr kontrol, nรฅr afbrydelsen slutter. For eksempel et telefonopkald eller FaceTime-opkald, som du deltager i, mens du lรฆser en digital bog i iBooks (eller et lignende program). Nรฅr brugeren besvarer telefonen, venter iBooks, indtil opkaldet er fรฆrdigt, og genoptager derefter, nรฅr det slutter.
- Vis alarm: Alarmen forsvinder, og du arbejder som normalt. Beskeden "SMS modtaget" vises i headeren. Brugeren bekymrer sig ikke om det og fortsรฆtter med at arbejde med applikationen som normalt. Andre mobilapp-alarmer, sรฅsom en ny venneanmodning pรฅ Facebook eller en WhatsApp-besked, falder ogsรฅ ind under denne kategori. Men hvis brugeren beslutter sig for at lรฆse beskeden, fรธlges den adfรฆrd, der er beskrevet i punkt 1. Hvis alarmen ignoreres, forbliver applikationens tilstand uรฆndret.
- Opfordring til handling: Alarmer skal slukkes eller snoozes, fรธr du kan fortsรฆtte med at arbejde. Det samme gรฆlder for appopdateringer. Du skal enten annullere eller acceptere รฆndringerne, fรธr du fortsรฆtter. Et andet eksempel er alarmen om lavt batteri โ du kan vรฆlge at fortsรฆtte som normalt eller gรฅ i lavstrรธmstilstand, hvis enheden tillader det.
- Ingen indvirkning: Et eksempel er en netvรฆrksforbindelse, der bliver tilgรฆngelig, og din enhed opretter forbindelse til den. Nรฅr du tilslutter din enhed til opladning, er der heller ikke behov for en advarsel eller handlingsopfordring. Den vil sandsynligvis gรธre sit arbejde, mens du fortsรฆtter med at bruge din applikation.
Afhรฆngigt af den afbrydelse, du tester for, skal du derfor forstรฅ adfรฆrden og se, om din applikation opfylder den. Den ovenfor beskrevne adfรฆrd behรธver heller ikke at vรฆre den samme for alle applikationer og enheder. Sรธrg for at finde ud af de specifikke detaljer for din mobilapp.
Afbryd test af testtilfรฆlde med forventede resultater
Nรฅr den forventede lรธsning er aftalt, bliver hver afbrydelse en almindelig testcase med en udlรธser, en handling og et verificerbart resultat. Tabellen nedenfor viser, hvordan de fire ovenstรฅende lรธsninger omsรฆttes til konkrete scenarier.
| Afbrydelse | Testscenarie | Forventet resultat |
| Indgรฅende telefonopkald | Udlรธs et opkald, mens en formular er halvt udfyldt, besvar den, og afslut derefter opkaldet | Applikationen flyttes til baggrunden og genoptages pรฅ den samme skรฆrm med de indtastede data intakte |
| Indgรฅende SMS eller push-alarm | Send en besked, mens en video eller upload er i gang, og ignorer banneret | Banneren vises og forsvinder; applikationens tilstand er uรฆndret |
| Alarm | Lad en planlagt alarm udlรธses under en aktiv session og afvis den | Alarmen krรฆver fรธrst en opfordring til handling, derefter genoptager applikationen, hvor den stoppede |
| Advarsel om lavt batteriniveau | Tรธm enheden til advarselstรฆrsklen under en transaktion | Der vises en advarsel, transaktionen annulleres ikke, og lavstrรธmstilstanden afbryder ikke skรฆrmen |
| Tab af netvรฆrksforbindelse | Deaktiver forbindelse midt i anmodningen, og gendan den derefter | Der vises en tydelig besked, der opstรฅr intet nedbrud, og anmodningen fuldfรธres eller mislykkes sikkert ved gendannelse. |
| Opladning tilsluttet eller udtaget | Tilslut og frakobl opladeren under en aktiv session | Ingen pรฅvirkning โ applikationen fortsรฆtter uden en synlig รฆndring |
| Pรฅmindelse om applikationsopdatering | Send en opdateringsmeddelelse, mens applikationen er i brug | Brugeren kan annullere eller acceptere, og den underliggende skรฆrm bevares ved begge valg. |
Behold รฉn rรฆkke pr. afbrydelse pr. kritisk skรฆrm i stedet for รฉn rรฆkke pr. afbrydelse for hele applikationen. Betalingsskรฆrmen, loginskรฆrmen og en lang formular fejler hver isรฆr forskelligt, og et enkelt generisk tilfรฆlde skjuler det.
Nu hvor vi forstรฅr, hvad Interrupt Testing er, og hvad man skal validere, nรฅr man udfรธrer det, er det tid til at tale om, hvordan man gรธr det.
Sรฅdan laver du afbrydelsestest
Se pรฅ denne erklรฆring: iBooks skal kรธre i baggrunden, nรฅr brugeren modtager et indgรฅende telefonopkald.
Ville du ikke kalde dette et funktionelt krav til iBooks-appen? Jeg ved det godt.
Sรฅ Interrupt Testing er en undergruppe af Funktionstest for en mobilapplikation. For at udfรธre Interrupt Testing fรธlger du de samme testframeworks og -vรฆrktรธjer for mobilapplikationer. Det er testernes fรฆrdighed at udtรฆnke disse scenarier. Nรฅr det er gjort, designer du testcases og udfรธrer dem pรฅ prรฆcis samme mรฅde som enhver anden test.
I praksis er sekvensen kort og gentagelig:
- Angiv de kritiske brugerrejser โ login, betaling, upload, lange formularer, medieafspilning.
- Kortlรฆg alle plausible afbrydelser fra listen ovenfor pรฅ hver rejse.
- Aftal den forventede lรธsning for hver parring med produktejeren, da der ikke er nogen universel standard.
- Udfรธr afbrydelsen pรฅ det mest risikable tidspunkt, ikke i et inaktivt รธjeblik, og genoptag derefter.
- Bekrรฆft tilstand, data, session og hukommelse efter genoptagelse, ikke blot at applikationen stadig er รฅben.
For mere information om den bredere disciplin, se Mobil test tutorial og eksempelcases i Test af mobilapp.
Vรฆrktรธjer og teknikker til simulering af afbrydelser
Ovenstรฅende scenarier skal produceres on-demand i stedet for at blive ventet pรฅ, og hver platform tilbyder en mรฅde at gรธre det pรฅ.
- Android Udvidede kontroller for emulatoren: Emulatorens sidepanel simulerer et indgรฅende opkald, en SMS, batteriniveau og opladerstatus samt mobilsignalstyrke, sรฅ det meste af afbrydelseslisten kan kรธres uden et andet hรฅndsรฆt.
- iOS-simulator og Xcode: Forbindelses- og hardwaretilstande kan varieres fra simulatoren og fra enhedsindstillingerne, mens en parret fysisk enhed dรฆkker de opkaldsscenarier, som en simulator ikke kan generere.
- En anden fysisk enhed: At ringe eller sende en besked til den enhed, der testes, fra en anden hรฅndsรฆt er fortsat den mest nรธjagtige mรฅde at reproducere en reel afbrydelse pรฅ, isรฆr i tilfรฆlde, der er fรธlsomme over for tidsintervaller.
- Enhedsindstillinger: Flytilstand, Wi-Fi-knapper, Forstyr ikke, batterisparefunktion og planlagte alarmer dรฆkker forbindelse og strรธmafbrydelser pรฅ rigtig hardware.
- Automatiseringsrammer: Den samme automatiseringsstak, der bruges til resten af โโdin funktionelle suite, kan styre applikationen fรธr og efter afbrydelsen, sรฅ CV-tjekket hรฆvdes snarere end observeres.
- Skyer pรฅ rigtige enheder: En hosted enhedsfarm udvider dรฆkningen pรฅ tvรฆrs af producenter og OS-versioner, hvilket er vigtigt, fordi hรฅndtering af afbrydelser er et af de omrรฅder, hvor leverandรธrtilpasninger afviger mest.
Uanset mekanismen skal det nรธjagtige tidspunkt for afbrydelsen registreres i testcasen. "Afbrydelse under upload" og "afbrydelse efter upload" er forskellige tests med forskellige fejltilstande.
Bedste praksis for afbrydelsestest
Et par vaner adskiller en nyttig afbrydelsessuite fra en รธvelse i at afkrydse bokse.
- Afbryd i det vรฆrste รธjeblik: Target i det รธjeblik en transaktion gennemfรธres eller en fil skrives, fordi det er der, hvor tilstanden er mest skrรธbelig.
- Test CV'et, ikke afbrydelsen: Fejlen opstรฅr nรฆsten altid efter kontrolreturnering, sรฅ pรฅstande hรธrer hjemme pรฅ den gendannede skรฆrm.
- Dรฆk begge retninger af en netvรฆrksรฆndring: At miste en forbindelse og at genvinde den er to separate tilfรฆlde, og den anden springes over oftere.
- Varier varigheden: En to sekunders alarm og et ti minutters kald skubber applikationen gennem forskellige livscyklusstier, herunder at blive fjernet fra hukommelsen.
- Fordelt pรฅ tvรฆrs af OS-versioner og hardware i lav prisklassen: Baggrundsfjerning er langt mere aggressiv pรฅ begrรฆnsede enheder, hvilket afslรธrer defekter, som en flagskibstelefon skjuler.
- Automatiser de gentagne: Forbindelses- og batteriafbrydelser automatiseres nemt, hvilket frigรธr manuel indsats til opkalds- og alarmscenarier.
- Se ressourceforbrug samt tilstand: En afbrydelse, der lรฆkker hukommelse eller drรฆner batteriet ved genoptagelse, er en defekt, selv nรฅr skรฆrmen ser korrekt ud, hvilket forbinder dette arbejde med test af mobilapps ydeevne.
Er Interrupt Testing ikke det samme som Recovery Testing?
Nej det er ikke. Gendannelsestest validerer genoprettelse fra en fejl. En afbrydelse er ikke nรธdvendigvis en fejl โ det er blot en afbrydelsetraction.
Det er ligesom forskellen mellem et komma og et punktum pรฅ engelsk. Sondringen er kun teknisk, men billedet er tydeligt. Recovery Testing spรธrger, om applikationen kan komme tilbage, efter at noget er gรฅet i stykker; Interrupt Testing spรธrger, om noget overhovedet gรฅr i stykker, nรฅr noget andet trรฆder i forgrunden.
Det er, hvad der er brug for at vide for at komme i gang med Interrupt Testing โ en vigtig og intuitiv gren af โโmobilapplikationstest.

