Avbryt testning i mobilapplikation

⚡ Smart sammanfattning

Avbrottstestning kontrollerar hur en mobilapplikation beter sig när ett samtal, larm, meddelande eller nätverksavbrott tar över, och om applikationen återgår till sitt exakta tidigare tillstånd när avbrottet upphör.

  • 🔘 Omfattning: Tekniken tillhör testning av mobilapplikationer men gäller även för webb- och fristående programvara.
  • ☑️ Avbrottskällor: Inkommande samtal, SMS, larm, låg batterinivå, laddningshändelser, appuppdateringar och nätverksändringar täcker de flesta verkliga scenarier.
  • ✅ Fyra förväntade resultat: Kör i bakgrunden, visa varning, uppmaning till handling eller ingen påverkan – varje applikation definierar vilken som gäller.
  • 🧪 Testdesign: Avbrottstestning är en delmängd av funktionell testning, så samma ramverk, testfall och exekveringsprocess gäller.
  • 🛠️ simulering: Emulatorns utökade kontroller, enhetsinställningar och moln för verkliga enheter reproducerar samtal, aviseringar och anslutningsförlust på begäran.
  • 📊 Inte återhämtningstestning: Återställningstestning validerar återställning efter ett fel, medan ett avbrott bara är ett feltraction, inte ett fel.

Avbrottstestning i en mobilapplikation som visar ett inkommande samtal som tar över en aktiv appskärm

Vad är avbrottstestning?

Avbryt testning är en gren av mobilapplikationstestning som handlar om hur en applikation reagerar på ett avbrott och återgår till sitt tidigare tillstånd. Avbrottet kommer utanför applikationen – operativsystemet, hårdvaran eller en annan app – och testet verifierar att ingen data, skärmtillstånd eller pågående transaktion går förlorad när kontrollen återgår.

Avbrottstestning gäller för alla typer av applikationer – webb, mobil, fristående och så vidare. Mångfalden av enheter, nätverk och konfigurationer gör det mycket mer framträdande för mobil applikationer än för de andra.

Varför behöver du avbrottstestning?

Vad är det som nästan alltid händer när man sitter i ett möte? Man blir avbruten, eller hur? När det händer blinkar vissa inte ens, vissa behöver en minut för att komma tillbaka, och vissa tappar tankegången helt. Enkelt uttryckt försöker avbrottstestning ta reda på vilket beteende din applikation uppvisar.

Lägg all formulering åt sidan en sekund och titta på en annan verklig situation. Säg att du äger en ficklampa och slår PÅ den. Batteriet tar slut, vilket avbryter dess nuvarande aktiva tillstånd. Byt ut batterierna och återställ den. Ficklampan bör tändas igen som vanligt. Detta är användningsfallet. En testdisciplin som fokuserar på huruvida detta händer eller inte är avbrottstestning.

Affärsargumentet är enkelt. Ett avbrott inträffar vid värsta möjliga tidpunkt – mitt i en betalning, mitt i en uppladdning, mitt i ett formulär – och en användare som förlorar det arbetet försöker sällan igen. Krascher på CV, tomma skärmar, duplicerade transaktioner och förlorad formulärinmatning är alla defekter som bara ett avbrott avslöjar, vilket är anledningen till att de överlever ett funktionellt pass som aldrig avbryter någonting.

Typ av avbrott i mobilapplikation

Avbrott faller inom en handfull välkända grupper, sammanfattade i illustrationen nedan.

Typer av avbrott i en mobilapplikation inklusive samtal, SMS, larm, batteri och nätverkshändelser

Vi känner alla till de vanliga avbrott som normalt uppstår. Här är några av dem:

  • Svagt batteri
  • Batteri fullt — vid laddning
  • Inkommande telefonsamtal
  • Inkommande SMS
  • Inkommande avisering från en annan mobilapplikation
  • Inkopplad för laddning
  • Utkopplad från laddning
  • Enheten stängs av
  • Påminnelser om applikationsuppdateringar
  • Larmet
  • Förlust av nätverksanslutningen
  • Återställning av nätverksanslutningen

Denna lista är inte uttömmande men inkluderar de vanligaste scenarierna. Ett praktiskt sätt att organisera den är efter ursprung: enhetsberoende händelser som batteri och laddning, användarinitierade händelser som att svara på ett samtal eller byta app, och externa händelser som att förlora signalen i en hiss eller tunnel.

Upplösning vid avbrott

Det förväntade beteendet vid dessa avbrott är ett av följande fyra:

  1. Kör i bakgrunden: Avbrottet tar över medan appen hamnar i bakgrunden. Den får kontroll efter att avbrottet slutar. Till exempel ett telefonsamtal eller FaceTime-samtal som du deltar i medan du läser en digital bok i iBooks (eller en liknande applikation). När användaren svarar i telefonen väntar iBooks tills samtalet är avslutat och återupptas sedan när det slutar.
  2. Visa varning: Aviseringen försvinner och du arbetar som vanligt. Meddelandet "SMS mottaget" visas i rubriken. Användaren bryr sig inte om det och fortsätter att arbeta med applikationen som vanligt. Andra aviseringar i mobilappar, som en ny vänförfrågan på Facebook eller ett WhatsApp-meddelande, faller också inom denna kategori. Men om användaren väljer att läsa meddelandet följs beteendet som beskrivs i punkt 1. Om aviseringen ignoreras förblir applikationens tillstånd oförändrat.
  3. Uppmaning till handling: Larm måste stängas av eller snoozas innan du fortsätter att arbeta. Detsamma gäller för meddelanden om appuppdateringar. Du måste antingen avbryta eller acceptera ändringarna innan du fortsätter. Ett annat exempel är varningen för låg batterinivå – du kan välja att fortsätta som vanligt eller gå in i ett lågströmsläge, om enheten tillåter det.
  4. Ingen inverkan: Ett exempel är en nätverksanslutning som blir tillgänglig och din enhet ansluter till den. När du ansluter enheten för laddning behövs ingen varning eller uppmaning till åtgärd. Den kommer förmodligen att göra sitt jobb medan du fortsätter att använda din applikation.

Beroende på vilket avbrott du testar bör du därför förstå beteendet och se om din applikation uppfyller det. Beteendet som beskrivs ovan behöver inte heller vara detsamma för alla applikationer och enheter. Se till att ta reda på de specifika detaljerna för din mobilapp.

Avbrottstestning av testfall med förväntade resultat

När den förväntade lösningen är överenskommen blir varje avbrott ett vanligt testfall med en utlösande faktor, en åtgärd och ett verifierbart resultat. Tabellen nedan visar hur de fyra lösningarna ovan omsätts i konkreta scenarier.

Avbrott Testscenario Förväntat resultat
Inkommande telefonsamtal Utlösa ett samtal medan ett formulär är halvfullt ifyllt, svara på det och avsluta sedan samtalet Applikationen flyttas till bakgrunden och återupptas på samma skärm med intakta inmatade data
Inkommande SMS eller push-avisering Skicka ett meddelande medan en video eller uppladdning pågår och ignorera bannern Bannern visas och försvinner; applikationens tillstånd är oförändrat
Larmet Låt ett schemalagt larm utlösas under en aktiv session och avvisa det Larm kräver först en uppmaning till handling, sedan återupptas applikationen där den stoppades
Låg batterilarm Töm enheten till varningsgränsen under en transaktion En varning visas, transaktionen avbryts inte och strömsparläget bryter inte skärmen.
Förlust av nätverksanslutningen Inaktivera anslutningen mitt i en begäran och återställ den sedan Ett tydligt meddelande visas, ingen krasch inträffar och begäran slutförs eller misslyckas säkert vid återställning.
Laddning inkopplad eller urkopplad Ansluta och koppla från laddaren under en aktiv session Ingen påverkan — applikationen fortsätter utan en synlig förändring
Påminnelse om applikationsuppdatering Skapa en uppdateringsfråga medan applikationen används Användaren kan avbryta eller acceptera, och den underliggande skärmen fortsätter att användas.

Behåll en rad per avbrott per kritisk skärm istället för en rad per avbrott för hela applikationen. Betalningsskärmen, inloggningsskärmen och ett långt formulär misslyckas på olika sätt, och ett enda generiskt fall döljer det.

Nu när vi förstår vad Interrupt Testing är och vad vi ska validera när vi utför det, är det dags att prata om hur man gör det.

Hur man gör avbrottstestning

Titta på detta uttalande: iBooks måste köras i bakgrunden när användaren får ett inkommande telefonsamtal.

Skulle du inte kalla detta ett funktionellt krav för iBooks-appen? Jag vet att jag skulle göra det.

Så, Interrupt Testing är en undergrupp av funktions~~POS=TRUNC för en mobilapplikation. För att utföra avbrottstestning följer du samma testramverk och verktyg för mobilapplikationer. Det är testarnas skicklighet att utforma dessa scenarier. När det är klart designar du testfallen och kör dem på exakt samma sätt som vilket annat test som helst.

I praktiken är sekvensen kort och repeterbar:

  1. Lista de kritiska användarresorna – inloggning, betalning, uppladdning, långa formulär, uppspelning av media.
  2. Kartlägg alla rimliga avbrott från listan ovan på varje resa.
  3. Kom överens med produktägaren om den förväntade lösningen för varje parkoppling, eftersom det inte finns någon universell standard.
  4. Utför avbrottet vid det mest riskfyllda ögonblicket, inte i ett viloögonblick, och återuppta sedan.
  5. Verifiera tillstånd, data, session och minne efter återupptagande, inte bara att applikationen fortfarande är öppen.

För mer information om den bredare disciplinen, se Mobiltestning handledning och exempelfallen i Test av mobilappar.

Verktyg och tekniker för att simulera avbrott

Scenarierna ovan måste produceras på begäran snarare än att väntas på, och varje plattform erbjuder ett sätt att göra det.

  • Android Utökade kontroller för emulatorn: Emulatorns sidopanel simulerar ett inkommande samtal, ett SMS, batterinivå och laddarstatus samt mobilsignalstyrka, så att det mesta av avbrottslistan kan tas upp utan en andra handenhet.
  • iOS-simulator och Xcode: Anslutnings- och hårdvarustatus kan varieras från simulatorn och från enhetsinställningar, medan en parad fysisk enhet täcker de anropsscenarier som en simulator inte kan generera.
  • En andra fysisk enhet: Att ringa eller skicka meddelanden till den testade enheten från en annan handenhet är fortfarande det mest trogna sättet att återskapa ett verkligt avbrott, särskilt i fall som är känsliga för tidpunkten.
  • Enhetsinställningar: Flygplansläge, Wi-Fi-växlare, Stör ej, batterisparläge och schemalagda alarm täcker anslutning och strömavbrott på riktig hårdvara.
  • Automatiseringsramverk: Samma automatiseringsstack som används för resten av din funktionella sviten kan driva applikationen före och efter avbrottet, så att CV-kontrollen görs gällande snarare än observeras.
  • Moln för riktiga enheter: En värdbaserad enhetsfarm breddar täckningen mellan tillverkare och operativsystemversioner, vilket är viktigt eftersom avbrottshantering är ett av de områden där leverantörernas anpassningar skiljer sig mest åt.

Oavsett mekanism, registrera det exakta ögonblicket för avbrottet i testfallet. ”Avbrott under uppladdning” och ”avbrott efter uppladdning” är olika tester med olika fellägen.

Bästa praxis för avbrottstestning

Några vanor skiljer en användbar avbrottssvit från en övning där man kryssar i rutor.

  • Avbryt i värsta fall: Target i det ögonblick en transaktion genomförs eller en fil skrivs, eftersom det är där tillståndet är som mest skört.
  • Testa CV:t, inte avbrottet: Defekten uppstår nästan alltid efter att kontrollen returnerats, så påståenden hör hemma på den återställda skärmen.
  • Täck båda riktningarna för en nätverksförändring: Att förlora en anslutning och återfå den är separata fall, och det andra hoppas över oftare.
  • Variera varaktigheten: En två sekunders avisering och ett tio minuter långt anrop leder applikationen genom olika livscykelvägar, inklusive att tas bort från minnet.
  • Spridda över OS-versioner och avancerad hårdvara: Bakgrundsborttagning är mycket mer aggressiv på begränsade enheter, vilket visar defekter som en flaggskeppstelefon döljer.
  • Automatisera de repeterbara: Avbrott i anslutning och batteri automatiseras på ett smidigt sätt, vilket frigör manuell ansträngning för samtal och larm.
  • Titta på resursanvändning samt tillstånd: Ett avbrott som läcker minne eller tömmer batteriet vid återupptagning är en defekt även när skärmen ser korrekt ut, vilket kopplar detta arbete till prestandatestning av mobilappar.

Är inte avbrottstestning detsamma som återställningstest?

Nej det är det inte. Återhämtningstestning validerar återställning från ett fel. Ett avbrott är inte nödvändigtvis ett fel – det är bara entraction.

Det är som skillnaden mellan ett komma och en punkt på engelska. Skillnaden är bara teknisk, men bilden är tydlig. Återställningstestning frågar om applikationen kan återställas efter att något har gått sönder; Avbrottstestning frågar om något alls går sönder när något annat kommer i förgrunden.

Det är vad man behöver veta för att komma igång med avbrottstestning – en viktig och intuitiv gren av mobilapplikationstestning.

Vanliga frågor

Scenarierna är desamma, men resultaten är det inte. De två plattformarna hanterar bakgrundsappar och minnesborttagning på olika sätt, och Android Leverantörsskins lägger till sina egna batteriregler, så att ett identiskt test kan godkännas på en enhetsfamilj och misslyckas på en annan.

AI-modeller läser användarberättelser och kraschrapporter och föreslår avbrottskopplingar som en testare kanske inte har listat – till exempel ett samtal som kommer exakt under tokenuppdatering. Maskininlärning klustrar också produktionskraschloggar för att visa vilka avbrott som faktiskt stör riktiga användare först.

Copilot utarbetar standardschemat väl – appen sätter i bakgrunden, växlar anslutning, väntar och bekräftar sedan den återställda skärmen. Bedömningen av när det ska avbrytas och vilket tillstånd som måste överleva ligger kvar hos testaren, så behandla genererade skript som ett startutkast att granska.

Ja. De två namnen beskriver identisk aktivitet och används synonymt mellan olika team och verktyg. Välj en stavning för din testplan och använd den konsekvent, eftersom blandad terminologi gör det svårare att söka i sviter och lättare att skapa duplicerade fall.

Använd båda. Emulatorer är idealiska för snabb, repeterbar anslutning och batterihöljen i en pipeline. Riktiga enheter krävs för genuina samtal, batterihanterare från leverantörer och minnesbrist, vilket är just de förhållanden som exponerar de svåraste CV-felen.

Kraschar vid CV, tomma eller felaktiga skärmar efter retur, förlorad formulärinmatning, duplicerade betalningar från en återförsökt begäran, trasiga sessioner som kräver en ny inloggning, stoppad medieuppspelning och minnes- eller batteriläckor som bara visas efter att applikationen har varit i bakgrunden upprepade gånger.

Det är båda. Avbrott i nätverk, batteri och appbyte skriptas tillförlitligt och hör hemma i regressionskörningen. Inkommande samtal, larm och leverantörsspecifika strömförsörjningsmeddelanden går vanligtvis snabbare att utföra manuellt på en riktig handenhet, så de flesta team har en liten manual bredvid sig.

Börja så snart en kritisk resa är funktionsklar, snarare än under den sista härdningsveckan. CV-fel kräver ofta livscykel- eller tillståndshanteringsändringar, och dessa är dyra att eftermontera när releasekandidaten har frysts.

Sammanfatta detta inlägg med: