Yazılımda Dayanıklılık Testi: Anlamı ve Örnekleri

⚡ Akıllı Özet

Sürekli yük testi, bir uygulamaya uzun bir süre boyunca gerçekçi bir yük uygulayarak, zamanla ortaya çıkan sorunları ortaya çıkarır. Bellek sızıntıları, bağlantı tükenmesi ve yavaş performans düşüşü, bu testin yakalamayı amaçladığı kusurlardır.

  • 🕒 Uzun Süre: Gerçekçi bir yük, kısa süreli bir patlama değil, saatlerce veya günlerce devam ettirilmelidir.
  • 💧 Birincil Target: Bellek sızıntıları ve tahsis edilmiş ancak asla serbest bırakılmamış tüm kaynaklar.
  • 📉 Bozulma Kontrolü: Tepki süreleri, sadece iyi başlamakla kalmayıp, tüm süreç boyunca sabit kalmalıdır.
  • 🗄️ Veritabanı Odak Noktası: Burada bağlantı havuzları, açık imleçler ve giderek büyüyen günlük tabloları ortaya çıkıyor.
  • Zamanlama Gerçekçiliği: Bekleme süresi boyunca gerçekleşen planlanmış işleri ve toplu işlem pencerelerini dahil edin.
  • 📊 Karar Kuralı: Düz bir kaynak eğrisi geçerlidir; sürekli yükselen bir eğri ise belirli sınırlar içinde bile başarısız olur.

Islatma testi nedir?

Islanma Testi Nedir?

Islatma Testi Bir yazılım uygulamasının büyük miktarda yük altında uzun süre performansını ölçmek için kullanılan bir tür işlevsel olmayan testtir. Soak testinin amacı, yazılım uygulamasının yüksek hacimli kullanımı sürdürüp sürdürmediğini güvence altına almak ve tasarım beklentilerinin dışında ne olacağını kontrol etmektir.

Aşağıdaki resimde Islatma Testinin hangi aşamada olduğunu gösteren bir test döngüsü gösterilmektedir (Performans Testi Türü) bir uygulama üzerinde gerçekleştirilir.

Islatma Testi

Bu tür testlerde temel olarak izlenen şey, sistemdeki bir uygulamanın bellek kullanımıdır. Sistemin çok yüksek bir kullanım hacmine dayanıp dayanamayacağını bulmak ve tasarım beklentilerinin dışında ne olacağını görmek için sistem düzeyinde test yapılıyor.

Neden Islatma Testi Yapılır?

Bir sistem 2 saat kullanıldığında normal çalışabilir, ancak aynı sistem 10 saat veya daha uzun süre sürekli olarak kullanıldığında arızalanabilir veya anormal/rastgele davranabilir/çökebilir. Bu tür bir arızayı tahmin etmek için Soak Testi gerçekleştirilir.

Islatma Testi ne zaman yapılmalı?

Aşağıdaki senaryolarda Islatma Testi yapılmalıdır: –

  1. Yapının istemciye dağıtılmasından önce, yani herhangi bir uygulamanın belirli bir platformda yayınlanmasından önce, yüksek veya eşdeğer trafik seviyelerinde başarılı bir dizi yük testinden geçmesi gerekir. daha sonrasında ıslatma testi yapılır. Belirli bir uygulamanın uzun bir süre boyunca nasıl çalıştırılacağını belirlememize yardımcı olur. Soak'ta olduğu dönemde bellek sızıntısı/bellek bozulması gibi sorunlar bulunursa bu durum derhal rapor edilmelidir.
  2. Bir uygulamanın bir gün veya gece boyunca çalışır durumda kalması gerektiğinden, ıslatma testi yapmak için en iyi zaman hafta sonlarıdır. Bu tamamen test durumunun sınırlamalarına bağlıdır. Islatma testleri, her şirketin sıkı bir şekilde takip etmesi gereken en önemli uyumluluk gereksinimlerinden biridir.

Islatma Testi Stratejisi

Uzun Oturum Islatma Testi, sistemin daha uzun süre yük altında kaldığı bir stratejidir.

Basit bir örnek, kullanıcının bir dizi ticari işlemi yürütürken saatlerce sistemde oturum açmış halde kalmasıdır. Bu şekilde çok fazla veri oluşturulur. Sistem/veritabanı sunucusunda, sistem/veritabanı sunucusunun durmasına/çökmesine neden olabilecek çok fazla yük olabilir.

Uzun Oturumlu Islatma Testi kapsamında, birden fazla günlük (örneğin 30 gün) aktiviteler kısıtlı bir zaman diliminde (örneğin 2 gün) gerçekleştirilir. Bu kısıtlanmış zaman çerçevesindeki işlem sayısı, birden fazla günlük işlemlerle eşleşmeli veya bunları aşmalıdır. Odak noktası, işlenen işlemlerin sayısına odaklanmalıdır. Soak Testinin en önemli kısmı CPU'daki mevcut belleği ve kullanımda olacak bellek miktarını kontrol etmektir. Bir ıslatma testinin başlangıcında ve sonunda bellek kullanımını kaydetmemiz gerekir. Gerekirse, aşağıdaki gibi tesislerin hafıza kullanımı Java Sanal Makineler de önemlidir ve izlenmesi gerekir.

Aşağıda herhangi bir kullanıcının/testçinin Soak Testine başlamadan önce yapması gereken birkaç kontrol daha verilmiştir:

a) Veritabanı kaynak tüketimini izleyin.

b) Sunucu kaynak tüketimini izleyin (eski CPU kullanımı).

c) Islatma testi gerçekçi kullanıcı eşzamanlılığıyla çalışmalıdır.

Islatma Testinin Özellikleri

Standart bir Islatma Testi Yöntemi aşağıdaki özelliklere sahip olmalıdır: –

  • Çoğu Islatma Testinin süresi genellikle mevcut zamana göre belirlenir.
  • Herhangi bir uygulamanın, uzun bir süre gerektirmesi durumunda kesintisiz çalışması gerekir.
  • Paydaşların üzerinde mutabakata vardığı tüm senaryoları kapsamalıdır.
  • Çoğunlukla her sistemin düzenli bir bakım aralığı dönemi vardır ve bu pencere dönemleri arasındaki süre, Islatma Testinin kapsamının belirlenmesinde önemli bir faktördür.

Islatma Testi Örnekleri

  • Bankacılık alanında satıcılardan büyük miktarda veri geldiğinde, test cihazı, uygulamanın bu yükleme süresi boyunca nasıl davrandığını kontrol etmek için sistemi 70 ila 150 saat boyunca sürekli olarak yük altına alacaktır.
  • Sisteme aktarılması gereken 33,000 oturum açma işlemi olduğunu varsayalım; bu, yedi buçuk günlük bir aktiviteyi temsil ediyor. Bu durumda Cuma akşamı saat 60 civarında 70-6 saatlik bir Islatma Testi başlatılabilir. Monday sabah saat 6'da. Ancak böyle bir testle kontrollü koşullar altında performansta herhangi bir bozulma gözlemlemek mümkün olacaktır.
  • Video oyunları söz konusu olduğunda, Telefon Uygulamalar vb., bir uygulamanın sürekli olarak beklenen yükü kaldırabildiğini öğrenmek için oyunu veya uygulamayı uzun bir süre çalışır durumda bırakmayı, çeşitli çalışma modlarında (boşta bekleme, başlık ekranında duraklatma vb.) bırakmayı içerir. .

Islatma Testi sırasında gözlemlenen yaygın sorunlar

  1. Bellek tahsisi (sonunda bellek krizine veya yalnızca zamanla ortaya çıkan yuvarlama hatalarına neden olacak bellek sızıntıları).
  2. Veritabanı kaynak kullanımı (Bazı koşullar altında veritabanı imleçlerinin kapatılamaması, sonuçta tüm sistemin durmasına neden olur).
  3. Bu aynı zamanda performansın düşmesine de yol açabilir; yani, uzun süreli sürekli bir faaliyetten sonra yanıt süresinin testin başlangıcındaki kadar iyi olmasını sağlamak.
  4. Bazı durumlarda çok katmanlı bir sistemin katmanları arasındaki bağlantıların kapatılmaması, sistemin bazı modüllerinin veya tüm modüllerinin durmasına neden olabilir.
  5. Uzun bir test sırasında dahili veri yapıları daha az verimli hale geldiğinden, bazı işlevlerin yanıt süresinin kademeli olarak bozulması.

Bu Test Performans Testi Ailesine Nasıl Uyuyor?

Performans testi genel bir terimdir. Aşağıdaki varyantlar yalnızca uygulanan yükün şekli ve uygulanma süresi bakımından farklılık gösterir; bu nedenle sıklıkla birbirleriyle karıştırılırlar.

Test türü Yük deseni Soruyu cevaplıyor
Yük testi Beklenen en yüksek yük, kısa süre Sistem, normal yoğun trafik koşullarında hedeflerine ulaşıyor mu?
Stres testi Kapasitenin ötesine geçerek arızaya kadar artırıldı. Nereden kırılıyor ve bu kırılma zarif bir şekilde mi gerçekleşiyor?
Spike testi Ani ve aşırı bir yükseliş, ardından geri çekilme Trafik çarpmasının etkisinden kurtulup toparlanabilir mi?
Dayanıklılık testi Normal yük uzun saatler boyunca taşındı. Performans zamanla düşer mi?
ıslatma testi Uzun bir süre boyunca devam eden yük Bellek sızıntısı veya kaynak tükenmesi var mı?
Stabilite testi Koşullara bağlı olarak değişen yük Koşullar değiştikçe sistem güvenilirliğini koruyor mu?
Hacim testi Normal kullanıcılar, çok büyük veri hacmi Veritabanı büyüdükçe bu duruma uyum sağlayabiliyor mu?

Dayanıklılık testi ve suya batırma testi sıklıkla eş anlamlı olarak ele alınır. Genel kullanımda ikisi de uzun süre boyunca sürekli bir yük altında kalır. Ekipler bunları birbirinden ayırdığında, dayanıklılık testi yanıt sürelerinin yukarı doğru kayıp kaymadığına odaklanırken, yoğun kullanım testi bellek, dosya tanıtıcıları ve bağlantı havuzları gibi kaynak tüketimine odaklanır. Birini çalıştırmak genellikle her ikisi için de kanıt sağlar.

Test Sırasında Kaydedilmesi Gereken Temel Ölçümler

Bir performans testi, ancak çalışırken kaydettiğiniz veriler kadar iyidir. Bu altı değeri sunucu ve istemci tarafında kaydedin, ardından bunları sezgisel bir tahmine göre değil, temel değerlerle karşılaştırın.

metrik Sana ne anlatıyor? Uyarı işareti
Ortalama yanıt süresi Tipik kullanıcı deneyimi Koşu boyunca herhangi bir yukarı doğru kayma
95. yüzdelik dilim yanıt süresi En yavaş kullanıcıların deneyimi Ortalamanın çok üzerinde, yani tutarsızlık anlamına geliyor.
çıktı Saniyede işlenen istek sayısı Yük sabit kalırken düşme
Hata oranı Başarısız veya zaman aşımına uğrayan isteklerin payı Anlaşma eşiğinin üzerindeki herhangi bir artış
CPU ve bellek kullanımı Sunucu kaynak kapasitesi Yükselen ve asla geri dönmeyen bir anı
Veritabanı bağlantıları ve iş parçacıkları Havuz yorgunluğu Serbest bırakılmadan istikrarlı bir şekilde artan sayılar

Ortalamayı ve yüzdelik dilimi birlikte okuyun. 95. yüzdelik dilimi 900 ms olan ortalama 800 ms, tutarlı bir sistemi tanımlar. Aynı ortalamanın 95. yüzdelik dilimi 9 saniye ise, her yirmi kullanıcıdan birinin kötü bir deneyim yaşadığı ve ortalamanın bunu gizlediği anlamına gelir.

Sadece değerine değil, şekline de bakın. Uzun süreli herhangi bir testte, kaynak çizgisinin düz olması başarılı, yükselmesi ise sızıntı anlamına gelir; bu durum, testin bittiği anda mutlak sayı limitin içinde olsa bile geçerlidir.

SSS

Yaygın kullanımda ikisi aynıdır. Ekiplerin bunları birbirinden ayırdığı durumlarda, dayanıklılık testleri tepki süresindeki sapmayı izlerken, uzun süreli kaynak tüketimini izler. Normalde tek bir çalıştırma her ikisi için de kanıt sağlar.

En az bir tam iş döngüsünü kapsayacak kadar uzun, genellikle 8 ila 72 saat süren bir çalışma süresi gereklidir. Çalışma süresi, zamanlanmış toplu işleri veya gece çalışan süreçleri de içermelidir, çünkü bunlar genellikle veri sızıntısına neden olur.

Bellek eğrisi, çöp toplama işleminden sonra sürekli olarak yükselir ve asla önceki seviyesine geri dönmez. Mutlak değerden ziyade eğim daha önemlidir: tutarlı bir yukarı yönlü eğilim bir kusurdur.

Yapay zekâ tabanlı izleme, saatlerce süren telemetri verilerini analiz eder ve trendin değiştiği noktayı tam olarak belirler; bu, binlerce veri noktası arasında manuel olarak tespit edilmesi pratik olmayan bir durumdur.

Kısmen doğru. Modeller kaynak eğilimini tahmin edebilir ve tükenmeyi daha erken öngörebilir, ancak bir serbest bırakma kararı verilmeden önce tahminin doğrulanması için gerçek bir deneme yapılması gerekir.

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