Performans Testi Eğitimi

⚡ Akıllı Özet

Performans testi, belirli iş yükleri altında uygulama hızını, yanıt süresini, kararlılığını, ölçeklenebilirliğini ve kaynak kullanımını değerlendiren bir yazılım test sürecidir. Dağıtımdan önce darboğazları belirler ve ortadan kaldırarak gerçek dünya koşullarında güvenilirliği sağlar.

  • Kapsamı erkenden belirleyin: Performans testlerini tasarlamadan önce test ortamınızı, kabul kriterlerinizi ve temel senaryolarınızı belirleyin.
  • 🔄 Tüm test türlerini kapsayın: Farklı arıza biçimlerini değerlendirmek için yük, gerilim, dayanıklılık, ani yük artışı, hacim ve ölçeklenebilirlik testleri uygulayın.
  • 📊 Kritik ölçütleri izleyin: TracHer test yürütmesi sırasında k işlemci kullanımı, bellek tüketimi, yanıt süresi, verimlilik ve hata oranları.
  • ⚠️ Engelleri sistematik olarak teşhis edin: Performans düşüşünün temel nedenini belirlemek için işlemci, bellek, ağ ve disk kullanımını inceleyin.
  • 🔁 Tekrarlayın ve yeniden test edin: Sonuçları analiz edin, yapılandırmaları ayarlayın ve performans önceden tanımlanmış kabul kriterlerini karşılayana kadar yeniden test edin.
  • 🤖 Yapay zekâ destekli analizden yararlanın: Test süreçlerinde öngörücü anormallik tespiti, otomatik kök neden analizi ve akıllı kaynak tahsisi için yapay zekayı kullanın.

Performans Testi Eğitimi

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 aşağıdaki özelliklerini kontrol etmektir:

  • 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
En İyi Seçim
PFLB

PFLB, öngörülemeyen iş yükleri altında sistemlerin istikrarlı kalmasına yardımcı olan, hassasiyet odaklı performans testlerine odaklanmaktadır. Hizmetleri arasında yük testi, ani artış testi ve gecikme ölçümü yer almakta olup, performans düşüşünün son kullanıcıları etkilemeden önce tespit edilmesine büyük önem vermektedir.

PFLB'yi ziyaret edin

Performans Testi Neden Önemlidir?

Bir yazılım sisteminin desteklediği özellikler ve işlevsellik tek endişe kaynağı değildir. Bir yazılım uygulamasının performansı, örneğin yanıt süresi, güvenilirliği, kaynak kullanımı ve ölçeklenebilirliği de önemlidir. Performans Testinin amacı hataları bulmak değil, performans darboğazlarını ortadan kaldırmaktır.

Performans testleri, paydaşlara uygulamalarının hızı, kararlılığı ve ölçeklenebilirliği hakkında bilgi sağlamak amacıyla yapılır. Daha da önemlisi, performans testleri ürün piyasaya sürülmeden önce nelerin iyileştirilmesi gerektiğini ortaya çıkarır. Performans testi yapılmadan, yazılımın aynı anda birden fazla kullanıcı tarafından kullanıldığında yavaş çalışması, farklı işletim sistemlerinde tutarsızlıklar ve düşük kullanılabilirlik gibi sorunlar yaşaması muhtemeldir.

Performans Testinin Önemi

Performans testleri, yazılımın beklenen iş yükleri altında hız, ölçeklenebilirlik ve kararlılık gereksinimlerini karşılayıp karşılamadığını belirler. Performans testlerinin yapılmaması veya yetersiz yapılması nedeniyle düşük performans ölçütleriyle piyasaya sürülen uygulamaların kötü bir üne sahip olması ve beklenen satış hedeflerine ulaşamaması 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 of Google.com'un (19-Ağustos-13) arama devine yaklaşık olarak şu kadar maliyete mal olacağı tahmin ediliyor: $ 545,000.

Şirketlerin satışlarda kayıp yaşadığı 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 – Bu işlem, yazılımın uzun süre boyunca beklenen yükü kaldırabileceğinden emin olmak için yapılır. Sürekli çalışma sırasında ortaya çıkan bellek sızıntıları ve kaynak tükenmesi gibi sorunları tespit etmeye yardımcı olur.
  • Spike testi – Yazılımın kullanıcılar tarafından oluşturulan ani ve büyük yük artışlarına verdiği tepkiyi test eder. Stres testinden farklı olarak, ani yük artışı testi özellikle sistemin keskin, kısa süreli trafik artışlarıyla nasıl başa çıktığına ve bunlardan nasıl kurtulduğuna odaklanır.
  • Hacim testi – Bu yöntem, bir veritabanını büyük miktarda veriyle doldurmayı ve genel yazılım sisteminin davranışını izlemeyi içerir. Amaç, yazılım uygulamasının performansını değişen veritabanı hacimleri altında kontrol etmektir.
  • Ölçeklenebilirlik testi – Yazılım uygulamasının, kullanıcı yükündeki artışı desteklemek için "ölçeklendirme" yeteneğini belirler. Yazılım sisteminize kapasite eklemeyi planlamanıza yardımcı olur.

Yaygın Performans Sorunları

Performans sorunlarının çoğu hız, yanıt süresi, yükleme süresi ve düşük ölçeklenebilirlik etrafında döner. Hız, genellikle bir uygulamanın en önemli özelliklerinden biridir. Yavaş çalışan bir uygulama potansiyel kullanıcılarını kaybedecektir. Performans testi, bir uygulamanın kullanıcının dikkatini ve ilgisini koruyacak kadar hızlı çalıştığından emin olmayı sağlar. Hızın tekrar eden bir faktör olduğu yaygın performans sorunları şunlardır:

  • Uzun yükleme süresi – Yükleme süresi, bir uygulamanın başlatılması için geçen ilk süredir. Bu süre genellikle minimumda tutulmalıdır. Bazı uygulamaların bir dakikadan kısa sürede yüklenmesi imkansız olsa da, yükleme süresi mümkünse birkaç saniyenin altında tutulmalıdır.
  • Zayıf yanıt süresi – Yanıt süresi, kullanıcının uygulamaya veri girmesinden uygulamanın bu girdiye yanıt vermesine kadar geçen süredir. Genellikle bu süre çok kısa olmalıdır. 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, genel sistem performansını düşüren sistemdeki engellerdir. Darboğaz, kodlama hataları veya donanım sorunları nedeniyle belirli yükler altında verimliliğin azalması durumudur. Darboğaz genellikle hatalı bir kod bölümünden kaynaklanır. Darboğaz sorununu çözmenin anahtarı, yavaşlamaya neden olan kod bölümünü bulmak ve orada düzeltmeye çalışmaktır. Darboğaz genellikle ya kötü çalışan süreçleri düzelterek ya da ek donanım ekleyerek giderilir. ortak performans darboğazları şunlardı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 yapılacağına dair genel bir süreç yer almaktadır.

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 mevcut test araçlarını tanıyın. 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şabileceği olası zorlukları belirlemeye de yardımcı olacaktır.

Adım 2) Performans Kabul Kriterlerini Belirleyin

Bu, verimlilik, yanıt süreleri ve kaynak tahsisi için hedefleri ve kısıtlamaları içerir. Ayrıca, bu hedeflerin ve kısıtlamaların dışında proje başarı kriterlerinin belirlenmesi de gereklidir. Test uzmanları, performans kriterlerini ve hedeflerini belirleme yetkisine sahip olmalıdır, çünkü proje özelliklerinde genellikle yeterince çeşitli performans ölçütleri yer almaz. Bazen hiç ölçüt olmayabilir. Mümkün olduğunda, karşılaştırma yapmak için benzer bir uygulama bulmak, performans hedeflerini belirlemenin iyi bir yoludur.

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

Son kullanıcılar arasında kullanımın nasıl değişebileceğini belirleyin ve tüm olası kullanım durumları için test edilecek temel senaryoları tanımlayın. Çeşitli son kullanıcıları simüle etmek, performans test verilerini planlamak ve hangi ölçütlerin toplanacağını ana hatlarıyla belirtmek gereklidir.

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

Test ortamını çalıştırmadan önce hazırlayın. Ayrıca, araçları ve diğer kaynakları düzenleyin. Test sonuçlarının gerçekçi ve uygulanabilir olmasını sağlamak için üretim ortamını mümkün olduğunca yakından yansıtın.

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. Ardından ince ayar yapın ve performansta bir iyileşme veya düşüş olup olmadığını görmek için tekrar test edin. İyileştirmeler genellikle her tekrar testte küçüldüğü için, darboğazın CPU'dan kaynaklandığı noktada durun. O zaman CPU gücünü artırma seçeneğini değerlendirmeniz gerekebilir.

Performans Testi Metrikleri: İzlenen Parametreler

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

Performans Testi Ölçütleri ve Parametreleri

  • İşlemci Kullanımı – İşlemcinin boşta olmayan iş parçacıklarını çalıştırmak için harcadığı süre.
  • Bellek kullanımı – Bilgisayardaki işlemlerin kullanımına sunulan fiziksel bellek miktarı.
  • Disk zamanı – Diskin okuma veya yazma isteğini yerine getirmekle 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 diğer işlemlerle paylaşılamayan, kendisine tahsis ettiği bayt sayısıdır. Bu değerler 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 – Disk üzerinde oluşan sayfa hatalarını gidermek için diske yazılan veya diskten okunan sayfa sayısı. Sayfa hataları, geçerli çalışma kümesinden olmayan kodun başka bir yerden çağrılıp diskten alınması durumunda meydana gelir.
  • Sayfa hataları/saniye – İşlemcinin hata sayfalarını işleme hızının genel oranı. Bu, bir işlemin çalışma kümesinin dışından kod gerektirmesi durumunda ortaya çıkar.
  • Saniye başına CPU kesintisi – Bir işlemcinin her saniyede aldığı ve işlediği ortalama donanım kesintisi sayısı.
  • Disk kuyruğu uzunluğu – Seçilen disk için örnekleme aralığı boyunca kuyruğa alınmış ortalama okuma ve yazma isteği sayısı.
  • Ağ çıkış kuyruğu uzunluğu – Çıkış paketi kuyruğunun paket sayısı cinsinden uzunluğu. İkiden fazla paket olması gecikmeye yol açar ve darboğazın önlenmesi gerekir.
  • Saniye başına toplam ağ bayt sayısı – Arayüz üzerinden gönderilen ve alınan baytların hızı, çerçeveleme karakterleri de dahil olmak üzere.
  • Tepki Süresi - Kullanıcının bir istekte bulunmasından, yanıtın ilk karakterinin alınmasına kadar geçen süre.
  • Verim – Bir bilgisayarın veya ağın saniyede aldığı istek sayısı.
  • 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ı – Bu, sayıyla ilgilidir. 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 – Yük testi sırasında her saniyede bir web sunucusuna yapılan istek 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 – Bellekten veri alma hızıyla ilgili olarak bekleme sürelerinin ne kadar kısaltılabileceğini belirlemek için izleme yapılır.
  • Konu sayıları – Bir uygulamanın sağlığı, çalışan ve aktif olan iş parçacığı sayısı ile ölçülebilir.
  • Çöp toplama - Kullanılmayan belleğin sisteme geri döndürülmesini içerir. Çöp toplama işleminin verimliliği izlenmelidir.

Performans Testi Test Senaryoları Örneği

Aşağıda örnek performans test senaryoları yer almaktadır:

  • Test Senaryosu 01: 1000 kullanıcının aynı anda web sitesine erişmesi durumunda yanıt süresinin 4 saniyeyi geçmediğini doğrulayın.
  • Test Senaryosu 02: Ağ bağlantısı yavaş olduğunda, yük altında çalışan uygulamanın yanıt süresinin kabul edilebilir 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: En yüksek 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 Testi En İyi Uygulamaları

Yerleşik en iyi uygulamaları takip etmek, performans testlerinin güvenilir sonuçlar vermesini sağlar. Bu yönergeler, ekiplerin yaygın hatalardan kaçınmasına yardımcı olur.

  • Üretim ortamını yansıtın – Test kurulumunuzu üretim ortamını olabildiğince yansıtacak şekilde yapılandırın. Donanım veya yazılım sürümlerindeki farklılıklar yanıltıcı sonuçlar doğurabilir.
  • Gerçekçi test senaryoları tasarlayın – Düşünme süreleri ve eş zamanlı işlem karışımları da dahil olmak üzere, gerçek kullanıcı davranışını simüle eden test senaryoları oluşturun.
  • Yüzdelik dilime dayalı ölçütler kullanın – Yalnızca ortalamalara değil, 90. ve 95. yüzdelik dilimlerdeki yanıt sürelerine güvenin. Yüzdelik dilimler, ortalamaların gizleyebileceği uç gecikmeleri ortaya çıkarır.
  • Erken ve sürekli test yapın – Performans testini son aşama bir faaliyet olarak ele almak yerine, CI/CD işlem hattına entegre edin.
  • Belgeleme ve başlangıç ​​sonuçları – Her test çalışmasının sonuçlarını kaydedin. Yeni sonuçları temel değerlerle karşılaştırmak, sürümler arası gerilemeleri tespit etmeyi kolaylaştırır.

Yapay Zeka Performans Testini Nasıl Dönüştürüyor?

Yapay zeka yeniden şekilleniyor.ping Karmaşık analiz görevlerini otomatikleştirerek ve tahmin yeteneklerini etkinleştirerek performans testleri gerçekleştiriyoruz. Yapay zeka destekli araçlar, geçmiş verileri analiz eder, kalıpları tespit eder ve her adımda insan müdahalesine gerek kalmadan uygulanabilir öneriler sunar.

  • Tahmine dayalı anormallik tespiti – Yapay zekâ algoritmaları, yük testleri sırasında performans ölçütlerini gerçek zamanlı olarak analiz eder ve kritik arızalara dönüşmeden önce sapmaları tespit eder.
  • Otomatik kök neden analizi – Yapay zekâ destekli araçlar, dağıtılmış sistemlerdeki verileri ilişkilendirerek performans düşüşüne neden olan bileşenleri tam olarak belirler.
  • Akıllı test optimizasyonu – Makine öğrenimi modelleri gereksiz test senaryolarını belirler ve en uygun yapılandırmaları önererek, kapsamı korurken yürütme süresini azaltır.
  • Kendi kendini onaran test komut dosyaları – Yapay zeka, uygulama arayüzleri değiştiğinde test senaryolarını uyarlayarak performans test paketlerinin bakım yükünü azaltır.

Performans Test Araçları

Piyasada çok çeşitli performans test araçları mevcuttur. Test için seçeceğiniz araç, desteklenen protokol türleri, lisans maliyeti, donanım gereksinimleri ve platform desteği 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 - Piyasada en popüler performans test araçlarından biridir. Bu araç, yüz binlerce kullanıcıyı simüle edebilmekte ve uygulamaları gerçek hayattaki yükler altında test ederek beklenen yükler altındaki davranışlarını belirleyebilmektedir. LoadRunner 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 testinde kullanılan önde gelen açık kaynaklı araçlardan biridir. Birden fazla protokolü destekler ve kapsamlı raporlama yetenekleri sunar.

SSS

Performans testleri yalnızca istemci-sunucu tabanlı sistemler için yapılır. Bağımsız masaüstü hesap makineleri gibi istemci-sunucu mimarisine uymayan uygulamaların performans testine ihtiyacı yoktur.

Performans testi, mevcut uygulama performansını test etmeye ve raporlamaya odaklanır. Performans mühendisliği ise, genel kullanıcı deneyimini ve sistem verimliliğini optimize etmek için test etme ve ayarlamayı birleştirerek daha da ileri gider.

Yük testi, darboğazları bulmak için beklenen kullanıcı yükleri altında sistem davranışını değerlendirir. Stres testi ise uygulamanın normal kapasitesinin ötesine geçerek kırılma noktasını belirler ve toparlanma davranışını gözlemler.

En kritik ölçütler yanıt süresi, verimlilik, hata oranı, CPU kullanımı ve bellek kullanımıdır. Tracking Bu göstergeler, darboğazları belirlemeye ve uygulamanın performans kriterlerini karşılayıp karşılamadığını doğrulamaya yardımcı olur.

Performans testleri erken başlamalı ve sürekli olarak devam etmelidir. Bunu CI/CD işlem hattına entegre etmek, ekiplerin sorunları yalnızca sürümden önce keşfetmek yerine, her derlemede gerilemeleri tespit etmelerini sağlar.

Yapay zeka, anormallik tespiti, temel neden analizi ve test optimizasyonunu otomatikleştirir. Darboğazları tahmin etmek için geçmiş verileri analiz eder ve uygulama arayüzleri değiştiğinde test senaryolarını otomatik olarak uyarlar.

Hayır. Yapay zeka, tekrarlayan analiz ve tespit görevlerini otomatikleştirerek verimliliği artırır, ancak gerçekçi test senaryoları tasarlamak, iş bağlamını yorumlamak ve stratejik optimizasyon kararları almak için insan uzmanlığı hala çok önemlidir.

Bulut tabanlı test, isteğe bağlı ölçeklenebilirlik, birden fazla bölgeden dağıtılmış yük oluşturma ve daha düşük altyapı maliyetleri sunar. Yerinde test ise test ortamı üzerinde daha fazla kontrol sağlar ancak özel donanım yatırımı gerektirir.

Bu yazıyı şu şekilde özetleyin: