Kurtarma Testi Nedir? Örnek ile

⚡ Akıllı Özet

Kurtarma testi, sistemin bilinen iyi bir noktaya geri yüklenmesi ve arızaya kadar olan işlemlerin yeniden işlenmesi yoluyla, yazılımın bir çökme, ağ bağlantısının kesilmesi veya donanım arızasından sonra normal çalışmasına devam edebildiğini doğrular.

  • 🔁 Kanıtladığı şey: OperaBir felaketin ardından yedekleme dosyasının varlığıyla sınırlı kalmayıp, operasyonlar devam eder.
  • 🧩 Bulunduğu yer: Eğitimli test uzmanları tarafından güvenli yedek veriler üzerinde uygulanan, işlevsel olmayan bir teknik.
  • ⏱️ İyileşme süresini etkileyen faktörler: Yeniden başlatma noktaları, veri hacmi ve kurtarma ekibinin becerileri ve araçları.
  • 🔄 İşlem şekli: Normal işleyiş, felaket, aksama, toparlanma ve ardından normale dönüş için yeniden yapılanma.
  • 💾 Strateji seçenekleri: Tek veya çoklu yedeklemeler, tek bir konum veya birkaç konum, çevrimiçi veya çevrimdışı, otomatik veya manuel.
  • ✅ Geri yüklemeden sonra: Dosyaları orijinal klasörle karşılaştırın, çeşitli dosya türlerini açın ve sistem yardımcı programlarını kullanarak dizinleri karşılaştırın.

Yazılım testinde kurtarma testi nedir? Örnekle açıklayın.

Kurtarma Testi Nedir?

Kurtarma Testi Kurtarma testi, yazılımın yazılım veya donanım çökmeleri ve ağ arızaları gibi hatalardan kurtulma yeteneğini doğrulayan bir yazılım test tekniğidir. Kurtarma testinin amacı, bir felaket veya bütünlük kaybından sonra yazılım işlemlerinin devam ettirilip ettirilemeyeceğini belirlemektir. Kurtarma testi, yazılımı bütünlüğün bilindiği noktaya geri döndürmeyi ve arıza noktasına kadar olan işlemleri yeniden işlemeyi içerir.

Yazılım mühendisliğinde, kurtarılabilirlik testi bir türüdür. işlevsel olmayan test — Ölçeklenebilirlik veya güvenlik gibi belirli bir işlev veya kullanıcı eylemiyle bağlantılı olmayan yönleri kapsar. Profesyonel test uzmanları tarafından yapılır ve yeterli yedek veri önceden güvenli yerlerde saklanır.

Kurtarma Testi Örneği

İki senaryo, tekniği en basit haliyle göstermektedir. Her birinde kasıtlı olarak bir arıza oluşturulur, ardından uygulamanın yeniden çalışmaya başlaması izlenir.

  • Ağ kesintisi: Bir uygulama ağdan veri alırken, bağlantı kablosunu çıkarın. Bir süre sonra kabloyu tekrar takın ve uygulamanın bağlantının kesildiği noktadan itibaren veri almaya devam etme yeteneğini analiz edin.
  • Oturum geri yükleme: Tarayıcıda belirli sayıda oturum açıkken sistemi yeniden başlatın ve tarayıcının tüm oturumları kurtarıp kurtarmadığını kontrol edin.

Aşağıdaki çizim aynı fikri görsel olarak ortaya koymaktadır.

Sistem arızasını ve ardından normal çalışmasına geri döndürülmesini gösteren kurtarma testi konsepti.

İyileşmenin süresi şunlara bağlıdır:

  • Yeniden başlatma noktalarının sayısı
  • Uygulamanın tuttuğu veri hacmi
  • Kurtarma faaliyetlerini yürüten kişilerin eğitimi ve becerileri ile kurtarma için mevcut araçlar

Birden fazla arıza olduğunda, kurtarma testleri, tüm testler aynı anda, yani önce bir bölüm sonra diğer bölüm için yapılarak değil, yapılandırılmış bir şekilde gerçekleştirilmelidir.

Kurtarma Sürecinin Yaşam Döngüsü

Test senaryolarını tasarlamadan önce, kurtarma testinin nerede devreye girdiğini görmek faydalı olur. Kurtarma sürecinin yaşam döngüsü beş adımdan oluşur:

  1. Normal operasyon
  2. Afet oluşumu
  3. Operasyonun aksaması ve başarısızlığı
  4. Kurtarma süreci yoluyla felaket temizleme
  5. Tüm süreçlerin ve bilgilerin yeniden yapılandırılması, tüm sistemin normal çalışmasına geri döndürülmesi.

Aşağıdaki akış şeması bu beş aşamayı sırasıyla göstermektedir.

Kurtarma sürecinin yaşam döngüsü akış şeması; normal çalışma, afet, kesinti, kurtarma ve yeniden yapılanmayı kapsar.

Şimdi bu beş adımı detaylı olarak ele alalım:

  1. Normal operasyon. Ortak bir amaca ulaşmak için entegre edilmiş donanım, yazılım ve bellenim sistemi, tasarlanan görevini öngörülen süre içinde kesintisiz olarak yerine getirir.
  2. Afet olayı. Yazılımın arızalanması nedeniyle bir aksama meydana gelebilir; bu arızanın nedenleri arasında giriş kaynaklı arıza, donanım arızasından kaynaklanan çökme veya yangın, hırsızlık veya grevden kaynaklanan hasar gibi sebepler yer alabilir.
  3. Kesinti ve başarısızlık. Bu, iş kayıplarına, bozulan ilişkilere, kaçırılan fırsatlara, insan gücü kayıplarına ve kaçınılmaz olarak mali ve itibar kayıplarına yol açan en acı verici aşamadır. Bir afet kurtarma planı bu aşamayı en aza indirir.
  4. Afet sonrası temizlik. Yedekleme planı ve risk azaltma süreçleri önceden mevcutsa, kurtarma maliyeti çok daha az zaman ve çaba gerektirir. Her bireyin rolünün önceden tanımlandığı belirlenmiş bir ekip, sorumluluğu sabitler ve uzun bir aksama dönemini önler.
  5. Yeniden yapılanma. Bu işlem, yapılandırma dosyalarıyla birlikte tüm klasörleri yeniden oluşturmak için birden fazla çalışma oturumu gerektirebilir. Doğru kurtarma için uygun dokümantasyon ve tanımlanmış bir yeniden yapılandırma süreci gereklidir.

Restorasyon Stratejisi

Kurtarma ekibinin, operasyonları normale döndürmek için önemli kod ve verileri kurtarmaya yönelik kendi stratejisi olmalıdır. Bu strateji, her kuruluşun ele aldığı sistemlerin kritiklik derecesine bağlı olarak benzersizdir ve kritik sistemler için bir dizi seçeneğe indirgenir:

  1. Tek bir yedekleme veya birden fazla yedekleme
  2. Birden fazla yedeklemeyi tek bir yerde veya farklı yerlerde yapabilirsiniz.
  3. Çevrimiçi yedekleme veya çevrimdışı yedekleme
  4. Yedeklemeler bir politika kapsamında otomatik olarak veya manuel olarak tetiklenerek çalıştırılır.
  5. Bağımsız bir restorasyon ekibi veya işi yapan geliştirme ekibi

Her seçeneğin bir maliyet faktörü vardır ve birden fazla yedekleme daha fazla fiziksel kaynak tüketebilir veya bağımsız bir ekip gerektirebilir. Bağımlılık da önemlidir: şirketler, tek bir sağlayıcıda tuttukları kod ve veriler aracılığıyla risk altındadır ve büyük ölçekli bir yedekleme sistemi de bu riski artırır. AWS Kesintiler, bilinen tüketici hizmetlerini aynı anda defalarca devre dışı bırakmıştır. Bu gibi durumlarda bağımsız kurtarma yeteneği çok önemlidir.

Kurtarma Testi nasıl yapılır

Strateji belirlendiğine göre, bir sonraki soru testin nasıl kurulacağıdır. Kurtarma testi yapılırken aşağıdaki noktalar dikkate alınmalıdır.

  • Test ortamını, gerçek dağıtım koşullarına mümkün olduğunca yakın olacak şekilde oluşturun: arayüz, protokol, bellenim, donanım ve yazılım üretim ortamıyla aynı olmalıdır.
  • Kapsamlı testler zaman alıcı ve maliyetli olsa da, aynı konfigürasyon ve eksiksiz bir kontrol yine de yapılmalıdır.
  • Mümkünse, özellikle yedeklemeyi oluşturan makineden farklı bir makineye geri yükleme yapıyorsanız, nihai olarak geri yükleme yapılacak donanım üzerinde test edin.
  • Bazı yedekleme sistemleri, sabit sürücünün, yedeğin alındığı sürücüyle tam olarak aynı boyutta olmasını bekler.
  • Eskimeyi yönetin: sürücü teknolojisi hızla gelişiyor ve eski bir sürücü yeni bir sürücüyle uyumlu olmayabilir. Eski bir sürücüye geri yükleme Sanal makine Sanallaştırma yazılımı, disk boyutları da dahil olmak üzere mevcut donanımı taklit edebildiği için faydalıdır.
  • Çevrimiçi yedekleme sistemleri de testlerden muaf değildir. Çoğu sağlayıcı, hataya dayanıklı depolama sayesinde kullanıcıları ortam sorunlarından korur, bu nedenle arızalar geç ortaya çıkar.
  • Çevrimiçi yedekleme sistemleri son derece güvenilir olsa da, geri yükleme tarafının da test edilerek, veri alma, güvenlik veya şifreleme ile ilgili herhangi bir sorun olmadığından emin olunması gerekir.

Çünkü toparlanma süreci baştan sona egzersiz şeklinde gerçekleşir, bu nedenle bu koşular genellikle eş zamanlı olarak planlanır. sistem testi birim düzeyinde değil.

Restorasyon Sonrası Test Prosedürü

Verileri geri yüklemek işin sadece yarısı; geri yüklenen kopyanın kullanılabilirliğinin de kanıtlanması gerekiyor. Büyük şirketlerin çoğu, bağımsız denetçilere periyodik olarak kurtarma tatbikatları yaptırır. Kapsamlı bir felaket kurtarma planının bakımı ve test edilmesi pahalıdır, bu nedenle daha küçük kuruluşlar genellikle yedeklemelere ve şirket dışı depolamaya güvenirler.

Klasörler ve dosyalar geri yüklendikten sonra, bunların doğru şekilde kurtarıldığını doğrulamak için aşağıdaki kontroller yapılır:

  • Bozuk belge klasörünü yeniden adlandırın, böylece geri yüklenen kopya onunla karıştırılmasın.
  • Geri yüklenen klasörlerdeki dosyaları sayın ve bu sayıyı orijinal klasördeki dosya sayısıyla karşılaştırın.
  • Normalde bu dosyaları kullanan uygulamayla birkaç dosya açın ve verilerin her zamanki gibi görüntülenebildiğini ve güncellenebildiğini doğrulayın.
  • Çeşitli türlerde birkaç dosya açın — resimler, MP3ve belgeler, bazıları büyük bazıları küçük.
  • Çoğu kullanıcının sunduğu dosya ve dizin karşılaştırma yardımcı programlarını kullanın. işletim sistemleri sağlar.

SSS

Yük devretme testi, trafiğin bekleme düğümüne sorunsuz bir şekilde geçip geçmediğini kontrol eder. Kurtarma testi ise daha da ileri giderek, orijinal hizmetin, verilerinin ve devam eden işlemlerinin doğru bir duruma geri döndürülüp döndürülmediğini sorgular.

RTO, bir hizmeti geri getirmek için tanınan süredir; RPO ise kabul edilebilir veri kaybıdır. Bir kurtarma testi her ikisini de ölçer: RTO için geri yükleme süresini ve RPO için kurtarılan verileri bilinen son iyi durumla karşılaştırmayı.

Üç varyant tekrar tekrar karşımıza çıkar: site genelindeki kesintiler için felaket kurtarma, bozulmuş veri depoları için veritabanı kurtarma ve bozuk yapılandırma veya bağımlılıklar için ortam kurtarma. Her biri farklı bir arıza tetikleyicisiyle aynı yaşam döngüsünü kullanır.

Makine öğrenimi modelleri, hizmetleri olay geçmişine ve bağımlılık derinliğine göre sıralar, böylece en riskli geri yükleme yolları önce çalıştırılır. Geri yükleme günlükleri üzerindeki anormallik tespiti, tamamlanmış ancak eksik veri üreten işlemleri de işaretler.

GitHub Yardımcı Pilotu Hata enjeksiyonu yardımcılarını, geri yükleme komut dosyalarını ve geri yükleme sonrası doğrulama işlemlerini hızla oluşturur. Test uzmanı, hangi hatanın zorla oluşturulacağına ve doğru kurtarılmış durumun nasıl görüneceğine yine de kendisi karar verir, çünkü her ikisi de iş kurallarına uyar.

Yıllık tatbikatlar yaygındır, kritik sistemler için ise üç ayda bir tatbikatlar yapılır. Yedekleme aracında, depolama platformunda veya mimaride yapılacak herhangi bir değişiklik, yeni bir çalıştırmayı tetiklemelidir, çünkü test edilmemiş bir değişiklik önceki sonucu sessizce geçersiz kılar.

Bu durum gerçek başarısızlıkları zorunlu kılıyor, dolayısıyla bununla örtüşüyor. yıkım testiAncak amaç, bozmak değil, onarmak olmalıdır. Bunu canlı üretim verilerine karşı değil, izole bir test ortamında çalıştırın.

Enjekte edilen arızayı, başlangıç ​​ve bitiş zamanlarını, ölçülen RTO ve RPO değerlerini, manuel müdahale gerektiren adımları ve geri yüklenen verilerde bulunan her tutarsızlığı kaydedin. Düzeltici eylemleri ve yeniden test tarihini ekleyin.

Bu yazıyı şu şekilde özetleyin: