Yazılım Testinde Spike Testi Nedir? Örnekle Öğrenin
⚡ Akıllı Özet
Ani yük artışı testi, bir uygulamayı aniden ve aşırı bir yük artışına maruz bırakır ve ardından aynı şekilde aniden yükü azaltır. Amaç, sistemin bu şoku atlatıp atlatamayacağını ve daha da önemlisi, sonrasında toparlanıp toparlanamayacağını öğrenmektir.

Spike Testi Nedir?
Spike Testi Bir yazılım uygulamasının trafik yükünde aşırı artış ve azalmalarla test edildiği bir yazılım testi türüdür. Ani artış testinin temel amacı, yazılım uygulamasının kullanıcı yükündeki ani artış veya azalışlardaki davranışını değerlendirmek ve kullanıcı yükündeki ani artış sonrasında iyileşme süresini belirlemektir.
Spike Testi, yazılım uygulamalarının zayıf yönlerini tahmin etmek için yapılır.

Spike Testinin Amaçları
Spike testinin amacı, sistemin kullanıcı yükünün beklenmedik artış ve düşüşlerine nasıl tepki verdiğini görmektir. Yazılım Mühendisliğinde Spike testi, ani bir yüksek yük oluştuğunda sistem performansının bozulup bozulmayacağını belirlemeye yardımcı olur.
Spike Testinin bir diğer amacı iyileşme süresini belirlemektir. Kullanıcı yükünün birbirini takip eden iki artışı arasında sistemin dengelenmesi için biraz zamana ihtiyacı vardır. Bu iyileşme süresi mümkün olduğu kadar kısa olmalıdır.
Spike Testi nasıl yapılır?
Spike Testini gerçekleştirmek için basit adımlar şunlardır:
Adım 1) Yük Kapasitesini Belirleyin
Yazılım uygulamanızın Maksimum Kullanıcı Yükü kapasitesini belirleyin.
Adım 2) Test Ortamını Hazırlayın
Test Ortamını hazırlayın ve performans parametrelerini kaydedecek şekilde yapılandırın.
Adım 3) Beklenen Yükü Tanımlayın
Beklenen maksimum yükü Yazılım Uygulamanıza bir Performans Test Aracı seçtiğiniz.
Adım 4) Yükü Artırın
Sisteme gelen yükü belirli bir süre boyunca hızla artırın.
Adım 5) Yükü Tekrar Normale Ayarlayın
Yükü yavaş yavaş orijinal seviyesine indirin.
Adım 6) Sonuçları Analiz Edin
Arızalar, Harcanan Zaman, Sanal Kullanıcılar vb. gibi performans grafiklerini ve ölçümlerini analiz edin.
Spike Testi Senaryolarına Örnekler
- Bir e-Ticaret mağazası Kara Cuma gibi harika indirimlerle özel fırsatlar başlattığında.
- Bir web uygulaması favori bir TV programını canlı olarak yayınladığında.
- Günlük bir fırsat sitesinde flaş indirim devam ederken.
- Bir sitenin belirli içeriği İnternet üzerinden viral hale geldiğinde.
- Üretim için yeni bir sistem piyasaya sürüldü ve birden fazla kullanıcı sisteme erişmek istiyor.
- Bir elektrik kesintisi tüm kullanıcıların bir sisteme erişimini kaybetmesine neden olabilir. Kesinti sorunu çözüldükten sonra tüm kullanıcılar aynı anda sisteme tekrar giriş yapar.
Ani Yüklerde Kurtarma Senaryoları
Spike'lara karşı koruma sağlayacak şekilde yapılandırılabilecek üç ana kurtarma senaryosu şunlardır:
- Gibi bulut platformlarını kullanın AWS, Azure kullanıcı yüküne paralel olarak sunucu kapasitesini dinamik olarak artırmak
- Sistemin ağır yük ile karşı karşıya kalmaması için bazı kullanıcıların uygulama erişimine izin vermeyin. Bu, tasarlanan maksimum yükün üzerindeki kişilerin sisteme girmesini engeller. Böylece sistemi aşırı yük tehdidine karşı korur.
- Site yöneticisi kullanıcıların sisteme katılmasına izin verir. Ancak ağır yük nedeniyle yavaş tepkiyle karşı karşıya kalabilecekleri uyarısıyla. Bu, sistem performansı üzerinde olumsuz etkiye neden olabilir. Ancak kullanıcı sistemle çalışabilecektir.
Ani Gerilim Testinin Avantajları ve Dezavantajları
Aşağıda Spike Testinin avantajları ve dezavantajları bulunmaktadır:
| Avantajlar | Dezavantajlar |
|---|---|
| Yazılımın performansı ne pahasına olursa olsun korunmalıdır. Ancak herhangi bir sistemin yükünde aşırı bir artış olduğunda sorunların ortaya çıkma olasılığı da yüksektir. Spike Testi bu tür senaryoların test edilmesine yardımcı olur. | Spike Testinin tek dezavantajı pahalı bir test süreci olmasıdır. Bu nedenle özel test koşullarının oluşturulması gerekiyordu. Ancak uzun vadede kesinlikle olumlu bir yatırım getirisi sağlayacaktır. |
| Standart test yönteminde, kötü senaryolardan en kötü senaryolara kadar her şey ele alınamayabilir. Ancak bunların göz ardı edilmesi bunların hiçbir zaman gerçekleşmeyeceği anlamına gelmez. Bu nedenle her yazılımın bu tür olasılıklara hazır olması gerekir. En kötü durum senaryolarından biri, ani yükselme testi yardımıyla değerlendirilebilen ve en aza indirilebilen yüklemedir. |
Spike Test Araçları
1) JMeter
MKS Apache JMeter Java açık kaynaklı bir spike test aracıdır. Fonksiyonel test davranışını yüklemek ve performansı ölçmek için özel olarak tasarlanmıştır. Bu performans test aracı, web uygulamasının veya çeşitli hizmetlerin performansını analiz etmek ve ölçmek için kullanılabilir. Günümüzde fonksiyonel test, veritabanı sunucusu testi için yaygın olarak kullanılmaktadır.
2) LoadRunner
LoadRunner, aşağıdakiler için bir yük test aracıdır: Windows ve web ve diğer uygulamaların ani testlere izin veren Linux. Ağır yük altında bile uygulamanın performansını ve sonucunu belirlemeye yardımcı olur.
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.
Ani Artış Testi: Önemli Noktalar
- yazılım testi Bir yazılım uygulamasının trafik yükünde aşırı artış ve azalmalarla test edildiği bir yazılım testi türüdür.
- Ani artış testi yapmak için doğru yaklaşım, kullanıcı sayısını beklenmedik bir şekilde artırmak ve ardından yükte ani bir azalma sağlamaktır.
- Beklenmeyen yük, anlaşmanın ana özelliğidir.
- Gerçek hayattaki Spike test senaryolarına örnek olarak bir e-Ticaret mağazasının Kara Cuma gibi harika indirimlerle özel fırsatlar başlatması gösterilebilir. Alternatif olarak, bir web uygulaması favori bir TV programını canlı yayınlarken.
- JMeter spike testi yapmak için çok kullanışlı bir araçtır.
