Tag Archives: yazılım testi

Yazılım Performans Testi Hakkında

10 Kas

Performans Testi Nedir ?

 

Performans testi, sistemin belirli durumlarda, belirlenen beklentileri verip vermediğini kontrol etmek amacıyla yapılan testtir. Performans testi sistemdeki bug’ ların bulunmasını amaçlamaz ancak sistemdeki darboğazları ortaya çıkarır.

 

Performans testi aşağıdaki soruların cevaplarını verir:

 

  • Sistem trafiğindeki artışlar; işlem süresini ve güvenliğini nasıl etkiler?
  • Hangi kullanıcı seviyesinde performans problemleri yaşanır?
  • Performans seviyelerindeki düşüş sistemin hangi bileşeninden kaynaklanır?
  • Normal şartlar altında sistem nasıl davranıyor?

 

Yazılım Mühendisliği’nde, performans testlerinin amacı, bir sistemin kritik derecede önemli ve yüksek riskli bileşenlerinin, belirli bir iş yükü altında nasıl çalıştığının belirlenmesidir. Ölçeklenebilirlik, güvenilirlik ve kaynak kullanımı gibi sistemin önemli kalite özelliklerini doğrulamak için yapılan performans testlerini gerçekleştirmek, sürdürülebilirlik anlamında bir zorunluluktur.

 

Performans Testinin Kapsamı;

 

  1. Test Stratejisinin Belirlenmesi
  2. Yük Seviyelerinin Belirlenmesi
  3. Performans Test Ortamının Hazırlanması
  4. Yük Senaryolarının Hazırlanması
  5. Testlerin Uygulanması ve Raporlanması

 

 

Temel olarak 3 çeşit performans testi bulunmaktadır. Bunlar;

 

Performans Testi: Uygulamalarının normal şartlar altındaki performans seviyelerinin belirlenmesi.

Load Testi: Uygulamaya 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. Bir kaos ortamında sistemin bu tür durumlara verdiği tepkiyi ölçmek ve arıza giderildiğinde sistemin toparlama seviyesini belirlemektir.

 

Performans testi aslında yük testini ve tunning’i kapsayan bir işlemler bütünüdür. Amacı ise, sistemin belirli bir yük altındaki performansının ölçülmesi ve istenilen performansa ulaşmasının sağlanmasıdır. Sistemin ağır yük altındaki dar boğazlarının, kod ve veritabanı gibi sistemlerle çözülmesini amaçlamaktadır.

 

Yük Testi:

Yük testi sistemin ne kadar yükte maksimum performans ile çalıştığının bilgisini veren test tipidir. Sistemin ne kadar yüke tahammül edebildiğini anlamak için yapılır.

Yük testinin amacı, sistemin yük altındaki davranışlarının ve hatalarının ortaya çıkarılmasını sağlamaktır. Her ne kadar performans testinin bir parçası olsa da, kimi zamanda sistemin “sağlamlığını” test etmek için yapılır.

Yük testi sayesinde, performans testi tamamlanmış bir sistemin ihtiyacı olan load balancing sunucuları ya da gerekli donanımın belirlenmesi kolaylaştırılmıştır.

 

Araç seçiminin yapılması:

Değişik ortamlarda değişik toollar kullanmak gerekmektedir.

  • .net uygulamar için visual studio team suit in içindeki performans toolları bulunmaktadır.
  • Java uygulamaları için birçok open source tool bulunmaktadır.Bunlar araasında en çok kullanılanın OPENSTA(open system testing architecture)olduğu belirtilmektedir. Ayrıca java uygulamaları için ücretli bir tool olan IBM Rational Performance bulunmaktadır.
  • Borland SilkPerformer
  • Hp LoadRunner

 

 

Testin Uygulanması:

 

Gerekli senaryoları ve toolu seçtikden sonra(TSE IBM Rational kullanıyor) 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. Daha sonra sonuç verilerini alabilmek için test ortamına gerekli collectorları bağlamanız gerekmektedir. Bu işlemi de gercekleştirdikten sonra bir case inizi test amaclı bir kere run edip dataları alabildiğinizi gördükden sonra, belirlediğiniz kullanıcı sayılarını toola girip caselerinizi sadece run tuşuna basarak execute edebilirsiniz.

 

Test sonuçlarının incelenmesi ve yorumlanması:

 

Performans ve Yük Testi Sırasında Aşağıdaki Dokümanlar Üretilir:

Test Durum Dokümanları

  • Sistemin dar boğazları
  • Sistemin response-request zamanları
  • Sistem için ideal yük
  • Sistemin kaldıracağı maximum yük
  • Sistem için ideal bant genişliği
  • Sistemi yayınlayacak server için ideal donanım yapısı

 

Reklamlar

Yazılım Testi Metodolojileri

5 Oca

Yazılım Testi Metodolijileri – Yazılım Test Metodları

 

Yazılım testi kullanmak, yazılım geliştirme yaşam döngüsünün önemli parçalarından biridir. Etkin ve efektif test kodu oldukça önemlidir. Peki yazılım testi ne demektir ?

Yazılım testi, önceden belirtilen gereksinimleri karşılayıp karşılamadığını, doğru çıktıyı üretip üretmediğinikontrol eden yapıdır. Çok sayıda test durumu ve test stratejisi hazırlanır, bu testlerin hepsi belirli hedefleri (tüm sorunları kaldırmak,yazılımın hatasız çalışmasını sağlamak ve en iyi çıktıyı elde etmek) için uğraşır. Çok sayıda test tekniği ve metodolojisi bulunur. Yazılım test metodolojisi, yazılım testi tekniklerinden farklıdır.

 

 

Yazılım Test Metodları

Black-Box Test

Black-box test kod ya da tasarım ile ilgilenmez. Testler gereksinim ve fonksiyonellik üzerinedir. Black-box test aynı zamanda, Fonksiyonellik testi, Closed Box testi ya da Opaque testi olarak adlandırılır.

Black-Box testi, fonksiyonelliğe uygun veri seçimine ve seçilen verinin programın normal ve ya anormal davranış gösterimini izleme temeline dayanır.

Black-Box test stratejisinde, kullanıcı sistemin gereksinimlerini ve bu gereksinimlere nasıl cevap vereceğini bilmelidir. Black-Box testlerini iki gruba ayırabiliriz, bunlardan biri kullanıcı gereksinimi duymayan testler, diğeri ise kullanıcının gerekli olduğu testlerdir.

 

Kullanıcı Gereksinimi Duymayan Test Metodları

  • Fonksiyonellik Testi: Fonksiyonel gereksinimleri test etmek için yazılmıştır.Eğer uygulama beklendiği gib davranırsa,testlerin yazılmasına sıralı bir şekilde devam edilir.

 

  • Stres Testi: Çok sayıda veri girişi,büyük nümerik değerler,çok sayıda sorgu olduğu zaman kullanılır ve uygulamanın dayanıklılığını belirler.

 

  • Yükleme Testi: Bir sistemin performansını derecelendirmek ve ya ağır yükler ve çok sayıda veri girişinde sistemin hangi noktada çakılacağını tespit etmek için kullanılır.

 

  • Ad-Hoc Testi: Geçerli bir test yaratılmadan önceden kullanım için uygundur. Bu test diğer testlerin kapsama alanını ve diğer testlerin süresinin belirlenmesinde yararlı olur.

 

  • Araştırma Testi: Ad-Hoc testine benzer ve uygulamayı öğrenmemizi sağlar. Uygulama hakkkında ön bilgimiz olur.

 

  • Kullanılabilirlik Testi: Kullanıcı dostu test olarakta bilinir. Eğer kullanıcı arayüzü önemli bir yere sahipse ve ihtiyaçlar belirli bir kullanıcıya göre belirleniyorsa uygundur.

 

  • Duman Testi: Mantık testi olarakta bilinir.Bu test,uygulamanın büyük testlere hazır olup olmadığını belirler ve küçük testleri başarı ile geçtiğini gösterir.

 

  • Yenilenme Testi: Uygulamanın herhangi bir hataya karşı ne kadar sürede eski haline geleceğini test eder.Sistem gereksinimlerine göre,tip ve yenileme hızı belirlenir.

 

  • Seviye Testi: Uygulamanın etkinliği ile ilgilenir.Uygulama tarafından çok büyük veri işlemi yapılırken, sistemin uç limitlerini kontrol eder.

 

 

Kullanıcının Gerekli Olduğu Testler

  • Kullanıcı Kabul Testi: Kullanıcının sistemi test edip, gereksinimleri karşılayıp karşılamadığının incelenmesini sağlar.

 

  • Alfa Testi: Kullanıcı geliştirme merkezine çağrılır. Geliştiriciler programı kullanır ve program hakkında not alır ya da kullanıcı işlemleri gerçekleştirir.

 

  • Beta Testi: Kullanıcılara beta versiyon dağıtılır ve test etmesine izin verilir. Kullanıcılar sistemi inceler,herhangi bir sorun bulduğunda,geliştiriciye bildirir.

 

 

White-Box Test

Uygulamanın kodunu temel almaktadır.Kodun koşullarını, alanlarını ve açıklamalarını temel alır. White-Box testi, cam, açık kutu, temiz kutu olarak adlandırılmaktadır. Bu testte, testi yapan kişi sorunlu kısmı bulmak için kodu incelemelidir.

 

 

Avantajları

  • Kodun optimizasyonunu sağlar.
  • Ekstra kod parçasını kaldırır ve tek bakışta gözükmeyen sorunları ortaya çıkarır.
  • Hangi verinin kodu en iyi şekilde test edeceğini tespit eder.

 

 

Dezavantajları

  • Belirli özelliklere sahip test yapıldığında maliyet artar.
  • Kodun inceleyip tek tek hata bulmak çok zor bir işlemdir.

 

 

White-Box Test Metodları

  • Birim Test: Çalışan bir kod parçası ya da modül için, geliştiriciler tarafından gerçekleştirilir.Düşük seviyede işlem gerçekleştirir.

 

  • Statik ve Dinamik Analiz: Statik analiz kodu sıralı bir şekilde inceler ve hataları araştırır. Dinamik analiz,kodun çalışmasını ve çıktıyı analiz eder.

 

  • Açıklama Kapsamı: Açıklamaların test edilmesiyle ilgilenir.Her bir açıklama en az bir kez test edilir. Tüm açıklamaların sorun yaşamadan çalıştığını garanti altına alır.

 

  • Sınıf Kapsamı: Hiçbir yazılım uygulaması sürekli olarak kodlanmaz, bazı noktalarda, kodun dağılışı incelemeli ve belirli bir fonksiyonu çalıştırılmalıdır. Tüm sınıflar doğrulanmasına yardım eder ve uygulamanın anormal davranış göstermesini engeller.

 

  • Güvenlik Testi: Sistemin izinsiz erişimler, kod bozulması, hacklenme gibi olaylardan nasıl korunacağı ile ilgilenir. Karmaşık test metotları gerekir.

 

  • Değişim Testi: Belirli bir hata düzeltildikten sonra yapılan bir testtir.Hangi kodun, stratejinin geliştirmeye yardımcı olacağını belirlemeyi sağlar.

 

 

Bazı testler hem White-Box hem de Black-Box kapsamında incelenebilir. Bunlara örnek verecek olursak;

 

  • Fonksiyonellik Testi:Kodla birlikte fonksiyonelliği test eder.

 

  • Birleştirme Testi:Uygulamaya yeni eklenen kod ile işbirliği yapar.

 

  • Performans ve Yükleme Testi:Kodun hangi kısmının sistemin kaynaklarını yönettiğini ve performansı verilişini belirler.

Ahmet Sami Küçük

Kaynak:http://www.iztim.com/Blog/YazilimTeknolojisi/YAZILIM-METODOLOJI