ana sayfa > Yazılım Test > Performans Test Nedir?

Performans Test Nedir?

1 Performans Testi Nedir?
Çoğu web uygulamasında performans öncelikli bir sorundur. Havale yapmak için oldukca uzun uğraşlar verdiğiniz bir internet bankacılığı sitesi itibar kaybına, müşteri memnuniyetsizliğine ve mali kayıplara neden olabilr. Bu nedenle ürünün lansmanı yapılmadan ,kurulan sistemin maksimum sayıda kulanıcı işlem yaptığında dahi işlemlerin her birinin hedeflenen zaman biriminde, eksiksiz bir şekilde gerçekleştirildiğinin ispatlanması gerekmekdedir. Bu isbatı ancak performans testi sonuçları ile müşterinize garanti edebilirsiniz.
Performans testi yararlarını şu şekilde sıralayabiliriz;
• Sistem gereksinimleri karşılıyormu
• Normal şartlar altında sistem nasıl davranıyor
• Sistem trafiğindeki artışlar işlem süresi,fonksiyonalite ve güvenlikmaçısından nasıl etkiler
• Hangi kullanıcı seviyesinde performans problemleri yaşanır
• Performans seviyelerindeki düşüş sistemin hangi bileşeninden kaynaklanır
2 Performans Testi Çeşitleri
Temel olarak 3 çeit performas testi gerçekleştirilebilir. Bunlar;
Normal Performans Testi: Web uygulamalarının normal şartlar altındaki performans seviyelerini belerlenmesi.

Load Testi: Web uygulamasının giderek artan sayıda(sistem çökene kadar) virtual user la yüklenilerek sistemin sınırlarının ölülmesi.
Stress Testi: Maksimum sayıdaki kullanıcı ile periyodik bir şekilde sisteme yüklenilmesi.
________________________________________
3 Performans Testi Nasıl Yapılır?
3.1 Temel süreç
Performans testi temel süreci aşağıda belirtilmişdir. İlerleyen bölümlerde detaylı olarak incelenecektir.
• Test edilecek sistemin yapısının belirlenmesi
• Normal ve Maksimum yük seviyelerinin belirlenmesi
o
 Senaryoların ve Sanal Kullanıcıların yaratılması
 Kulanılacak toolun seçiminin yapılması
 Testin execute edilmesi
 Test sonuçlarının incelenmes ve yorumlanmasıi

3.1.1 Test edilecek sistemin yapısının belirlenmesi
Test başlamadan önce test yapılacak oratmın ve Production ortamının donanımsal özellikleri belirlenmelidir. Test ortamı production ortamına ne kadar yakınsa(production ortaında lansmana çıkmadan bu testin gerçekleştirilmesi daha doğru sonuçlar verir) değerlendirme aşamasında sonuçlar o kadar doru değerlendirilebilir. Bu örnek olarak şöyle bir cümle kurmanıza yarar ,su özelliklerdeki test ortamında sistem istenen performansı sağlıyorsa su özelliklerdeki production ortamında soruunsuz çalışır. Bir tablo hazırlamakda fayda vardır raporlama içinde işinize yarar. örnk;
Test Ortamı Production Ortamı
Web server Features1 Features1
Features2 Features2
Features3 Features3
Features.. Features..
Features.. Features..
Features.. Features..
Features.. Features..
Features.. Features..
Database server Features1 Features1
Features2 Features2
Features3 Features3
Features.. Features..
Features.. Features..
Features.. Features..
Features.. Features..
Features.. Features..
Network bağlantısı Features1 Features1
Features2 Features2
Features3 Features3
Features.. Features..
Features.. Features..
Features.. Features..
Features.. Features..
Features.. Features..

3.1.2 Normal ve Maksimum yük seviyelerinin belirlenmesi
Bu kısımda açıkcası çok fazla yardımcı olamıyacağım çünki bu konu sizin müşterinizle oturup çıkartmanız gereken bir konu, sitemin ne kadar kullanıcıyı kaldırması gerektiğini müşterinizin belirtmesi gerekli. Söz gelimi müşteri size bu programı kullanıcak 650 kişi var diyebilir. Bunu belirttikden sonra oturup münazara yapmaya başlamanız gerkli. Sistemi 650 kişi kulanıcak olabilr ama aynı anda 650 si birden kulanıcak ve 650 si birden aynı anda işlem yapıcak anlamında değildir bu. Sistemin 650 kişi aynı anda kullanıcakmış gibi test edilmesi(worst case) en doğrusudur ama maliyetlendirme açısından müşteriniz sizinle ters bir şekilde düşüne bilir bu yüzden oturup belirli bir sayıda anlaşmanız gerekli(su kadar kullanıcıyı aynı anda kaldırabilmeli gibi)….

3.1.3 Senaryoların ve Sanal Kullanıcıların yaratılması
Senaryoların ürünün yapısına göre tasarlanması gerekmekdedir. Özellikle anliz aşamasında belirlenen iş prosesleri benim tercihimdir. Duruma göre en sık kullanılan veya en önemli process leri alıp her adımı ayrı bi case olarak parçalamak en uygunu olduğunu düşünüyorum. Örneğin bir net üzerinden satış işlemi gercekleştirilen B2C site için ürün sorgulama, sanal pos üzerindeki işlemler en cok kullanılan ve en önemli bileşenlerdir. Sizde sisteminizde bu gibi bileşenleri çıkarıp case lerinizi bu doğrultuda hazırlamanız gerekmekte. Bunu dışın bazı spesifik case ler hazırlamanız lazım. Bunlar bazı check pointleri sınamamız için gerekli bazı caselerdir . Örneğin request – response time mı değerlendirmek ve band genişliğini sınamak için sadece ana sayfayı yüklediğiniz bir case, database server ı ve web serverla arasındaki bağlantıyı sınamak için sistemde en cok zorlıycak sql casi( web serverın memory sini sınamak için , cpu yu sınamak için , ….etc) gibi proje için önemli olduğunu düşündüğünüz check pointleri case haline getirmeniz gereklidir.
3.1.4 Kulanılacak toolun seçiminin yapılması
Performans testlerinde önemli bir sorundur tool seçimi. Şöyleki değişik ortamlarda değişik toolar kullanmanız gerekicek. .net uygulamar için visual studio team suit in içindeki performans atoolları en uygun çözümdür. Java uygulamaları içinse tonlarca open source tool var ama acıkcası hemen hemen hiçbiri pek kullanışlı değildir. Ben java uygulamalar için OPENSTA adlı bir tool kullanıyorum(bulabildiğimin en iyisi oydu) bunu dışında ibm rational ın içindede bir tool warmış diye duydum ama hiç kullanma fırsatına erişemedim. Bu toollar yazının devamında ayrıntılı olarak işlenecektir.
3.1.5 Testin execute edilmesi
Gerekli senaryoları ve toolu seçtikden sonra execute bu sürecin en kolay bölümlerinden biridir. Belirlediğiniz senaryoları toolunuz da bulunan kayıt bölümünden bir kere yaparak kayıt edebilirsiniz(örnek tool lar açıklanırken bu bölüm detaylı bir şekilde anlatılacaktır). Daha sonra sonuç verilerini alabilmek için test ortamına gerekli collectorları bağlamanız gerekmektedir. Bu işelemide gercekleştirdikten sonra bir case inizi test amaclı bir kere run edin dataları alabildiğinizi gördükden sonra ,belirlediğiniz kullanıcı sayılarını toola girip caselerinizi sadece run tusuna basarak execute edebilirsiniz.
3.1.6 Test sonuçlarının incelenmes ve yorumlanması
Bu konuda hiç bir yerde hiç bir kaynak bulamazsınız , bu test sürecinde ençok zorlanılan yerdir. Çünki hiç kimse size belirlenen durumun yeterli veya yetersiz olduğunu, yetersizse ne kadar performansı arttırmanız gerektiğini söyliyemez, tamamen case spesific bir durumdur. Topladığınız datalar size hangi bileşenlerin zayıf olduğunu göstericekdir, ama sizene kadar arttırmanız veya kabul edilebilir değerdemi olduğunu göstermez. Benim önerim bir analist bir yazılımcı birde sistemci ile sonuclar üzerinde bir değerlendirme yapmanız. Yeni düzenlemeyi gerçekleşdirtikten sonra testi tekrarlıyabilirsiniz istenilen durum elde edilene kadar.

Categories: Yazılım Test Tags: , ,
  1. Perşembe, 29 Mar 2012 zamanında 01:58 | #1

    Çok faydalı bir giriş olmuş. Teşekkürler

  1. şimdilik geri bağlantı yok
*