Performans, Yük ve Stres Testi Nedir? Farklılıkları Nelerdir?
Merhaba arkadaşlar, bugün sizlere Performans testlerinden bahsedeceğim. Ayrıca Performans testlerinin alt dallarından biri olan ve sıklıkla birbirleriyle karıştırılan Yük testi (Load Testing) ile Stres testi (Stress Testing) kavramları hakkında bilgiler vereceğim. Konumuzun asıl amacı bu 3 kavram hakkında temel seviye bilgi sahibi olabilmek ve bu kavramları birbirinden ayırt edebilir düzeye gelebilmek.
Performans testi (Performance Testing), bir sistemin bileşenlerinin belirli bir durumda nasıl davrandığını belirlemek için yapılan işlevsel olmayan (non-functional) test tekniğidir. Ürünün; kaynak kullanımı, ölçeklenebilirliği ve güvenilirliği performans testleri kapsamında doğrulanır. Bu test, bir yazılım ürününün tasarımı ve mimarisindeki performans sorunlarını ele almaya odaklanır.

Yukarıdaki görsel, performans testinin hem yük hem de stres testi için üst kategori olduğunu bize açıklamaktadır. Performans testine dahil edilen diğer test türleri: Spike testi, Hacim testi, Dayanıklılık testi ve Ölçeklenebilirlik testidir. Bu nedenle, performans testi temelde çok geniş bir terimdir.

Performans Testi Hedefi:
Performans testi, uygulamadaki kusurları bulmayı amaçlamaz. Ayrıca sonuçları geçersiz veya başarısız olarak nitelendiremez. Daha ziyade bir uygulama için kıyaslama ve standart belirleme gibi kritik bir görevi ele alır. Uygulama ve sistem performansının yakından izlenmesi, performans testinin temel özelliğidir.
Uygulamanın ölçütü ve standardı; hız, yanıt süresi, iş hacmi, kaynak kullanımı ve kararlılık gibi özellikler açısından belirlenmelidir. Tüm bu özellikler bir performans testinde test edilir.
Başarılı bir performans testi; veri tabanı, ağ, yazılım, donanım vb. ile ilgili olabilecek performans sorunlarını kapsamalıdır.
Yük Testi
Yük testi, sistemdeki yükü eşik sınırına ulaşana kadar sürekli ve istikrarlı bir şekilde artırarak sistemi test etmek için uygulanır. Performans testinin bir alt kümesidir. Piyasada bulunan uygun otomasyon araçlarından herhangi biri kullanılarak yük testi kolaylıkla yapılabilir. WAPT ve LoadRunner, yük testine yardımcı olan iki ünlü araçtır.
Yük testi, hacim testi ve dayanıklılık testi gibi isimlerle de ünlüdür. Ancak hacim testi esas olarak veri tabanlarına odaklanır. Dayanıklılık testi ise sistemi uzun bir süre boyunca önemli bir yük altında tutarak test eder.
Yük testinin temel amacı, sistemin dayanıklılığını test etmek ve sonuçları izlemek için sisteme yapabileceği en doğru işi atamaktır.
Yük Testi Hedefi:
Bir uygulamanın veri tabanı, donanım, ağ vb. tüm bileşenlerinin üst sınırını belirlemek, böylece uygulamanın gelecekte beklenen yükü yönetebilmesi.
Uygulama için Hizmet Seviyesi Anlaşması’nı (SLA) ayarlamak.
Stres Testi
Stres testi altında, sistemi çökertmek için mevcut kaynakları aşırı yüklemeye yönelik çeşitli faaliyetler gerçekleştirilir. Bileşenlerin sistemden çıkarılmasını içeren negatif testler de stres testinin bir parçası olarak yapılır.
Yorulma testi olarak da bilinen bu test, bir uygulamanın kararlılığını bant genişliği kapasitesinin ötesinde test ederek yakalamalıdır. Bu nedenle, temel olarak, stres testi, bir uygulamanın davranışını tepe yük ve normal koşulların ötesinde değerlendirir.
Stres testinin amacı, sistemin kırılma noktasının tespit edilebilmesidir. Sistemin hangi noktada yanıt veremediğinin belirlenmesi önemlidir. Buradaki zorluk, testi başlatmadan önce kontrollü bir ortam oluşturmaktır. Böylece öngörülemeyen senaryolar altında sistemin davranışını defalarca tam olarak yakalayabilirsiniz.
Stres Testi Hedefi:
Stres testinin amacı, uygulamanın kırılma noktasından sonraki davranışını tanımlamak için çökme sonrası raporları analiz etmektir.
En büyük zorluk, sistemin arızadan sonra hassas verilerin güvenliğini tehlikeye atmamasını sağlamaktır. Başarılı bir stres testinde, sistem en korkunç arızadan sonra bile tüm bileşenleri ile birlikte normale dönecektir.
Performans, Yük, Stres Testi Kıyaslaması
Özellik | Performans Testi | Yük Testi | Stres Testi |
Alan | Yük ve Stres testinin üst kategorisi | Performans testinin alt kategorisi | Performans testinin alt kategorisi |
Kapsam | Çok geniş kapsamlı | Hacim ve dayanıklılık testini içerir | Spike ve Soak testini içerir |
Ana Hedef | Uygulamanın Kriter ve Standartlarını belirlemek | Sistemin üst sınırını belirlemek | Sistemin yoğun yükler altında nasıl davrandığını belirlemek |
Yükleme Limiti | İkisini de kapsar | Kopma noktasına kadar | Kopma noktasının üstünde |
İncelenen Özellikler | Kaynak kullanımı, güvenilirlik, ölçeklenebilirlik, yanıt süresi vb. | En yüksek performans, sunucu verimi, çeşitli yük seviyeleri altında sistem tepkisi | Kopma noktası eşiğinin üstünde sağlanan istikrar ve yanıt süresi |
Performans Testi Araçları
Bir BT ekibi, ihtiyaçlarına ve tercihlerine bağlı olarak çeşitli performans testi araçları kullanabilir. Performans testi araçları örnekleri şunları içerir:
Jmeter: Web ve uygulama hizmetlerinde yük testleri oluşturabilir. JMeter eklentileri, yük testinde esneklik sağlar. JMeter, tarayıcılar veya web uygulamaları, test kaydı için entegre bir geliştirme ortamını (IDE) ve Java tabanlı işletim sistemlerinin yük testi için bir komut satırı modunu destekler.
Load Runner: Micro Focus tarafından geliştirilen yük altındaki uygulamaların performansını test eder ve ölçer. Simülasyonun bir parçası olarak, yazılım, uygulama bileşenleri ve son kullanıcı eylemleri arasında tuş tıklamaları veya fare hareketlerine benzer şekilde mesajlar üretir. LoadRunner ayrıca bulut kullanımına yönelik sürümler de içerir.
NeoLoad: Neotys tarafından geliştirilen web ve mobil uygulamalar için yük ve stres testleri sağlar. Özellikle DevOps ve sürekli teslimat (continuous delivery) için yayınlanmadan önce uygulamaları test etmek üzere tasarlanmıştır. Bir BT ekibi programı; web, veri tabanı ve uygulama sunucularını izlemek için kullanabilir. NeoLoad milyonlarca kullanıcıyı simüle edebilir ve şirket içinde veya bulut aracılığıyla testler gerçekleştirebilir.
Kaynakça: