Performans Testi Eğitimi: Nedir, Türler, Metrikler & Misal

İçindekiler:

Anonim

Performans testi

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 "Mükemmel Test" olarak da bilinir.

Performans Testinin odak noktası, bir yazılım programının

  • Hız - Uygulamanın hızlı yanıt verip vermediğini belirler
  • Ölçeklenebilirlik - Yazılım uygulamasının kaldırabileceği maksimum kullanıcı yükünü belirler.
  • Kararlılık - Uygulamanın değişen yükler altında kararlı olup olmadığını belirler

Bu eğitimde öğreneceksiniz-

  • Performans Testi nedir?
  • Performans Testi Neden Yapılır?
  • Performans Testi Türleri
  • Yaygın Performans Sorunları
  • Performans Test Süreci
  • Performans Testi Metrikleri: İzlenen Parametreler
  • Örnek Performans Testi Durumları
  • Performans Test Araçları
  • SSS

Performans Testi Neden Yapılır?

Bir yazılım sistemi tarafından desteklenen Özellikler ve İşlevsellik tek sorun değildir. Bir yazılım uygulamasının yanıt 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.

Paydaşlara hız, kararlılık ve ölçeklenebilirlik ile ilgili uygulamaları hakkında bilgi vermek için Performans Testi yapılır. Daha da önemlisi, Performans Testi, ürün piyasaya çıkmadan önce nelerin geliştirilmesi gerektiğini ortaya çıkarır. Performans Testi olmadan, yazılımın aşağıdaki gibi sorunlardan muzdarip olması muhtemeldir: birkaç kullanıcı aynı anda kullanırken yavaş çalışma, farklı işletim sistemlerinde tutarsızlıklar ve zayıf kullanılabilirlik.

Performans testi, 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. Var olmayan veya zayıf performans testleri nedeniyle zayıf performans ölçüleriyle pazara gönderilen uygulamaların kötü bir itibar kazanması ve beklenen satış hedeflerini karşılamaması muhtemeldir.

Ayrıca, uzay fırlatma programları veya hayat kurtaran tıbbi ekipman gibi görev açısından kritik uygulamalar, sapma olmadan uzun süre çalıştıklarından emin olmak için performans testine tabi tutulmalıdır.

Dunn & Bradstreet'e göre, Fortune 500 şirketlerinin% 59'u her hafta tahmini 1,6 saat kesinti yaşıyor. Minimum 10.000 çalışanı olan ortalama bir Fortune 500 şirketinin saatte 56 dolar ödediği düşünüldüğünde, böyle bir organizasyon için kesinti maliyetlerinin işçilik kısmı haftalık 896.000 dolar olacak ve bu da yılda 46 milyon dolardan fazlasına dönüşecektir.

Google.com'un yalnızca 5 dakikalık bir kesinti süresinin (19-Ağustos-13) arama devine 545.000 $ 'a mal olacağı tahmin ediliyor.

Son zamanlarda Amazon Web Hizmeti Kesintisi nedeniyle şirketlerin saniyede 1100 $ değerinde satış kaybettiği tahmin ediliyor.

Bu nedenle performans testi önemlidir.

Performans Testi Türleri

  • 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ınlanmadan önce performans darboğazlarını belirlemektir.
  • Stres testi - yüksek trafik veya veri işlemeyi nasıl işlediğini görmek için bir uygulamanın 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 beklenen yükü uzun bir süre boyunca kaldırabildiğ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 tepkisini test eder.
  • Hacim testi - Hacim Testi altında büyük no. nın-nin. Veriler bir veritabanında 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çeklendirmedeki" etkinliğini belirlemektir. Yazılım sisteminize kapasite eklemenin planlanmasına 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 özelliklerinden biridir. Yavaş çalışan bir uygulama potansiyel kullanıcıları kaybedecektir. Performans testi, bir uygulamanın kullanıcının dikkatini ve ilgisini çekecek kadar hızlı çalıştığından emin olmak için yapılır. Aşağıdaki yaygın performans sorunları listesine bir göz atın ve bunların çoğunda hızın nasıl ortak bir faktör olduğuna dikkat edin:

  • Uzun Yükleme süresi - Yükleme süresi normalde bir uygulamanın başlaması için gereken ilk süredir. Bu genellikle minimumda tutulmalıdır. Bazı uygulamaların bir dakikadan kısa sürede yüklenmesi imkansız olsa da, mümkünse Yükleme süresi birkaç saniyenin altında tutulmalıdır.
  • Yetersiz yanıt süresi - Yanıt süresi, bir kullanıcının uygulamaya veri girmesinden uygulamanın bu girdiye bir yanıt vermesine kadar geçen süredir. Genellikle bu çok hızlı olmalıdır. Yine bir kullanıcı çok uzun süre beklemek zorunda kalırsa ilgisini kaybeder.
  • Yetersiz ö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ırmadığında zayıf ölçeklenebilirlikten muzdariptir. Uygulamanın beklenen sayıda kullanıcıyı kaldırabileceğinden emin olmak için Yük Testi 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 verimde düşüşe neden olmasıdır. Darboğaz genellikle bir hatalı kod bölümünden kaynaklanır. Bir 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 kötü çalışan süreçleri düzelterek veya ek Donanım ekleyerek giderilir. Bazı yaygın performans darboğazları şunlardır:
    • CPU kullanımı
    • Bellek kullanımı
    • Ağ kullanımı
    • İşletim Sistemi sınırlamaları
    • Disk kullanımı

Performans Test Süreci

Performans testi için benimsenen metodoloji büyük ölçüde değişebilir, ancak performans testlerinin amacı aynıdı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. 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 ilişkin genel bir süreç bulunmaktadır

  1. Test ortamınızı tanımlayın - Fiziksel test ortamınızı, üretim ortamınızı ve hangi test araçlarının mevcut olduğunu öğrenin. 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. Test uzmanlarının daha verimli testler oluşturmasına yardımcı olacaktır. Ayrıca, test uzmanlarının performans testi prosedürleri sırasında karşılaşabilecekleri olası zorlukların belirlenmesine de yardımcı olacaktır.
  2. Performans kabul kriterlerini belirleyin - Bu, iş hacmi, yanıt süreleri ve kaynak tahsisi için hedefleri ve kısıtlamaları içerir. Bu hedeflerin ve kısıtlamaların dışında proje başarı kriterlerinin belirlenmesi de gereklidir. Test uzmanları, performans kriterleri ve hedefleri belirleme konusunda yetkilendirilmelidir, çünkü çoğu zaman proje özellikleri yeterince geniş çeşitlilikte performans kıyaslamaları içermeyecektir. Bazen hiç olmayabilir. Mümkün olduğunda karşılaştırmak için benzer bir uygulama bulmak, performans hedefleri belirlemenin iyi bir yoludur.
  3. Performans testlerini planlayın ve tasarlayın - Kullanımın son kullanıcılar arasında nasıl değişiklik gösterebileceğini belirleyin ve tüm olası kullanım durumları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ın ana hatlarını çizmek gerekir.
  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ı düzenleyin.
  5. Test tasarımını uygulayın - Test tasarımınıza göre performans testleri oluşturun.
  6. Testleri çalıştırın - Testleri yürütün ve izleyin.
  7. Analiz edin, ayarlayın ve yeniden test edin - Test sonuçlarını birleştirin, analiz edin ve paylaşın. Ardından, performansta iyileşme veya düşüş 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 kaynaklandığında durun. O zaman CPU gücünü artırma seçeneğiniz olabilir.

Performans Testi Metrikleri: İzlenen Parametreler

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

  • İşlemci Kullanımı - işlemcinin boşta olmayan iş parçacıklarını yürütmek için harcadığı süre.
  • Bellek kullanımı - bir bilgisayardaki işlemler için kullanılabilen fiziksel bellek miktarı.
  • Disk süresi - 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 saniyedeki bit sayısını gösterir.
  • Özel baytlar - bir işlemin ayırdığı 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.
  • Kaydedilen bellek - kullanılan sanal bellek miktarı.
  • Bellek sayfaları / saniye - Sabit sayfa hatalarını çözmek için diske yazılan veya diske okunan sayfa sayısı. Sabit sayfa hataları, geçerli çalışma kümesinden olmayan kod başka bir yerden çağrıldığında ve bir diskten alındığında ortaya çıkar.
  • Sayfa hatası / saniye - işlemci tarafından hata sayfalarının işlendiği toplam hız. Bu, bir işlem kendi çalışma kümesinin dışından kod gerektirdiğinde tekrar oluşur.
  • Saniyede CPU kesintisi - ort. bir işlemcinin her saniye aldığı ve işlediği donanım kesintilerinin sayısı.
  • Disk sırası uzunluğu - ort. Hayır. Örnek bir aralık sırasında seçilen disk için sıraya alınan okuma ve yazma isteklerinin yüzdesi.
  • Ağ çıktı kuyruğu uzunluğu - paketlerdeki çıktı paketi kuyruğunun uzunluğu. İkiden fazla herhangi bir şey, bir gecikme ve darboğazın durdurulması gerektiği anlamına gelir.
  • Saniyede toplam ağ baytı - çerçeveleme karakterleri de dahil olmak üzere arabirimde gönderilen ve alınan baytların oranı.
  • Yanıt süresi - bir kullanıcının bir istek girmesinden yanıtın ilk karakterinin alınmasına kadar geçen süre.
  • Aktarım hızı - bir bilgisayarın veya ağın saniyede istek aldığını derecelendirin.
  • Bağlantı havuzu oluşturma miktarı - havuza alınan bağlantılarla karşılanan kullanıcı isteklerinin sayısı. Havuzdaki bağlantılarla ne kadar çok istek karşılanırsa, performans o kadar iyi olur.
  • Maksimum aktif oturum - aynı anda aktif olabilecek maksimum oturum sayısı.
  • İsabet oranları - Bu, pahalı G / Ç işlemleri yerine önbelleğe alınan veriler tarafından işlenen SQL ifadelerinin sayısıyla ilgilidir. Bu, darboğaz sorunlarını çözmek için iyi bir başlangıç ​​noktasıdır.
  • Saniyedeki vuruş - hayır. yük testinin her saniyesinde bir web sunucusundaki isabet sayısı.
  • Geri alma segmenti - herhangi bir zamanda geri alınabilen veri miktarı.
  • Veritabanı kilitleri - tabloların ve veritabanlarının kilitlenmesi izlenmeli ve dikkatlice ayarlanmalıdır.
  • En çok beklemeler - verilerin bellekten ne kadar hızlı alındığı ile uğraşırken hangi bekleme sürelerinin kısaltılabileceğini belirlemek için izlenir
  • İş parçacığı sayıları - Bir uygulamanın sağlığı no ile ölçülebilir. çalışan ve şu anda aktif olan iş parçacığı.
  • Çöp toplama - Kullanılmayan belleği sisteme geri döndürmekle ilgilidir. Verimlilik için çöp toplama izlenmesi gerekir.

Örnek Performans Testi Durumları

  • 1000 kullanıcı aynı anda web sitesine eriştiğinde yanıt süresinin 4 saniyeden fazla olmadığını doğrulayın.
  • Ağ bağlantısı yavaş olduğunda, Yük Altında Uygulamanın yanıt süresinin kabul edilebilir bir aralıkta olduğunu doğrulayın
  • Uygulamanın çökmeden önce işleyebileceği maksimum kullanıcı sayısını kontrol edin.
  • 500 kayıt aynı anda okunduğunda / yazıldığında veritabanı yürütme süresini kontrol edin.
  • En yüksek yük koşullarında uygulamanın ve veritabanı sunucusunun CPU ve bellek kullanımını kontrol edin
  • Düşük, normal, orta ve ağır yük koşullarında uygulamanın yanıt süresini doğrulayın.

Gerçek performans testinin yürütülmesi sırasında, kabul edilebilir aralık, ağır yük vb. Gibi belirsiz terimler somut sayılarla değiştirilir. 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çtiğ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 popüler olarak kullanılan test araçlarının bir listesi bulunmaktadır.

  • LoadNinja - yükleme testlerimizde devrim yaratıyor. Bu bulut tabanlı yük testi aracı, ekiplerin karmaşık dinamik korelasyon olmadan kapsamlı yük testlerini kaydetmesine ve anında oynatmasına ve bu yük testlerini gerçek tarayıcılarda uygun ölçekte çalıştırmasına olanak tanır. Takımlar test kapsamını artırabilir. & yük testi süresini% 60'ın üzerinde azaltın.
  • NeoLoad - DevOps için tasarlanmış, mevcut Sürekli Teslimat ardışık düzeninize sorunsuz bir şekilde entegre olan performans testi platformudur. NeoLoad ile ekipler, bileşenden tam sistem genelinde yük testlerine kadar tam Çevik yazılım geliştirme yaşam döngüsü boyunca yeni gereksinimleri karşılamak için geleneksel araçlardan 10 kat daha hızlı test eder.
  • HP LoadRunner - bugün piyasadaki en popüler performans test araçlarıdır. Bu araç, yüz binlerce kullanıcıyı simüle ederek uygulamaları gerçek hayattaki yüklerin altına koyarak beklenen yükler altındaki davranışlarını belirleyebilir. Loadrunner, canlı insan kullanıcıların eylemlerini simüle eden sanal bir kullanıcı oluşturucuya sahiptir.
  • Jmeter - web ve uygulama sunucularının yük testi için kullanılan önde gelen araçlardan biridir.

SSS

Hangi Uygulamaları Performans Test Etmeliyiz?

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 çok kullanıcı çalıştırır; dolayısıyla Performans Testi için bir aday değildir.

Performans Testi ve Performans Mühendisliği arasındaki fark nedir

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

Performans Testi , bir yazılım uygulamasının mevcut performansının çeşitli parametreler altında test edilmesi ve raporlanmasıyla ilgili bir disiplindir .

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

Tarihsel olarak, test etme ve ayarlama belirgin bir şekilde ayrı olmuştur ve çoğu zaman rekabet halindedir. Bununla birlikte, son birkaç yılda, birkaç testçi ve geliştirici grubu, ayarlama ekipleri oluşturmak için bağımsız olarak işbirliği yaptı. Bu ekipler önemli bir başarı elde ettikleri için, performans ayarlamalı kuplaj performans testi kavramı yakalandı ve şimdi buna performans mühendisliği diyoruz.

Sonuç

Yazılım Mühendisliğinde, herhangi bir yazılım ürününü pazarlamadan ö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 müşteri memnuniyetinin, sadakatinin ve elde tutmanın iyileştirilmesinden daha fazlasıdır.