Yazılım Performans Testi, bir yazılım ürününün kalite güvencesi (QA) kapsamında, belirli bir iş yükü altında sistemin tepki süresi, dayanıklılığı ve kaynak kullanımı gibi performans ölçütlerini analiz etmeye yönelik yapılan test çalışmalarını kapsar. Bu testlerin temel amacı, yazılımın yüksek kullanıcı trafiği veya uzun süreli kullanım koşullarında kararlı, hızlı ve verimli çalıştığından emin olmaktır. Performans testleri genel olarak üç ana kategoriye ayrılır: Load Test (Yük Testi), sistemin belirli bir kullanıcı yükü altında tepkisini ölçmeyi; Stress Test (Stres Testi), sistemin kapasite sınırlarını zorlayarak çökme noktalarını belirlemeyi; Endurance Test (Dayanıklılık Testi) ise uzun süreli yük altında kararlılığı ve olası kaynak sızıntılarını gözlemlemeyi amaçlar. Testler sonucunda elde edilen metrikler —örneğin ortalama yanıt süresi, CPU ve bellek kullanımı, hata oranları— sistemin performans sınırlarını ve darboğazlarını ortaya çıkarır. Bu analizler, yazılımın canlı ortama geçmeden önce optimizasyon yapılmasını ve performans iyileştirmelerini mümkün kılar. Makale boyunca kullanıcı yükünü ifade ederken 1K = 1000 kullanıcı kısaltması kullanılmıştır. Performans testleri, bir yazılımın sadece doğru çalıştığını değil, aynı zamanda yük altında da istikrarlı, hızlı ve sürdürülebilir performans sergilediğini kanıtlamak açısından kritik öneme sahiptir; bu nedenle Apache JMeter gibi araçlarla düzenli olarak uygulanması yazılım kalitesini doğrudan artırır.
* Load Testing: Yük Testi olarak bilinen bu test çeşidi, performans testinin en basit şeklidir. Yük testi genelde sistemin belirli bir yük(kullanıcı) altında test edilip nereye kadar dayanabileceğini ölçümlemek için kullanılır. Örnekle siz bir servisi 1K ile test ediyorsunuz ve timeout almıyorsunuz. Daha sonra bunu 2K, 3K, 4K, 5K gibi seviyelerde de test ediyorsunuz ve en fazla kaç kullanıcıdan sonra servis cevap vermemeye başlıyorsa o kadar kullanıcıyı limit olarak belirleyip yük testini tamamlamış oluyorsunuz.
* Stress Testing: Stres testinin amacı sistemi Down etmeye yönelik bir çalışmadır. Beklenen kullanıcı sayısı üzerinde Overload bir kullanıcı ile yüklenme veya sunucunun kullandığı Node'ların birini kapatarak cevap verip veremediğini gözlemleme gibi işlemlerden oluşur. Temel amaç; yazılım ürününü veya sistemin maksimum dayanabildiği noktayı test etmektir.
* Endurance & Soak Testing: Dayanıklılık testinin amacı ise belirli bir yük ile sistemin ne kadar süre veya nasıl cevap verebileceğini test etmektedir. Bu testi yaparken kullanıcı sayısı artırılmaz, beklenen süre zarfında oluşan performans verileri test edilir. Örneğin canlıda olan bir servisinize gün içinde ortalama 1K kullanıcı geliyor ve hep de ortalaması böyle. Siz o servisde bir geliştirme yaptığınız ve Endurance testi yapmak istiyorsunuz. 1 gün boyunca (24 Saat JMeter açık kalacak) 1K kullanıcı ile üçer saniye arayla hep servise Request göndererek bu testi gerçekleştirebilirsiniz. Buradaki 1K sabit kalacaktır ve 24 saat sonraki verilere (Throughput, Response Time gibi) bakılarak sistemin dayanıklılığı test edilmiş olur.
Endurance dayanıklılık testi için bir başka örnek verecek olursak; 12 saat boyunca 5 kullanıcı ile sabit performans testi yaparak 12 saat süre zarfında sunucudaki CPU ve RAM tüketim değerleri kontrol edilerek sistemin stabil olarak çalıştığını ve Overlord bir durum olmadığı da gözlemlenebilir.
* Spike Testing: Yük testi yaparken kullanıcı sayısını aniden artırma veya azaltma işlemi yaparak yaptığınız bir test türüdür. Örnekle 1K kullanıcı ile 2 saat boyunca bir servisi test ederken birden kullanıcı sayısını 500'e düşürüp sonra 5K seviyesine çıkarmak gibi bir işlemdir. Bu ani kullanıcı değişimlerinde performans verisi ölçülür.
* Volume & Breakpoint Testing: Sistem üzerinde değişen bir durum olduğunda yapılan bir test çeşididir. Örnekle uygulama veya veri tabanınında bir durum, veri yükleme veya arıza yaşandığında sisteme verilen ani yük ile yapılan bir test çeşididir. Stres testine benzer bir uygulama diyebiliriz. Genelde Kapasite veya Hacim testi olarak da bilinmektedir.
Bunlar dışında da diğer performans test çeşitleri yukarıdakiler ile benzerlik gösterebilir. Örnek verecek olursak;
* Scalability Testing (Ölçeklenebilirlik Testi)
* Configuration Testing
* Isolation Testing (İzolasyon Testi)
* Internet Testing
* Spike Testing: Yük testi yaparken kullanıcı sayısını aniden artırma veya azaltma işlemi yaparak yaptığınız bir test türüdür. Örnekle 1K kullanıcı ile 2 saat boyunca bir servisi test ederken birden kullanıcı sayısını 500'e düşürüp sonra 5K seviyesine çıkarmak gibi bir işlemdir. Bu ani kullanıcı değişimlerinde performans verisi ölçülür.
* Volume & Breakpoint Testing: Sistem üzerinde değişen bir durum olduğunda yapılan bir test çeşididir. Örnekle uygulama veya veri tabanınında bir durum, veri yükleme veya arıza yaşandığında sisteme verilen ani yük ile yapılan bir test çeşididir. Stres testine benzer bir uygulama diyebiliriz. Genelde Kapasite veya Hacim testi olarak da bilinmektedir.
Bunlar dışında da diğer performans test çeşitleri yukarıdakiler ile benzerlik gösterebilir. Örnek verecek olursak;
* Scalability Testing (Ölçeklenebilirlik Testi)
* Configuration Testing
* Isolation Testing (İzolasyon Testi)
* Internet Testing
Performans Testi Araçları;
* Apache JMeter: popüler ve tamamen ücretsiz (open source) bir performans test aracıdır. The Apache Software Foundation tarafından geliştirilmiş olup, Load Testing (Yük Testi) kategorisinde dünya genelinde en çok tercih edilen araçlardan biridir. Java diliyle geliştirilmiş olan JMeter, web uygulamaları, API servisleri (SOAP/REST), veritabanları ve diğer birçok sistem bileşeninin performansını test etmek için kullanılabilir. Geniş eklenti desteği, kullanıcı dostu arayüzü ve güçlü raporlama özellikleri sayesinde hem bireysel kullanıcılar hem de kurumsal ekipler tarafından yaygın şekilde tercih edilmektedir.
* HP LoadRunner (Kurumsal Hayatta Popüler ve Lisanslı Üründür)
* Micro Focus Silk Performer (Kurumsal Hayatta Popüler ve Lisanslı Üründür)
* LoadNinja (SmartBear)
* LoadUI Pro (SmartBear)
* LoadComplete (SmartBear)
* LoadView
* WebLOAD
* AppLoader
* NeoLoad
* IBM Rational Performance Tester
* WAPT
* BlazeMeter Tool
Burak AVCI - Update: 07.10.2025
Hiç yorum yok:
Yorum Gönder
Makaleye Yorum ve Sorularınızı Bırakabilirsiniz.