Hva er gjenopprettingstesting? med eksempel

โšก Smart oppsummering

Gjenopprettingstesting bekrefter at programvare kan gjenoppta normal drift etter et krasj, et nettverksfall eller en maskinvarefeil, ved รฅ gjenopprette systemet til et kjent fungerende punkt og behandle transaksjoner pรฅ nytt frem til feilen.

  • ๐Ÿ” Hva det beviser: Operasituasjoner fortsetter etter en katastrofe, ikke bare at det finnes en sikkerhetskopifil.
  • ๐Ÿงฉ Hvor den sitter: En ikke-funksjonell teknikk, kjรธrt av trente testere mot sikrede sikkerhetskopidata.
  • ๏ธ Drivere for gjenopprettingstid: Omstartspunkter, datavolum og ferdighetene og verktรธyene til gjenopprettingsteamet.
  • ๐Ÿ”„ Prosessform: Normal drift, katastrofe, forstyrrelse, gjenoppretting, deretter gjenoppbygging tilbake til normalen.
  • ๐Ÿ’พ Strategivalg: En eller flere sikkerhetskopier, ett eller flere nettsteder, online eller offline, automatisk eller manuell.
  • โœ… Etter gjenoppretting: Tell filer mot den opprinnelige mappen, รฅpne flere typer og sammenlign mapper med systemverktรธy.

Hva er gjenopprettingstesting i programvaretesting med eksempel

Hva er gjenopprettingstesting?

Gjenopprettingstesting er en programvaretestingsteknikk som verifiserer programvarens evne til รฅ gjenopprette etter feil som programvare- eller maskinvarekrasj og nettverksfeil. Formรฅlet med gjenopprettingstesting er รฅ avgjรธre om programvaredriften kan fortsette etter en katastrofe eller et integritetstap. Gjenopprettingstesting innebรฆrer รฅ tilbakestille programvaren til det punktet der integriteten var kjent, og behandle transaksjoner pรฅ nytt frem til feilpunktet.

Innen programvareutvikling er gjenopprettingstesting en type ikke-funksjonell testing โ€” den dekker aspekter som ikke er knyttet til en spesifikk funksjon eller brukerhandling, som skalerbarhet eller sikkerhet. Den utfรธres av profesjonelle testere, og tilstrekkelige sikkerhetskopier av data oppbevares pรฅ sikre steder pรฅ forhรฅnd.

Eksempel pรฅ gjenopprettingstesting

To scenarioer viser teknikken pรฅ sitt enkleste. I hvert scenario tvinges en feil frem med vilje, og deretter overvรฅkes applikasjonen mens den gjenopptas.

  • Nettverksavbrudd: Mens et program mottar data fra nettverket, kobler du fra tilkoblingskabelen. Etter en stund kobler du den til igjen og analyserer programmets evne til รฅ fortsette รฅ motta data fra det punktet der forbindelsen ble brutt.
  • Gjenoppretting av รธkt: Start systemet pรฅ nytt mens en nettleser har et bestemt antall รธkter รฅpne, og sjekk om nettleseren gjenoppretter alle.

Illustrasjonen nedenfor viser den samme ideen i visuell form.

Konsept for gjenopprettingstesting som viser et system som svikter og deretter gjenopprettes til normal drift

Tiden det tar รฅ bli frisk avhenger av:

  • Antall omstartspunkter
  • Datamengden som lagres av applikasjonen
  • Opplรฆring og ferdigheter hos personer som utfรธrer tilfriskningsaktiviteter, og verktรธyene som er tilgjengelige for tilfriskningsaktiviteter

Nรฅr det er flere feil, bรธr gjenopprettingstesting gjรธres pรฅ en strukturert mรฅte i stedet for alt pรฅ รฉn gang โ€“ utfรธrt for ett segment og deretter et annet.

Livssyklus for gjenopprettingsprosessen

Fรธr man utformer testtilfeller, er det nyttig รฅ se hvor en gjenopprettingstest griper inn. Livssyklusen til gjenopprettingsprosessen har fem trinn:

  1. Normal operasjon
  2. Katastrofehendelse
  3. Avbrudd og svikt i operasjonen
  4. Katastrofeklarering gjennom gjenopprettingsprosessen
  5. Rekonstruksjon av alle prosesser og informasjon, slik at hele systemet gรฅr tilbake til normal drift

Flytskjemaet nedenfor viser de fem trinnene i rekkefรธlge.

Livssyklusen til gjenopprettingsprosessens flytdiagram som dekker normal drift, katastrofe, avbrudd, gjenoppretting og gjenoppbygging

La oss diskutere disse fem trinnene i detalj:

  1. Normal drift. Et system av maskinvare, programvare og fastvare, integrert for รฅ oppnรฅ et felles mรฅl, utfรธrer sin tiltenkte jobb uten avbrudd innen en fastsatt tidsperiode.
  2. Katastrofeforekomst. En avbrudd kan oppstรฅ pรฅ grunn av feil i programvaren, som for eksempel en feil initiert av inndata, et krasj forรฅrsaket av maskinvarefeil eller skade fra brann, tyveri eller streik.
  3. Forstyrrelse og fiasko. Dette er den mest smertefulle fasen, som fรธrer til forretningstap, brutte relasjoner, tapte muligheter, tapte arbeidstimer og uten unntak รธkonomisk tap og tap av goodwill. En katastrofeberedskapsplan holder denne fasen minimal.
  4. Katastroferydning. Hvis en reserveplan og risikoreduserende prosesser allerede er pรฅ plass, koster gjenoppretting mye mindre tid og krefter. Et utpekt team, der hver persons rolle er definert pรฅ forhรฅnd, fastsetter ansvaret og forhindrer en lang periode med avbrudd.
  5. Gjenoppbygging. Dette kan innebรฆre flere operasjonsรธkter for รฅ gjenoppbygge alle mapper sammen med konfigurasjonsfiler. Riktig dokumentasjon og en definert gjenoppbyggingsprosess er nรธdvendig for korrekt gjenoppretting.

Restaureringsstrategi

Gjenopprettingsteamet bรธr ha sin egen strategi for รฅ hente viktig kode og data for รฅ fรฅ driften tilbake til normalen. Denne strategien er unik for hver organisasjon, basert pรฅ hvor kritiske systemene den hรฅndterer er, og for kritiske systemer kommer det ned til et sett med valg:

  1. ร‰n enkelt sikkerhetskopi, eller mer enn รฉn
  2. Flere sikkerhetskopier pรฅ ett sted, eller pรฅ forskjellige steder
  3. Online sikkerhetskopiering, eller offline sikkerhetskopiering
  4. Sikkerhetskopier kjรธres automatisk under en policy, eller utlรธses manuelt
  5. Et uavhengig restaureringsteam, eller utviklingsteamet som utfรธrer arbeidet

Hvert valg har en kostnadsfaktor, og flere sikkerhetskopier kan forbruke mer fysiske ressurser eller kreve et uavhengig team. Avhengighet er ogsรฅ viktig: bedrifter er eksponert gjennom koden og dataene de oppbevarer hos รฉn enkelt leverandรธr, og en storskala AWS Strรธmbrudd har gjentatte ganger fรธrt til at kjente forbrukertjenester er utilgjengelige samtidig. Uavhengig gjenopprettingskapasitet er avgjรธrende i slike tilfeller.

Hvordan gjรธre gjenopprettingstesting

Strategien er avgjort, og det neste spรธrsmรฅlet er hvordan selve testen settes opp. Fรธlgende punkter bรธr vurderes nรฅr man utfรธrer restitusjonstesting.

  • Lag en testmiljรธ som er sรฅ likt de faktiske utrullingsforholdene som mulig: grensesnitt, protokoll, fastvare, maskinvare og programvare bรธr samsvare med produksjonen.
  • Selv om uttรธmmende testing kan vรฆre tidkrevende og kostbart, bรธr en identisk konfigurasjon og en fullstendig kontroll fortsatt utfรธres.
  • Hvis mulig, test pรฅ maskinvaren som til slutt skal gjenopprettes til โ€“ spesielt nรฅr du gjenoppretter til en annen maskin enn den som opprettet sikkerhetskopien.
  • Noen sikkerhetskopieringssystemer forventer at harddisken har nรธyaktig samme stรธrrelse som den sikkerhetskopien ble tatt fra.
  • Hรฅndter foreldelse: diskteknologi utvikler seg raskt, og en gammel disk er kanskje ikke kompatibel med en ny. Gjenoppretting til en virtuell maskin hjelper, siden virtualiseringsprogramvare kan etterligne eksisterende maskinvare, inkludert diskstรธrrelser.
  • Online sikkerhetskopieringssystemer er ikke et unntak fra testing. De fleste leverandรธrer beskytter brukere mot medieproblemer gjennom feiltolerant lagring, slik at feil dukker opp sent.
  • Selv om systemer for sikkerhetskopiering pรฅ nett er ekstremt pรฅlitelige, mรฅ gjenopprettingssiden testes for รฅ bekrefte at det ikke er problemer med henting, sikkerhet eller kryptering.

Fordi restitusjonsรธvelsene utfรธres ende mot ende, er disse lรธpeturene vanligvis planlagt samtidig systemtesting heller enn pรฅ enhetsnivรฅ.

Testprosedyre etter restaurering

Gjenoppretting av dataene er bare halve oppgaven; den gjenopprettede kopien mรฅ fortsatt bevises brukbar. De fleste store selskaper har uavhengige revisorer som regelmessig kjรธrer gjenopprettingsรธvelser. En omfattende katastrofegjenopprettingsplan er dyr รฅ vedlikeholde og teste, sรฅ mindre organisasjoner er ofte avhengige av sikkerhetskopier og ekstern lagring i stedet.

Etter at mapper og filer er gjenopprettet, bekrefter fรธlgende kontroller at de ble gjenopprettet pรฅ riktig mรฅte:

  • Gi nytt navn til den รธdelagte dokumentmappen, slik at den gjenopprettede kopien ikke kan forveksles med den.
  • Tell filene i de gjenopprettede mappene og sammenlign antallet med den opprinnelige mappen.
  • ร…pne noen filer med programmet som vanligvis bruker dem, og bekreft at dataene kan blas gjennom og oppdateres som vanlig.
  • ร…pne flere filer av forskjellige typer โ€“ bilder, MP3og dokumenter, noen store og noen smรฅ.
  • Bruk verktรธyene for sammenligning av filer og kataloger som de fleste operativsystemer gi.

Spรธrsmรฅl og svar

Failover-testing sjekker om trafikken gรฅr over til en standby-node uten problemer. Gjenopprettingstesting gรฅr lenger og spรธr om den opprinnelige tjenesten, dataene og transaksjonene underveis returneres til riktig tilstand.

RTO er tiden det tar รฅ gjenopprette en tjeneste, mens RPO er akseptabelt datatap. En gjenopprettingstest mรฅler bรฅde: tiden pรฅ gjenopprettingen for RTO og sammenligning av gjenopprettede data mot den siste kjente gode tilstanden for RPO.

Tre varianter gรฅr igjen: katastrofegjenoppretting for driftsstans pรฅ hele nettstedet, databasegjenoppretting for รธdelagte datalagre og miljรธgjenoppretting for รธdelagt konfigurasjon eller avhengigheter. Hver bruker samme livssyklus med en annen feilutlรธser.

Maskinlรฆringsmodeller rangerer tjenester etter hendelseshistorikk og avhengighetsdybde, slik at de mest risikable gjenopprettingsbanene kjรธres fรธrst. Anomalideteksjon i gjenopprettingslogger flagger ogsรฅ kjรธringer som er fullfรธrte, men som produserte ufullstendige data.

GitHub Copilot utkaster feilinjeksjonshjelpere, gjenopprettingsskript og pรฅstander etter gjenoppretting raskt. Testeren bestemmer fortsatt hvilken feil som skal fremtvinges og hva en korrekt gjenopprettet tilstand ser ut, siden begge fรธlger forretningsregler.

ร…rlige รธvelser er vanlige, med kvartalsvise รธvelser for kritiske systemer. Enhver endring i sikkerhetskopieringsverktรธyet, lagringsplattformen eller arkitekturen bรธr utlรธse en ny kjรธring, siden en uprรธvd endring i stillhet ugyldiggjรธr det forrige resultatet.

Det tvinger frem reelle feil, sรฅ det overlapper med destruktiv testing, men mรฅlet er restaurering snarere enn brudd. Kjรธr det i en isolert testbenk, ikke mot produksjonsdata i sanntid.

Registrer injisert feil, start- og sluttidspunkter, mรฅlt RTO og RPO, trinn som krevde manuell inngripen og alle avvik funnet i de gjenopprettede dataene. Legg til korrigerende tiltak og dato for ny testing.

Oppsummer dette innlegget med: