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.

Performans Testi Türleri (Görsel 1)

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 Akış (Görsel 2)

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ı

ÖzellikPerformans TestiYük TestiStres Testi
AlanYük ve Stres testinin üst kategorisiPerformans testinin alt kategorisiPerformans testinin alt kategorisi
KapsamÇok geniş kapsamlıHacim ve dayanıklılık testini içerirSpike ve Soak testini içerir
Ana HedefUygulamanın Kriter ve Standartlarını belirlemekSistemin üst sınırını belirlemekSistemin yoğun yükler altında nasıl davrandığını belirlemek
Yükleme Limitiİkisini de kapsarKopma noktasına kadarKopma noktasının üstünde
İncelenen ÖzelliklerKaynak 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 tepkisiKopma noktası eşiğinin üstünde sağlanan istikrar ve yanıt süresi
Performans, Yük ve Stres Testi Kıyaslama Tablosu (Tablo 1)

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:

Görüntülenme Sayısı:
99 görüntülenmeler