Avbryt testing i mobilapplikasjon

โšก Smart oppsummering

Avbruddstesting sjekker hvordan en mobilapplikasjon oppfรธrer seg nรฅr en samtale, alarm, varsel eller nettverksbrudd tar over, og om applikasjonen gรฅr tilbake til sin nรธyaktige tidligere tilstand nรฅr avbruddet er over.

  • ๐Ÿ”˜ Omfang: Teknikken tilhรธrer testing av mobilapplikasjoner, men gjelder ogsรฅ for web- og frittstรฅende programvare.
  • โ˜‘๏ธ Avbruddskilder: Innkommende anrop, SMS, alarmer, lavt batteri, ladehendelser, appoppdateringer og nettverksendringer dekker de fleste reelle scenarier.
  • โœ… Fire forventede utfall: Kjรธr i bakgrunnen, vis varsel, handlingsfremmende oppfordring eller ingen pรฅvirkning โ€“ hver applikasjon definerer hvilken som gjelder.
  • ๐Ÿงช Testdesign: Avbruddstesting er en delmengde av funksjonell testing, sรฅ de samme rammeverkene, testtilfellene og utfรธrelsesprosessen gjelder.
  • ๐Ÿ› ๏ธ simulering: Emulatorens utvidede kontroller, enhetsinnstillinger og skyer for ekte enheter reproduserer anrop, varsler og tilkoblingstap pรฅ forespรธrsel.
  • ๐Ÿ“Š Ikke restitusjonstesting: Gjenopprettingstesting validerer gjenoppretting etter en feil, mens et avbrudd bare er en forstyrrelsetracsjon, ikke en feil.

Avbruddstesting i en mobilapplikasjon som viser et innkommende anrop som tar over en aktiv appskjerm

Hva er avbruddstesting?

Avbryt testing er en gren av mobilapplikasjonstesting som omhandler hvordan en applikasjon reagerer pรฅ et avbrudd og gรฅr tilbake til sin tidligere tilstand. Avbruddet kommer utenfra applikasjonen โ€“ operativsystemet, maskinvaren eller en annen app โ€“ og testen bekrefter at ingen data, skjermtilstand eller pรฅgรฅende transaksjoner gรฅr tapt nรฅr kontrollen kommer tilbake.

Avbruddstesting gjelder for alle typer applikasjoner โ€“ web, mobil, frittstรฅende og sรฅ videre. Mangfoldet av enheter, nettverk og konfigurasjoner gjรธr det langt mer fremtredende for mobil applikasjoner enn for de andre.

Hvorfor trenger du avbruddstesting?

Hva er det som nesten alltid skjer nรฅr du er i et mรธte? Du blir avbrutt, ikke sant? Nรฅr det skjer, blunker ikke noen engang, noen trenger et minutt for รฅ komme tilbake, og noen mister tankerekken fullstendig. Enkelt sagt prรธver avbruddstesting รฅ finne ut hvilken oppfรธrsel applikasjonen din viser.

Legg all formulering til side et รธyeblikk og se pรฅ en annen situasjon fra den virkelige verden. La oss si at du eier en lommelykt og slรฅr den Pร…. Batteriet gรฅr tomt, noe som avbryter den nรฅvรฆrende aktive tilstanden. Skift batteriene og gjenopprett strรธmmen. Lommelykten skal slรฅ seg Pร… igjen som normalt. Dette er brukstilfellet. En testdisiplin som fokuserer pรฅ om dette skjer eller ikke, er avbruddstesting.

Forretningsargumentet er enkelt. Et avbrudd kommer pรฅ verst tenkelig tidspunkt โ€“ midt i en betaling, midt i en opplasting, midt i et skjema โ€“ og en bruker som mister det arbeidet prรธver sjelden igjen. Krasj pรฅ CV-en, tomme skjermer, dupliserte transaksjoner og tapt skjemainndata er alle feil som bare et avbrudd avdekker, og det er derfor de overlever en funksjonell passasje som aldri avbryter noe.

Type avbrudd i mobilapplikasjon

Avbrudd faller inn i en hรฅndfull kjente grupper, oppsummert i illustrasjonen nedenfor.

Typer avbrudd i en mobilapplikasjon, inkludert samtaler, SMS, alarmer, batteri og nettverkshendelser

Vi er alle kjent med de vanlige avbruddene som vanligvis oppstรฅr. Her er noen av dem:

  • Lavt batteri
  • Batteri fullt โ€“ under lading
  • Innkommende telefonsamtale
  • Innkommende SMS
  • Innkommende varsel fra en annen mobilapplikasjon
  • Plugget inn for lading
  • Koblet fra lading
  • Enheten er slรฅtt av
  • Pรฅminnelser om applikasjonsoppdateringer
  • Alarm
  • Tap av nettverkstilkobling
  • Gjenoppretting av nettverkstilkobling

Denne listen er ikke uttรธmmende, men inkluderer de vanligste scenariene. En praktisk mรฅte รฅ organisere den pรฅ er etter opprinnelse: enhetsavhengige hendelser som batteri og lading, brukerinitierte hendelser som รฅ svare pรฅ et anrop eller bytte apper, og eksterne hendelser som tap av signal i en heis eller tunnel.

Lรธsning i tilfelle avbrudd

Forventet oppfรธrsel ved disse avbruddene er รฉn av fรธlgende fire:

  1. Kjรธr i bakgrunnen: Avbruddet tar over, mens applikasjonen trer i bakgrunnen. Den fรฅr kontroll etter at avbruddet er over. For eksempel en telefonsamtale eller FaceTime-samtale du deltar i mens du leser en digital bok pรฅ iBooks (eller et lignende program). Nรฅr brukeren svarer pรฅ telefonen, venter iBooks til samtalen er ferdig, og fortsetter deretter nรฅr den er over.
  2. Vis varsel: Varselet forsvinner, og du jobber som vanlig. Meldingen ยซSMS mottattยป vises i overskriften. Brukeren bryr seg ikke om det og fortsetter รฅ jobbe med applikasjonen som normalt. Andre varsler fra mobilapper, for eksempel en ny venneforespรธrsel pรฅ Facebook eller en WhatsApp-melding, faller ogsรฅ inn under denne kategorien. Men hvis brukeren bestemmer seg for รฅ lese meldingen, fรธlges oppfรธrselen beskrevet i punkt 1. Hvis varselet ignoreres, forblir applikasjonens tilstand uendret.
  3. Oppfordring til handling: Alarmer mรฅ slรฅs av eller settes pรฅ slumremodus fรธr du fortsetter รฅ jobbe. Det samme gjelder meldinger om appoppdateringer. Du mรฅ enten avbryte eller godta endringene fรธr du fortsetter. Et annet eksempel er varselet om lavt batteri โ€“ du kan velge รฅ fortsette som vanlig eller gรฅ inn i en lavstrรธmsmodus, hvis enheten tillater det.
  4. Ingen innvirkning: Et eksempel er en nettverkstilkobling som blir tilgjengelig, og enheten din kobler seg til den. Nรฅr du kobler enheten til ladestasjonen, er det heller ikke nรธdvendig med noe varsel eller handlingsfremmende trinn. Den vil sannsynligvis gjรธre jobben sin mens du fortsetter รฅ bruke appen.

Avhengig av avbruddet du tester for, bรธr du derfor forstรฅ virkemรฅten og se om applikasjonen din oppfyller den. Virkemรฅten beskrevet ovenfor trenger heller ikke รฅ vรฆre den samme for alle applikasjoner og enheter. Sรธrg for รฅ finne ut de spesifikke detaljene for mobilappen din.

Avbryt testing av testtilfeller med forventede resultater

Nรฅr den forventede lรธsningen er avtalt, blir hver avbrudd en vanlig testsak med en utlรธser, en handling og et verifiserbart resultat. Tabellen nedenfor viser hvordan de fire lรธsningene ovenfor oversettes til konkrete scenarier.

Avbrudd Testscenario Forventet resultat
Innkommende telefonsamtale Utlรธs en samtale mens et skjema er halvt utfylt, svar pรฅ den, og avslutt deretter samtalen Applikasjonen flyttes til bakgrunnen og fortsetter pรฅ samme skjerm med de inntastede dataene intakte
Innkommende SMS eller push-varsel Send en melding mens en video eller opplasting pรฅgรฅr, og ignorer banneret Banneren vises og forsvinner; applikasjonens status er uendret
Alarm La en planlagt alarm utlรธses under en aktiv รธkt og avvis den Alarmen krever fรธrst en oppfordring til handling, deretter fortsetter applikasjonen der den stoppet
Advarsel om lavt batteri Tรธm enheten til advarselsterskelen under en transaksjon En advarsel vises, transaksjonen blir ikke kansellert, og lavstrรธmsmodus รธdelegger ikke skjermen
Tap av nettverkstilkobling Deaktiver tilkoblingen midt i en forespรธrsel, og gjenopprett den deretter En tydelig melding vises, ingen krasj oppstรฅr, og forespรธrselen fullfรธres eller mislykkes trygt ved gjenoppretting.
Lading koblet til eller fra Koble til og fra laderen under en aktiv รธkt Ingen innvirkning โ€“ applikasjonen fortsetter uten synlig endring
Pรฅminnelse om applikasjonsoppdatering Send en oppdateringsmelding mens applikasjonen er i bruk Brukeren kan avbryte eller godta, og det underliggende skjermbildet gjelder fortsatt for begge valgene.

Behold รฉn rad per avbrudd per kritisk skjerm i stedet for รฉn rad per avbrudd for hele applikasjonen. Betalingsskjermen, innloggingsskjermen og et langt skjema feiler forskjellig, og et enkelt generisk tilfelle skjuler det.

Nรฅ som vi forstรฅr hva avbruddstesting er og hva vi skal validere nรฅr vi utfรธrer det, er det pรฅ tide รฅ snakke om hvordan du gjรธr det.

Hvordan utfรธre avbruddstesting

Se pรฅ denne uttalelsen: iBooks mรฅ kjรธre i bakgrunnen nรฅr brukeren mottar en innkommende telefonsamtale.

Ville du ikke kalt dette et funksjonskrav for iBooks-appen? Jeg vet det.

Sรฅ avbruddstesting er en undergruppe av Funksjonell testing for en mobilapplikasjon. For รฅ utfรธre avbruddstesting fรธlger du de samme testrammeverkene og verktรธyene for mobilapplikasjoner. Det er testernes ferdighet รฅ tenke ut disse scenariene. Nรฅr det er gjort, designer du testtilfellene og utfรธrer dem pรฅ nรธyaktig samme mรฅte som enhver annen test.

I praksis er sekvensen kort og repeterbar:

  1. List opp de kritiske brukerreisene โ€“ innlogging, betaling, opplasting, lange skjemaer, avspilling av media.
  2. Kartlegg alle plausible avbrudd fra listen ovenfor pรฅ hver reise.
  3. Avtal den forventede lรธsningen for hver paring med produkteieren, fordi det ikke finnes noen universell standard.
  4. Utfรธr avbruddet pรฅ det mest risikable tidspunktet, ikke i et inaktivt รธyeblikk, og fortsett deretter.
  5. Bekreft status, data, รธkt og minne etter gjenopptakelse, ikke bare at applikasjonen fortsatt er รฅpen.

For mer informasjon om den bredere fagdisiplinen, se Mobil testing veiledningen og eksempeltilfellene i Test av mobilapp.

Verktรธy og teknikker for รฅ simulere avbrudd

Scenariene ovenfor mรฅ produseres pรฅ forespรธrsel i stedet for รฅ vente pรฅ dem, og hver plattform tilbyr en mรฅte รฅ gjรธre det pรฅ.

  • Android Utvidede kontroller for emulator: Emulatorens sidepanel simulerer et innkommende anrop, en SMS, batterinivรฅ og laderstatus, samt mobilsignalstyrke, slik at mesteparten av avbruddslisten kan kjรธres uten et ekstra hรฅndsett.
  • iOS-simulator og Xcode: Tilkoblings- og maskinvaretilstander kan varieres fra simulatoren og fra enhetsinnstillinger, mens en paret fysisk enhet dekker anropsscenarier som en simulator ikke kan generere.
  • En annen fysisk enhet: ร… ringe eller sende melding til enheten som testes fra et annet hรฅndsett er fortsatt den mest trofaste mรฅten รฅ gjenskape et reelt avbrudd pรฅ, spesielt i tilfeller der det er sensitivt for tid.
  • Enhetsinnstillinger: Flymodus, Wi-Fi-brytere, Ikke forstyrr, batterisparing og planlagte alarmer dekker tilkobling og strรธmavbrudd pรฅ ekte maskinvare.
  • Automatiseringsrammeverk: Den samme automatiseringsstakken som brukes for resten av funksjonspakken din, kan kjรธre applikasjonen fรธr og etter avbruddet, slik at CV-sjekken hevdes i stedet for รฅ bli observert.
  • Skyer pรฅ ekte enheter: En hosted enhetsfarm utvider dekningen pรฅ tvers av produsenter og operativsystemversjoner, noe som er viktig fordi avbruddshรฅndtering er et av omrรฅdene der leverandรธrtilpasninger avviker mest.

Uansett mekanisme, registrer det nรธyaktige รธyeblikket for avbruddet i testtilfellet. ยซAvbrudd under opplastingยป og ยซavbrudd etter opplastingยป er forskjellige tester med forskjellige feilmoduser.

Beste praksis for avbruddstesting

Noen fรฅ vaner skiller en nyttig avbruddssuite fra en boks-kryssรธvelse.

  • Avbryt i verste fall: Target i det รธyeblikket en transaksjon gjennomfรธres eller en fil skrives, fordi det er der tilstanden er mest sรฅrbar.
  • Test CV-en, ikke avbruddet: Feilen dukker nesten alltid opp etter at kontrollen returneres, sรฅ pรฅstander hรธrer hjemme pรฅ den gjenopprettede skjermen.
  • Dekk begge retninger av en nettverksendring: ร… miste en forbindelse og gjenopprette den er separate tilfeller, og det andre hoppes over oftere.
  • Varier varigheten: Et to sekunders varsel og et ti minutters kall skyver applikasjonen gjennom forskjellige livssyklusbaner, inkludert รฅ bli fjernet fra minnet.
  • Fordelt pรฅ OS-versjoner og avansert maskinvare: Bakgrunnsfjerning er langt mer aggressiv pรฅ begrensede enheter, som viser feil som en flaggskiptelefon skjuler.
  • Automatiser de repeterbare: Tilkobling og batteriavbrudd automatiseres pรฅ en enkel mรฅte, noe som frigjรธr manuell innsats for anrop og alarmscenarioer.
  • Fรธlg med pรฅ ressursbruk samt tilstand: En avbrudd som lekker minne eller tapper batteriet ved gjenopptagelse er en feil selv nรฅr skjermen ser riktig ut, noe som knytter dette arbeidet til ytelsestesting av mobilapper.

Er ikke avbruddstesting det samme som gjenopprettingstesting?

Nei det er ikke. Gjenopprettingstesting validerer gjenoppretting fra en feil. Et avbrudd er ikke nรธdvendigvis en feil โ€“ det er bare en forstyrrelsetracsjon.

Det er som forskjellen mellom komma og punktum pรฅ engelsk. Forskjellen er bare teknisk, men bildet er tydelig. Gjenopprettingstesting spรธr om applikasjonen kan komme tilbake etter at noe har gรฅtt i stykker, mens avbruddstesting spรธr om noe i det hele tatt gรฅr i stykker nรฅr noe annet kommer i forgrunnen.

Det er det man trenger รฅ vite for รฅ komme i gang med avbruddstesting โ€“ en viktig og intuitiv gren av testing av mobilapplikasjoner.

Spรธrsmรฅl og svar

Scenariene er de samme, men utfallene er ikke det. De to plattformene hรฅndterer bakgrunnsapper og minnefjerning pรฅ forskjellige mรฅter, og Android Leverandรธrskins legger til sine egne batteriregler, slik at den identiske testen kan bestรฅ pรฅ รฉn enhetsfamilie og mislykkes pรฅ en annen.

AI-modeller leser brukerhistorier og krasjrapporter og foreslรฅr avbruddskoblinger som en tester kanskje ikke har listet opp โ€“ for eksempel en samtale som kommer nรธyaktig under tokenoppdatering. Maskinlรฆring grupperer ogsรฅ produksjonskrasjlogger for รฅ vise hvilke avbrudd som faktisk forstyrrer virkelige brukere fรธrst.

Copilot utarbeider standardteksten godt โ€“ setter appen i bakgrunnen, slรฅr tilkoblingen av og pรฅ, venter og bekrefter deretter den gjenopprettede skjermen. Vurderingen av nรฅr den skal avbrytes og hvilken tilstand som mรฅ overleve, forblir hos testeren, sรฅ behandle genererte skript som et startutkast for gjennomgang.

Ja. De to navnene beskriver den identiske aktiviteten og brukes om hverandre pรฅ tvers av team og verktรธy. Velg รฉn stavemรฅte for testplanen din og bruk den konsekvent, fordi blandet terminologi gjรธr det vanskeligere รฅ sรธke i pakker og enklere รฅ lage dupliserte saker.

Bruk begge. Emulatorer er ideelle for rask, repeterbar tilkobling og batterikasser i en pipeline. Ekte enheter kreves for ekte samtaler, batteriadministratorer fra leverandรธrer og utkastelse av lavt minne, som nettopp er de forholdene som avslรธrer de vanskeligste CV-feilene.

Krasj ved CV, tomme eller feil skjermbilder etter retur, tapt skjemainndata, dupliserte betalinger fra en ny forespรธrsel, รธdelagte รธkter som krever ny pรฅlogging, stoppet medieavspilling og minne- eller batterilekkasjer som bare vises etter at applikasjonen har blitt satt i bakgrunnen gjentatte ganger.

Det er begge deler. Avbrudd i nettverk, batteri og apper skriptes pรฅlitelig og hรธrer hjemme i regresjonskjรธringen. Innkommende anrop, alarmer og leverandรธrspesifikke strรธmmeldinger er vanligvis raskere รฅ utfรธre manuelt pรฅ en ekte hรฅndsett, sรฅ de fleste team har et lite manualsett ved siden av.

Start sรฅ snart en kritisk reise er funksjonsfullfรธrt, i stedet for i lรธpet av den siste herdingsuken. CV-feil krever ofte endringer i livssyklus eller tilstandsadministrasjon, og disse er dyre รฅ ettermontere nรฅr utgivelseskandidaten er fryst.

Oppsummer dette innlegget med: