Performans Testi Eğitimi

Yük Testi

Performans Testi nedir?

Performans testi belirli bir iş yükü altında bir yazılım uygulamasının hızını, yanıt süresini, kararlılığını, güvenilirliğini, ölçeklenebilirliğini ve kaynak kullanımını test etmek için kullanılan bir yazılım test sürecidir. Performans testinin temel amacı, yazılım uygulamasındaki performans darboğazlarını belirlemek ve ortadan kaldırmaktır. Performans mühendisliğinin bir alt kümesidir ve aynı zamanda “Mükemmellik Testi”.

Performans Testinin odak noktası bir yazılım programının kontrol edilmesidir.

  • hız – Uygulamanın hızlı yanıt verip vermeyeceğini belirler
  • ölçeklenebilirlik – Yazılım uygulamasının kaldırabileceği maksimum kullanıcı yükünü belirler.
  • istikrar – Uygulamanın değişen yükler altında stabil olup olmadığını belirler

Performans Testi neden yapılır?

Bir yazılım sistemi tarafından desteklenen özellikler ve işlevsellik tek sorun değildir. Bir yazılım uygulamasının tepki süresi, güvenilirliği, kaynak kullanımı ve ölçeklenebilirliği gibi performansı önemlidir. Performans Testinin amacı hataları bulmak değil, performans darboğazlarını ortadan kaldırmaktır.

Performans Testi, paydaşlara hız, kararlılık ve ölçeklenebilirlik konusunda uygulamaları hakkında bilgi sağlamak için yapılır. Daha da önemlisi, Performans Testi, ürün piyasaya sürülmeden önce neyin iyileştirilmesi gerektiğini ortaya çıkarır. Performans Testi olmadan, yazılımın şu gibi sorunlarla karşılaşması muhtemeldir: birkaç kullanıcı aynı anda kullanırken yavaş çalışması, farklı işletim sistemleri arasında tutarsızlıklar ve zayıf kullanılabilirlik.

Performans testi

Performans testleri, yazılımlarının beklenen iş yükleri altında hız, ölçeklenebilirlik ve kararlılık gereksinimlerini karşılayıp karşılamadığını belirleyecektir. Varolmayan veya zayıf performans testleri nedeniyle zayıf performans ölçümleriyle pazara gönderilen uygulamaların kötü bir itibar kazanması ve beklenen satış hedeflerini karşılayamaması muhtemeldir.

Ayrıca, kritik görev uygulamaları Uzaya fırlatma programları veya hayat kurtaran tıbbi ekipmanlar gibi cihazların, uzun süre boyunca sapma olmadan çalıştıklarından emin olmak için performans testlerine tabi tutulması gerekir.

Dunn & Bradstreet'e göre Fortune 59 şirketlerinin %500'u her hafta tahmini 1.6 saat kesinti yaşıyor. En az 500 çalışanı olan ortalama Fortune 10,000 şirketinin saat başına 56 dolar ödediği göz önüne alındığında, böyle bir kuruluş için kesinti maliyetlerinin işçilik kısmı haftalık 896,000 dolardır, bu da yılda 46 milyon dolardan fazla bir rakama karşılık gelir.

Sadece 5 dakikalık kesinti Google.com'un (19-Ağu-13) arama devine maliyetinin şu kadar olduğu tahmin ediliyor: $ 545,000.

Şirketlerin satış değerini kaybettiği tahmin ediliyor 1100 dolar/saniye yakın zamanda yaşananlardan dolayı Amazon Web Hizmeti Kesintisi.

Bu nedenle performans testleri önemlidir. Bu süreçte size yardımcı olması için şu listeye göz atın: performans test araçları.

Performans Testi Türleri

Yazılım testinde temel olarak altı tür performans testi vardır, bunlar aşağıda açıklanmıştır.

  • Yük testi – uygulamanın beklenen kullanıcı yükleri altında performans gösterme yeteneğini kontrol eder. Amaç, yazılım uygulaması yayına girmeden önce performans darboğazlarını belirlemektir.
  • Stres testi - Bir uygulamanın yüksek trafiği veya veri işlemeyi nasıl yönettiğini görmek için aşırı iş yükleri altında test edilmesini içerir. Amaç, bir uygulamanın kırılma noktasını belirlemektir.
  • Dayanıklılık testi – Yazılımın uzun bir süre boyunca beklenen yükü kaldırabileceğinden emin olmak için yapılır.
  • Spike testi – Yazılımın, kullanıcılar tarafından oluşturulan yükteki ani büyük artışlara karşı tepkisini test eder.
  • Hacim testi – Hacim Testi Altında büyük sayı. ile ilgili. Veriler bir veritabanına doldurulur ve genel yazılım sisteminin davranışı izlenir. Amaç, yazılım uygulamasının performansını değişen veritabanı hacimleri altında kontrol etmektir.
  • Ölçeklenebilirlik testi – Ölçeklenebilirlik testinin amacı, yazılım uygulamasının kullanıcı yükündeki artışı desteklemek için “ölçek büyütme” konusundaki etkinliğini belirlemektir. Yazılım sisteminize kapasite ilavesini planlamanıza yardımcı olur.

Yaygın Performans Sorunları

Çoğu performans sorunu hız, yanıt süresi, yükleme süresi ve zayıf ölçeklenebilirlik etrafında döner. Hız genellikle bir uygulamanın en önemli niteliklerinden biridir. Yavaş çalışan bir uygulama potansiyel kullanıcıları kaybeder. Performans testi, bir uygulamanın kullanıcının dikkatini ve ilgisini çekecek kadar hızlı çalışmasını sağlar. Aşağıdaki yaygın performans sorunları listesine bir göz atın ve hızın birçoğunda nasıl yaygın bir faktör olduğunu fark edin:

  • Uzun Yükleme süresi – Yükleme süresi normalde bir uygulamanın başlatılması için gereken ilk süredir. Bu genellikle minimumda tutulmalıdır. Bazı uygulamaların bir dakikanın altında yükleme yapması mümkün olmasa da, yükleme süresinin mümkünse birkaç saniyenin altında tutulması gerekmektedir.
  • Zayıf yanıt süresi – Yanıt süresi, bir kullanıcının uygulamaya veri girişi yaptığı andan uygulamanın bu girişe yanıt vermesine kadar geçen süredir. Genellikle bu çok hızlı olmalıdır. Yine, eğer bir kullanıcı çok uzun süre beklemek zorunda kalırsa ilgisini kaybeder.
  • Zayıf ölçeklenebilirlik – Bir yazılım ürünü, beklenen sayıda kullanıcıyı idare edemediğinde veya yeterince geniş bir kullanıcı yelpazesini barındıramadığında zayıf ölçeklenebilirlikten muzdariptir. Yük Testi uygulamanın beklenen sayıda kullanıcıyı idare edebileceğinden emin olmak için yapılmalıdır.
  • Darboğaz – Darboğazlar, bir sistemdeki genel sistem performansını düşüren engellerdir. Darboğaz, kodlama hatalarının veya donanım sorunlarının belirli yükler altında üretimde azalmaya neden olmasıdır. Darboğaz genellikle kodun hatalı bir bölümünden kaynaklanır. Bir darboğaz sorununu düzeltmenin anahtarı, yavaşlamaya neden olan kod bölümünü bulmak ve onu orada düzeltmeye çalışmaktır. Darboğaz genellikle zayıf çalışan süreçlerin onarılmasıyla veya ek Donanım eklenmesiyle giderilir. Bazı ortak performans darboğazları vardır
    • CPU kullanımı
    • Bellek kullanımı
    • Ağ kullanımı
    • OperaSistem sınırlamaları
    • Disk kullanımı

Performans Testi Nasıl Yapılır?

Performans testi için benimsenen metodoloji büyük ölçüde değişebilir ancak performans testlerinin amacı aynı kalır. Yazılım sisteminizin önceden tanımlanmış belirli performans kriterlerini karşıladığını göstermeye yardımcı olabilir. Veya iki yazılım sisteminin performansının karşılaştırılmasına yardımcı olabilir. Ayrıca yazılım sisteminizin performansını düşüren parçalarının belirlenmesine de yardımcı olabilir.

Aşağıda performans testinin nasıl gerçekleştirileceğine ilişkin genel bir süreç verilmiştir.

Performans Test Süreci
Performans Test Süreci

Adım 1) Test Ortamınızı Belirleyin

Fiziksel test ortamınızı, üretim ortamınızı ve hangi test araçlarının mevcut olduğunu bilin. Test sürecine başlamadan önce test sırasında kullanılan donanım, yazılım ve ağ yapılandırmalarının ayrıntılarını anlayın. Bu, test uzmanlarının daha verimli testler oluşturmasına yardımcı olacaktır. Ayrıca, test uzmanlarının performans test prosedürleri sırasında karşılaşabilecekleri olası zorlukları belirlemeye yardımcı olacaktır.

Adım 2) Performans Kabul Kriterlerini Belirleyin

Bu, üretim, yanıt süreleri ve kaynak tahsisine ilişkin hedefleri ve kısıtlamaları içerir. Bu hedeflerin ve kısıtların dışında da proje başarı kriterlerinin belirlenmesi gerekmektedir. Test uzmanları performans kriterlerini ve hedeflerini belirleme yetkisine sahip olmalıdır çünkü çoğu zaman proje spesifikasyonları yeterince geniş çeşitlilikte performans kriterleri içermez. Bazen hiç olmayabilir. Mümkün olduğunda karşılaştırılacak benzer bir uygulama bulmak, performans hedeflerini belirlemenin iyi bir yoludur.

Adım 3) Performans Testlerini Planlayın ve Tasarlayın

Kullanımın son kullanıcılar arasında nasıl değişebileceğini belirleyin ve tüm olası kullanım senaryolarını test etmek için temel senaryoları belirleyin. Çeşitli son kullanıcıları simüle etmek, performans testi verilerini planlamak ve hangi ölçümlerin toplanacağını özetlemek gerekir.

Adım 4) Test Ortamını Yapılandırma

Yürütmeden önce test ortamını hazırlayın. Ayrıca araçları ve diğer kaynakları da düzenleyin.

Adım 5) Test Tasarımını Uygulayın

Performans testlerini test tasarımınıza göre oluşturun.

Adım 6) Testleri Çalıştırın

Testleri yürütün ve izleyin.

Adım 7) Analiz Et, Ayarla ve Yeniden Test Et

Test sonuçlarını birleştirin, analiz edin ve paylaşın. Daha sonra performansta bir iyileşme veya azalma olup olmadığını görmek için ince ayar yapın ve tekrar test edin. İyileştirmeler genellikle her yeniden testte küçüldüğünden, darboğaz CPU'dan kaynaklanıyorsa durun. O zaman CPU gücünü artırma seçeneğini değerlendirebilirsiniz.

Performans Testi Metrikleri: İzlenen Parametreler

Performans testi sırasında izlenen temel parametreler şunları içerir:

performans testi ölçümleri

  • İşlemci Kullanımı – İşlemcinin boşta olmayan iş parçacıklarını yürütmek için harcadığı zaman miktarı.
  • Bellek kullanımı – Bilgisayardaki işlemler için kullanılabilen fiziksel bellek miktarı.
  • Disk zamanı – diskin bir okuma veya yazma isteğini yürütmekle meşgul olduğu süre.
  • Bant genişliği - bir ağ arayüzü tarafından kullanılan saniye başına bit sayısını gösterir.
  • Özel baytlar – Bir işlemin tahsis ettiği ve diğer işlemler arasında paylaşılamayan bayt sayısı. Bunlar bellek sızıntılarını ve kullanımını ölçmek için kullanılır.
  • Taahhüt edilen hafıza – kullanılan sanal bellek miktarı.
  • Bellek sayfaları/saniye – Sabit sayfa hatalarını çözmek için diske yazılan veya diskten okunan sayfa sayısı. Sabit sayfa hataları, geçerli çalışma kümesinden olmayan kodun başka bir yerden çağrılması ve bir diskten alınmasıdır.
  • Sayfa hataları/saniye – Arızalı sayfaların işlemci tarafından işlendiği genel oran. Bu durum, bir işlem kendi çalışma kümesinin dışından kod gerektirdiğinde tekrar ortaya çıkar.
  • Saniye başına CPU kesintisi – Bir işlemcinin her saniye aldığı ve işlediği ortalama donanım kesintisi sayısıdır.
  • Disk kuyruğu uzunluğu – Örnekleme aralığı boyunca seçili disk için sıraya alınan okuma ve yazma isteklerinin ortalama sayısıdır.
  • Ağ çıkış kuyruğu uzunluğu – paketlerdeki çıkış paketi kuyruğunun uzunluğu. İkiden fazla herhangi bir şey gecikme anlamına gelir ve darboğazın durdurulması gerekir.
  • Saniye başına toplam ağ bayt sayısı – Çerçeveleme karakterleri de dahil olmak üzere arayüzde hangi baytların gönderilip alındığı oranı.
  • Tepki Süresi - kullanıcının bir istek girmesinden yanıtın ilk karakterinin alınmasına kadar geçen süre.
  • Verim – Bir bilgisayarın veya ağın saniye başına istek alma oranını belirtir.
  • Bağlantı havuzunun miktarı – havuzlanmış bağlantılar tarafından karşılanan kullanıcı isteklerinin sayısı. Havuzdaki bağlantılar tarafından ne kadar çok istek karşılanırsa performans o kadar iyi olur.
  • Maksimum aktif oturumlar – Aynı anda etkin olabilecek maksimum oturum sayısı.
  • İsabet oranları – Bunun sayıyla alakası var SQL Pahalı G/Ç işlemleri yerine önbelleğe alınmış veriler tarafından işlenen ifadeler. Bu, darboğaz sorunlarını çözmeye başlamak için iyi bir yerdir.
  • Saniye başına isabet – hayır. Bir yük testinin her saniyesinde bir web sunucusundaki isabet sayısı.
  • Geri alma segmenti – herhangi bir zamanda geri alınabilecek veri miktarı.
  • Veritabanı kilitleri – Tabloların ve veritabanlarının kilitlenmesinin izlenmesi ve dikkatle ayarlanması gerekir.
  • En iyi beklemeler – Verilerin bellekten ne kadar hızlı alındığıyla ilgilenirken hangi bekleme sürelerinin kısaltılabileceğini belirlemek için izlenir
  • Konu sayıları – Bir uygulamanın sağlığı hayırla ölçülebilir. Çalışan ve şu anda aktif olan iş parçacıklarının sayısı.
  • Çöp toplama - Kullanılmayan belleğin sisteme geri döndürülmesiyle ilgilidir. Çöp toplamanın verimlilik açısından izlenmesi gerekir.

Performans Testi Test Senaryoları Örneği

  • Test Senaryosu 01: 4 kullanıcının aynı anda web sitesine erişmesi durumunda yanıt süresinin 1000 saniyeden fazla olmamasını sağlayın.
  • Test Senaryosu 02: Ağ bağlantısı yavaş olduğunda Yük Altındaki Uygulamanın yanıt süresinin kabul edilebilir bir aralıkta olduğunu doğrulayın
  • Test Senaryosu 03: Uygulamanın çökmeden önce işleyebileceği maksimum kullanıcı sayısını kontrol edin.
  • Test Senaryosu 04: Aynı anda 500 kayıt okunup yazıldığında veritabanının çalışma süresini kontrol edin.
  • Test Senaryosu 05: Yoğun yük koşullarında uygulamanın ve veritabanı sunucusunun CPU ve bellek kullanımını kontrol edin
  • Test Senaryosu 06: Düşük, normal, orta ve ağır yük koşullarında uygulamanın yanıt süresini doğrulayın.

Gerçek performans testi uygulaması sırasında, kabul edilebilir aralık, ağır yük vb. gibi belirsiz terimlerin yerini somut rakamlar alır. Performans mühendisleri bu sayıları iş gereksinimlerine ve uygulamanın teknik yapısına göre belirler.

Performans Test Araçları

Piyasada çok çeşitli performans test araçları bulunmaktadır. Test için seçeceğiniz araç, desteklenen protokol türleri, lisans maliyeti, donanım gereksinimleri, platform desteği vb. gibi birçok faktöre bağlı olacaktır. Aşağıda, yaygın olarak kullanılan test araçlarının bir listesi bulunmaktadır.

  • HP LoadRunner - bugün piyasadaki en popüler performans test aracıdır. Bu araç, yüz binlerce kullanıcıyı simüle etme, uygulamaları gerçek hayattaki yüklerin altına koyma ve beklenen yükler altındaki davranışlarını belirleme kapasitesine sahiptir. Yük koşucusu Canlı insan kullanıcıların eylemlerini simüle eden sanal bir kullanıcı üreteci içerir.
  • Jmeter – web ve uygulama sunucularının yük testi için kullanılan önde gelen araçlardan biri.

SSS

Performans Testi her zaman yalnızca istemci-sunucu tabanlı sistemler için yapılır. Bu, istemci-sunucu tabanlı bir mimari olmayan herhangi bir uygulamanın Performans Testi gerektirmemesi gerektiği anlamına gelir.

Örneğin, Microsoft Hesap makinesi ne istemci-sunucu tabanlıdır ne de birden fazla kullanıcıyı çalıştırır; dolayısıyla Performans Testine aday değildir.

Performans testi

Performans Testi ile Performans Mühendisliği arasındaki farkı anlamak önemlidir. Aşağıda bir anlayış paylaşılmaktadır:

Performans testi ile ilgili bir disiplindir test etme ve raporlama Bir yazılım uygulamasının çeşitli parametreler altında mevcut performansı.

Performans Mühendisliği yazılımın gerekli performansı gerçekleştirmek amacıyla test edildiği ve ayarlandığı süreçtir. Bu süreç, en önemli uygulama performansı özelliği olan kullanıcı deneyimini optimize etmeyi amaçlamaktadır.

Tarihsel olarak, test etme ve ayarlama belirgin biçimde ayrı ve çoğu zaman birbiriyle rekabet halinde olan alanlar olmuştur. Ancak son birkaç yılda birçok test uzmanı ve geliştirici, ayarlama ekipleri oluşturmak için bağımsız olarak işbirliği yaptı. Bu ekipler önemli bir başarı elde ettiğinden, performans testini performans ayarlamayla birleştirme kavramı benimsendi ve şimdi buna performans mühendisliği diyoruz.

Sonuç

In Yazılım Mühendisliği, Herhangi bir yazılım ürününün pazarlanmasından önce performans testi gereklidir. Müşteri memnuniyetini sağlar ve yatırımcının yatırımını ürün arızasına karşı korur. Performans testinin maliyetleri genellikle artan müşteri memnuniyeti, sadakati ve elde tutma ile fazlasıyla karşılanır.