8 Mart 2020

Yazılım Performans Testi Çeşitleri - Types of Performance Testing for Software

Yazılım Performans Testi Çeşitleri - Types of Performance Testing for Software

Yazılım Performans Testi; Bir yazılım ürünün yazılım kalite güvencesi kapsamında yapılan, belirli bir iş yükü altında performansını ölçmeye yönelik; yanıt verme, dayanıklılık, gözlemleme gibi çalışmalar yapılarak yazılımın daha stabil çalışması açısından gerçekleştirilen bir test çeşididir.

Pefromans testi çeşitlerinden örnek verecek olursak: Load, Stress ve Endurance testlerini örnek olarak sıralayabiliriz. Bu test çeşitlerini aşağıda sizler için detaylı inceledim. Ayrıca örnekleme kullanırken 1000 adet kullanıcıya 1K kısaltması yaptım. Her binerli kullanıcılar için makalemde bu kısıtlamayı kullanacağım.

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.

Yazılım Performans Testi Çeşitleri - Types of Performance Testing for Software

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

Performans Testi Araçları;

* Apache JMeter: Popüler ve ücretsiz olan Open Source bir araçtır. The Apache Software Foundation tarafından geliştirilmiştir. Load Testing kategorisinde en çok tercih edilen uygulamalardan biridir. JAVA ile yazılmıştır.

* 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: 10.11.2020

Hiç yorum yok:

Yorum Gönder

Makaleye Yorum ve Sorularınızı Bırakabilirsiniz.