Hvad er gendannelsestest? med Eksempel

⚡ Smart opsummering

Gendannelsestest verificerer, at software kan genoptage normal drift efter et nedbrud, et netværksfald eller en hardwarefejl, ved at gendanne systemet til et kendt funktionsdygtigt punkt og genbehandle transaktioner op til fejlen.

  • 🔁 Hvad det beviser: Operationer fortsætter efter en katastrofe, ikke blot at der findes en backupfil.
  • 🧩 Hvor den sidder: En ikke-funktionel teknik, der køres af trænede testere mod sikrede backupdata.
  • ⏱️ Drivere for restitutionstid: Genstartspunkter, datamængde og genoprettelsesteamets færdigheder og værktøjer.
  • 🔄 Procesform: Normal drift, katastrofe, afbrydelse, genopretning, derefter genopbygning tilbage til normalen.
  • 💾 Strategivalg: Enkelt eller flere sikkerhedskopier, ét websted eller flere, online eller offline, automatisk eller manuel.
  • Efter gendannelse: Tæl filer i forhold til den oprindelige mappe, åbn flere typer, og sammenlign mapper med systemværktøjer.

Hvad er recovery testing i softwaretestning med eksempler

Hvad er gendannelsestest?

Gendannelsestest er en softwaretestteknik, der verificerer softwarens evne til at gendanne sig efter fejl såsom software- eller hardwarenedbrud og netværksfejl. Formålet med gendannelsestest er at bestemme, om softwaredrift kan fortsættes efter en katastrofe eller et integritetstab. Gendannelsestest involverer at vende softwaren tilbage til det punkt, hvor integriteten var kendt, og genbehandle transaktioner op til fejlpunktet.

Inden for softwareudvikling er gendannelsestest en type ikke-funktionel testning — det dækker aspekter, der ikke er knyttet til en specifik funktion eller brugerhandling, såsom skalerbarhed eller sikkerhed. Det udføres af professionelle testere, og tilstrækkelige backupdata opbevares sikre steder på forhånd.

Eksempel på gendannelsestest

To scenarier viser teknikken i sin enkleste form. I hvert scenarie fremtvinges en fejl bevidst, og derefter overvåges applikationen, mens den genoptages.

  • Netværksafbrydelse: Mens en applikation modtager data fra netværket, skal du tage forbindelseskablet ud. Sæt det i igen efter et stykke tid, og analyser applikationens evne til at fortsætte med at modtage data fra det punkt, hvor forbindelsen blev afbrudt.
  • Gendannelse af session: Genstart systemet, mens en browser har et bestemt antal sessioner åbne, og kontroller, om browseren gendanner dem alle.

Illustrationen nedenfor viser den samme idé i visuel form.

Gendannelsestestkoncept, der viser et system, der fejler og derefter gendannes til normal drift

Den tid, det tager at komme sig, afhænger af:

  • Antallet af genstartpunkter
  • Mængden af ​​data, som applikationen opbevarer
  • Uddannelse og færdigheder hos de personer, der udfører rehabiliteringsaktiviteter, og de værktøjer, der er tilgængelige for rehabilitering

Når der er flere fejl, bør genoprettelsestest udføres på en struktureret måde i stedet for alle på én gang – udført for ét segment og derefter et andet.

Livscyklus for genopretningsproces

Før man designer testcases, er det nyttigt at se, hvor en recovery-test griber ind. Recovery-processens livscyklus har fem trin:

  1. Normal drift
  2. Katastrofebegivenhed
  3. Afbrydelse og svigt af driften
  4. Katastroferydning gennem genopretningsprocessen
  5. Rekonstruktion af alle processer og information, der bringer hele systemet tilbage til normal drift

Flowdiagrammet nedenfor viser de fem trin i rækkefølge.

Livscyklus for genopretningsprocessen, flowdiagram, der dækker normal drift, katastrofe, afbrydelse, genopretning og genopbygning

Lad os diskutere disse fem trin i detaljer:

  1. Normal drift. Et system af hardware, software og firmware, integreret for at opnå et fælles mål, udfører sit designede arbejde uden afbrydelser inden for en fastsat tidsperiode.
  2. Katastrofeforekomst. En afbrydelse kan opstå på grund af softwarefejl, såsom input-initieret fejl, et nedbrud forårsaget af hardwarefejl eller skader som følge af brand, tyveri eller strejke.
  3. Forstyrrelse og fiasko. Dette er den mest smertefulde fase, der fører til forretningstab, brudte relationer, mistede muligheder, tabte arbejdstimer og uundgåeligt økonomiske tab og tab af goodwill. En katastrofeberedskabsplan holder denne fase minimal.
  4. Katastrofeoprydning. Hvis der allerede er en backupplan og risikoreduktionsprocesser på plads, koster genopretning langt mindre tid og kræfter. Et udpeget team, hvor hver persons rolle er defineret på forhånd, fastlægger ansvaret og forhindrer en lang periode med afbrydelser.
  5. Rekonstruktion. Dette kan involvere flere sessioner med at genopbygge alle mapper sammen med konfigurationsfiler. Korrekt dokumentation og en defineret genopbygningsproces er nødvendig for korrekt gendannelse.

Restaureringsstrategi

Genopretningsteamet bør have sin egen strategi til at hente vigtig kode og data for at bringe driften tilbage til normalen. Denne strategi er unik for hver organisation, baseret på hvor kritiske de systemer er, den håndterer, og for kritiske systemer afhænger det af en række valg:

  1. En enkelt sikkerhedskopi, eller mere end én
  2. Flere sikkerhedskopier på ét sted eller på forskellige steder
  3. Online backup eller offline backup
  4. Sikkerhedskopier kører automatisk under en politik eller udløses manuelt
  5. Et uafhængigt restaureringsteam eller udviklingsteamet, der udfører arbejdet

Hvert valg har en omkostningsfaktor, og flere sikkerhedskopier kan forbruge flere fysiske ressourcer eller kræve et uafhængigt team. Afhængighed er også vigtig: virksomheder er eksponeret gennem den kode og de data, de opbevarer hos en enkelt udbyder, og en storstilet AWS Afbrydelser har gentagne gange sat kendte forbrugertjenester offline på samme tid. Uafhængig genoprettelseskapacitet er afgørende i sådanne tilfælde.

Sådan laver du gendannelsestest

Strategien er afgjort, og det næste spørgsmål er, hvordan selve testen sættes op. Følgende punkter bør overvejes, når man udfører recovery-testning.

  • Skab en testplatform, der er så tæt på de faktiske implementeringsforhold som muligt: ​​grænseflade, protokol, firmware, hardware og software skal stemme overens med produktionen.
  • Selvom udtømmende test kan være tidskrævende og dyrt, bør der stadig udføres en identisk konfiguration og en fuldstændig kontrol.
  • Hvis det er muligt, så test på den hardware, der endelig skal gendannes til – især når du gendanner til en anden maskine end den, der oprettede sikkerhedskopien.
  • Nogle sikkerhedskopieringssystemer forventer, at harddisken har nøjagtig samme størrelse som den, sikkerhedskopien blev taget fra.
  • Håndtering af forældelse: Drevteknologien udvikler sig hurtigt, og et gammelt drev er muligvis ikke kompatibelt med et nyt. Gendannelse til en virtuel maskine hjælper, da virtualiseringssoftware kan efterligne eksisterende hardware, herunder diskstørrelser.
  • Online backup-systemer er ikke en undtagelse fra testning. De fleste udbydere beskytter brugerne mod medieproblemer gennem fejltolerant lagring, så fejl dukker op sent.
  • Selvom online backup-systemer er ekstremt pålidelige, skal gendannelsessiden testes for at bekræfte, at der ikke er problemer med hentning, sikkerhed eller kryptering.

Da restitution udføres fra start til slut, er disse løb normalt planlagt sideløbende system test snarere end på enhedsniveau.

Testprocedure efter restaurering

Gendannelse af dataene er kun halvdelen af ​​øvelsen; den gendannede kopi skal stadig bevises brugbar. De fleste store virksomheder har uafhængige revisorer, der regelmæssigt udfører genoprettelsesplaner. En omfattende katastrofeberedskabsplan er dyr at vedligeholde og teste, så mindre organisationer er ofte afhængige af sikkerhedskopier og ekstern lagring i stedet.

Når mapper og filer er gendannet, bekræfter følgende kontroller, at de blev gendannet korrekt:

  • Omdøb den beskadigede dokumentmappe, så den gendannede kopi ikke kan forveksles med den.
  • Tæl filerne i de gendannede mapper, og sammenlign dette antal med den oprindelige mappe.
  • Åbn et par filer med det program, der normalt bruger dem, og bekræft, at dataene kan gennemses og opdateres som normalt.
  • Åbn flere filer af forskellige typer — billeder, MP3og dokumenter, nogle store og nogle små.
  • Brug de fleste værktøjer til sammenligning af filer og mapper operativsystemer levere.

Ofte Stillede Spørgsmål

Failover-testning kontrollerer, om trafikken skifter problemfrit til en standby-node. Gendannelsestestning går videre og spørger, om den oprindelige tjeneste, dens data og dens transaktioner i gang returneres til en korrekt tilstand.

RTO er den tid, der er tilladt for at bringe en tjeneste tilbage; RPO er det acceptable datatab. En gendannelsestest måler både: tidspunktet for gendannelsen af ​​RTO og sammenligning af gendannede data med den sidst kendte, gode tilstand for RPO.

Tre varianter gentages: katastrofegendannelse ved driftsafbrydelser på hele webstedet, databasegendannelse ved beskadigede datalagre og miljøgendannelse ved defekt konfiguration eller afhængigheder. Hver bruger den samme livscyklus med en forskellig fejludløser.

Maskinlæringsmodeller rangerer tjenester efter hændelseshistorik og afhængighedsdybde, så de mest risikable gendannelsesstier kører først. Anomalidetektion i gendannelseslogfiler markerer også kørsler, der er afsluttet, men producerede ufuldstændige data.

GitHub Copilot udarbejder hurtigt fejlinjektionshjælpere, gendannelsesscripts og efterfølgende gendannelsespåstande. Testeren bestemmer stadig, hvilken fejl der skal fremtvinges, og hvordan en korrekt gendannet tilstand ser ud, da begge følger forretningsregler.

Årlige øvelser er almindelige, med kvartalsvise øvelser for kritiske systemer. Enhver ændring af backupværktøjet, lagringsplatformen eller arkitekturen bør udløse en ny kørsel, da en utestet ændring lydløst ugyldiggør det tidligere resultat.

Det fremtvinger reelle fiaskoer, så det overlapper med destruktiv testning, men målet er restaurering snarere end brud. Kør det i en isoleret testplatform, ikke mod live produktionsdata.

Registrer den injicerede fejl, start- og sluttidspunkter, målt RTO og RPO, trin, der krævede manuel indgriben, og enhver uoverensstemmelse fundet i de gendannede data. Tilføj korrigerende handlinger og datoen for gentesten.

Opsummer dette indlæg med: