Yazılım Testi - Seviyeler

Test sürecinde farklı seviyeler vardır. Bu bölümde, bu seviyeler hakkında kısa bir açıklama verilmektedir.

Test seviyeleri, yazılım testi yapılırken kullanılabilecek farklı metodolojileri içerir. Yazılım testinin ana seviyeleri şunlardır:

  • Fonksiyonel test

  • İşlevsel Olmayan Test

Fonksiyonel test

Bu, test edilecek yazılımın teknik özelliklerine dayanan bir tür kara kutu testidir. Uygulama girdi sağlanarak test edilir ve daha sonra amaçlanan işlevselliğe uyması gereken sonuçlar incelenir. Bir yazılımın işlevsel testi, sistemin belirtilen gereksinimlere uygunluğunu değerlendirmek için eksiksiz, entegre bir sistem üzerinde gerçekleştirilir.

Bir uygulamayı işlevsellik açısından test ederken dahil olan beş adım vardır.

Adımlar Açıklama
ben Amaçlanan uygulamanın gerçekleştirmesi amaçlanan işlevselliğin belirlenmesi.
II Uygulamanın özelliklerine göre test verilerinin oluşturulması.
III Çıktı, test verilerine ve uygulamanın özelliklerine dayanır.
IV Test senaryolarının yazılması ve test senaryolarının yürütülmesi.
V Gerçek ve beklenen sonuçların yürütülen test senaryolarına göre karşılaştırılması.

Etkili bir test uygulaması, her kuruluşun test politikalarına uygulanan yukarıdaki adımları görecek ve bu nedenle, kuruluşun yazılım kalitesi söz konusu olduğunda en katı standartları sürdürmesini sağlayacaktır.

Birim Testi

Bu tür testler, test senaryolarını resmi olarak yürütmek için kurulum test ekibine teslim edilmeden önce geliştiriciler tarafından gerçekleştirilir. Birim testi, ilgili geliştiriciler tarafından kaynak kodu atanmış alanların ayrı birimleri üzerinde gerçekleştirilir. Geliştiriciler, kalite güvence ekibinin test verilerinden farklı test verilerini kullanır.

Birim testinin amacı, programın her bir bölümünü izole etmek ve tek tek parçaların gereksinimler ve işlevsellik açısından doğru olduğunu göstermektir.

Birim Testinin Sınırlamaları

Test, bir uygulamadaki her bir hatayı yakalayamaz. Her yazılım uygulamasında her yürütme yolunu değerlendirmek imkansızdır. Aynı durum birim testinde de geçerlidir.

Bir geliştiricinin bir kaynak kodunu doğrulamak için kullanabileceği senaryo ve test verilerinin sayısında bir sınır vardır. Tüm seçenekleri tükettikten sonra, birim testini durdurup kod segmentini diğer birimlerle birleştirmekten başka seçenek yoktur.

Entegrasyon Testi

Entegrasyon testi, bir uygulamanın birleşik parçalarının doğru çalışıp çalışmadıklarını belirlemek için test edilmesi olarak tanımlanır. Entegrasyon testi iki şekilde yapılabilir: Aşağıdan yukarıya entegrasyon testi ve Yukarıdan aşağıya entegrasyon testi.

Sr.No. Entegrasyon Test Yöntemi
1

Bottom-up integration

Bu test, birim testiyle başlar, ardından modül veya yapı adı verilen kademeli olarak daha yüksek seviyeli birim kombinasyonlarının testleriyle başlar.

2

Top-down integration

Bu testte, en yüksek seviyeli modüller önce test edilir ve aşamalı olarak daha düşük seviyeli modüller daha sonra test edilir.

Kapsamlı bir yazılım geliştirme ortamında, genellikle önce aşağıdan yukarıya test yapılır, ardından yukarıdan aşağıya test yapılır. Süreç, tercihen gerçek durumları taklit etmek için tasarlanmış senaryolarda, eksiksiz uygulamanın birden fazla testiyle sonuçlanır.

Sistem Testi

Sistem testi, sistemi bir bütün olarak test eder. Tüm bileşenler entegre edildikten sonra, uygulama, belirtilen Kalite Standartlarını karşılayıp karşılamadığını görmek için bir bütün olarak titizlikle test edilir. Bu tür testler, uzman bir test ekibi tarafından gerçekleştirilir.

Sistem testi aşağıdaki nedenlerden dolayı önemlidir -

  • Sistem testi, uygulamanın bir bütün olarak test edildiği Yazılım Geliştirme Yaşam Döngüsünün ilk adımıdır.

  • Uygulama, işlevsel ve teknik özellikleri karşıladığını doğrulamak için kapsamlı bir şekilde test edilir.

  • Uygulama, uygulamanın konuşlandırılacağı üretim ortamına çok yakın bir ortamda test edilir.

  • Sistem testi, hem iş gereksinimlerini hem de uygulama mimarisini test etmemizi, doğrulamamızı ve doğrulamamızı sağlar.

Gerileme testi

Bir yazılım uygulamasında bir değişiklik yapıldığında, uygulama içindeki diğer alanların bu değişiklikten etkilenmiş olması oldukça olasıdır. Düzeltilmiş bir hatanın başka bir işlev veya iş kuralı ihlaline yol açmadığını doğrulamak için regresyon testi gerçekleştirilir. Regresyon testinin amacı, hata düzeltmesi gibi bir değişikliğin uygulamada ortaya çıkan başka bir hatayla sonuçlanmamasını sağlamaktır.

Regresyon testi, aşağıdaki nedenlerden dolayı önemlidir -

  • Yapılan değişikliklerin olduğu bir uygulamanın test edilmesi gerektiğinde testteki boşlukları en aza indirin.

  • Yapılan değişikliklerin uygulamanın başka hiçbir alanını etkilemediğini doğrulamak için yeni değişiklikleri test etmek.

  • Uygulamada regresyon testi yapıldığında riskleri azaltır.

  • Zaman çizelgelerinden ödün vermeden test kapsamı artırılır.

  • Ürünü pazarlamak için hızı artırın.

Kabul testleri

Bu, uygulamanın amaçlanan spesifikasyonları karşılayıp karşılamadığını ve müşterinin gereksinimlerini karşılayıp karşılamadığını ölçecek olan Kalite Güvence Ekibi tarafından yürütüldüğü için tartışmasız en önemli test türüdür. QA ekibi, uygulamayı test etmek için kullanılacak bir dizi önceden yazılmış senaryoya ve test senaryolarına sahip olacaktır.

Uygulama hakkında daha fazla fikir paylaşılacak ve doğruluğunu ve projenin başlatılma nedenlerini ölçmek için üzerinde daha fazla test yapılabilecek. Kabul testleri, yalnızca basit yazım hatalarını, yüzeysel hataları veya arayüz boşluklarını belirtmek için değil, aynı zamanda uygulamada sistem çökmelerine veya uygulamada büyük hatalara neden olacak herhangi bir hatayı işaret etmeyi amaçlamaktadır.

Test ekibi, bir uygulama üzerinde kabul testleri yaparak, uygulamanın üretimdeki performansını azaltacaktır. Sistemin kabulü için yasal ve sözleşmeye dayalı gereklilikler de vardır.

Alfa Testi

Bu test, testin ilk aşamasıdır ve ekipler (geliştirici ve QA ekipleri) arasında gerçekleştirilecektir. Bir araya getirildiğinde birim testi, entegrasyon testi ve sistem testi alfa testi olarak bilinir. Bu aşamada, uygulamada aşağıdaki hususlar test edilecektir -

  • Yazım hataları

  • Bozuk bağlantılar

  • Bulutlu Yol Tarifi

  • Uygulama, yükleme sürelerini ve herhangi bir gecikme problemini test etmek için en düşük spesifikasyona sahip makinelerde test edilecektir.

Beta testi

Bu test, alfa testi başarıyla gerçekleştirildikten sonra gerçekleştirilir. Beta testinde, hedef kitlenin bir örneği uygulamayı test eder. Beta testi olarak da bilinirpre-release testing. Yazılımın beta test sürümleri, kısmen programa "gerçek dünya" testi vermek ve kısmen de bir sonraki sürümün bir ön izlemesini sağlamak için Web üzerinde geniş bir kitleye ideal olarak dağıtılır. Bu aşamada, izleyiciler aşağıdakileri test edecek -

  • Kullanıcılar uygulamayı kuracak, çalıştıracak ve geri bildirimlerini proje ekibine gönderecek.

  • Tipografik hatalar, kafa karıştırıcı uygulama akışı ve hatta çökmeler.

  • Geri bildirimi alan proje ekibi, yazılımı gerçek kullanıcılara yayınlamadan önce sorunları çözebilir.

  • Gerçek kullanıcı sorunlarını çözen ne kadar çok sorunu çözerseniz, uygulamanızın kalitesi o kadar yüksek olacaktır.

  • Genel kamuoyuna sunduğunuzda daha kaliteli bir uygulamaya sahip olmak müşteri memnuniyetini artıracaktır.

İşlevsel Olmayan Test

Bu bölüm, bir uygulamanın işlevsel olmayan özelliklerinden test edilmesine dayanmaktadır. İşlevsel olmayan test, bir yazılımı, doğası gereği işlevsel olmayan ancak performans, güvenlik, kullanıcı arabirimi vb. Gibi önemli olan gereksinimlerden test etmeyi içerir.

Önemli ve yaygın olarak kullanılan işlevsel olmayan test türlerinden bazıları aşağıda tartışılmaktadır.

Performans testi

Çoğunlukla, bir yazılımdaki hataları bulmaktan ziyade herhangi bir darboğaz veya performans sorununu tanımlamak için kullanılır. Bir yazılımın performansını düşürmeye katkıda bulunan farklı nedenler vardır -

  • Ağ gecikmesi

  • İstemci tarafı işleme

  • Veritabanı işlemi işleme

  • Sunucular arasında yük dengeleme

  • Veri işleme

Performans testi, aşağıdaki hususlar açısından önemli ve zorunlu test türlerinden biri olarak kabul edilir -

  • Hız (yani Tepki Süresi, veri işleme ve erişim)

  • Capacity

  • Stability

  • Scalability

Performans testi, niteliksel veya niceliksel olabilir ve aşağıdaki gibi farklı alt türlere ayrılabilir: Load testing ve Stress testing.

Yük Testi

Bir yazılımın davranışını, yazılımlara erişme ve büyük giriş verilerini kullanma açısından maksimum yük uygulayarak test etme işlemidir. Hem normal hem de pik yük koşullarında yapılabilir. Bu tür testler, yazılımın maksimum kapasitesini ve en yoğun zamandaki davranışını tanımlar.

Çoğu zaman, yük testi, Load Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk Performer, Visual Studio Load Test, vb. Gibi otomatik araçlar yardımıyla gerçekleştirilir.

Sanal kullanıcılar (VUsers), otomatik test aracında tanımlanır ve yazılımın yük testini doğrulamak için komut dosyası yürütülür. Gereksinimlere göre kullanıcı sayısı eşzamanlı veya aşamalı olarak artırılabilir veya azaltılabilir.

Stres testi

Stres testi, bir yazılımın davranışını anormal koşullar altında test etmeyi içerir. Örneğin, bazı kaynakların kaldırılmasını veya gerçek yük sınırının ötesinde bir yük uygulamayı içerebilir.

Stres testinin amacı, yükü sisteme uygulayarak ve kırılma noktasını belirlemek için yazılım tarafından kullanılan kaynakları devralarak yazılımı test etmektir. Bu test, aşağıdakiler gibi farklı senaryoları test ederek gerçekleştirilebilir:

  • Ağ bağlantı noktalarının rastgele kapatılması veya yeniden başlatılması

  • Veritabanını açma veya kapatma

  • CPU, bellek, sunucu vb. Kaynakları tüketen farklı süreçleri çalıştırmak

Kullanılabilirlik testi

Kullanılabilirlik testi bir kara kutu tekniğidir ve yazılımdaki herhangi bir hata (lar) ı ve iyileştirmeyi, kullanıcıları kullanımları ve çalıştırmaları boyunca gözlemleyerek belirlemek için kullanılır.

Nielsen'e göre kullanılabilirlik beş faktör üzerinden tanımlanabilir, yani kullanım verimliliği, öğrenme yeteneği, hafıza yeteneği, hatalar / güvenlik ve memnuniyet. Ona göre bir ürünün kullanılabilirliği iyi olacak ve sistem yukarıdaki faktörlere sahipse kullanılabilir.

Nigel Bevan ve Macleod, kullanılabilirliğin bir bilgisayar sistemiyle etkileşimlerin sonucu olarak ölçülebilecek kalite gereksinimi olduğunu düşünüyordu. Uygun kaynakların kullanılmasıyla amaçlanan hedeflere etkili bir şekilde ulaşılırsa, bu gereklilik yerine getirilebilir ve son kullanıcı tatmin olur.

Molich, 2000 yılında, kullanıcı dostu bir sistemin aşağıdaki beş hedefi yerine getirmesi gerektiğini belirtti: Öğrenmesi kolay, hatırlaması kolay, kullanımı verimli, kullanımı tatmin edici ve anlaşılması kolay.

Kullanılabilirliğin farklı tanımlarına ek olarak, kullanılabilirliği ISO-9126, ISO-9241-11, ISO-13407 ve IEEE std gibi öznitelikler ve alt öznitelikler şeklinde tanımlayan bazı standartlar ve kalite modelleri ve yöntemleri vardır. 610.12, vb.

Kullanıcı Arayüzü ve Kullanılabilirlik Testi

UI testi, Yazılımın Grafik Kullanıcı Arayüzünün test edilmesini içerir. UI testi, GUI'nin gereksinimlere göre çalışmasını ve renk, hizalama, boyut ve diğer özellikler açısından test edilmesini sağlar.

Öte yandan, kullanılabilirlik testi, kolayca yönetilebilen iyi ve kullanıcı dostu bir GUI sağlar. UI testi, kullanılabilirlik testinin bir alt bölümü olarak düşünülebilir.

Güvenlik Testi

Güvenlik testi, güvenlik ve güvenlik açığı açısından herhangi bir kusur ve boşluğu belirlemek için bir yazılımı test etmeyi içerir. Aşağıda, güvenlik testinin sağlaması gereken ana hususlar listelenmiştir -

  • Confidentiality

  • Integrity

  • Authentication

  • Availability

  • Authorization

  • Non-repudiation

  • Yazılım, bilinen ve bilinmeyen güvenlik açıklarına karşı güvenlidir

  • Yazılım verileri güvenlidir

  • Yazılım tüm güvenlik düzenlemelerine uygundur

  • Giriş kontrolü ve doğrulama

  • SQL ekleme saldırıları

  • Enjeksiyon kusurları

  • Oturum yönetimi sorunları

  • Siteler arası komut dosyası saldırıları

  • Arabellek güvenlik açıklarını taşıyor

  • Dizin geçiş saldırıları

Taşınabilirlik Testi

Taşınabilirlik testi, bir yazılımın yeniden kullanılabilirliğini ve başka bir yazılımdan da taşınmasını sağlamak amacıyla test edilmesini içerir. Taşınabilirlik testi için kullanılabilecek stratejiler aşağıdadır -

  • Kurulu bir yazılımı bir bilgisayardan diğerine aktarma.

  • Yazılımı farklı platformlarda çalıştırmak için yürütülebilir (.exe) oluşturma.

Taşınabilirlik testi, sistem testinin alt bölümlerinden biri olarak düşünülebilir, çünkü bu test türü, bir yazılımın farklı ortamlarda kullanımına göre genel testini içerir. Bilgisayar donanımı, işletim sistemleri ve tarayıcılar, taşınabilirlik testinin ana odak noktasıdır. Taşınabilirlik testi için bazı ön koşullar aşağıdaki gibidir -

  • Yazılım, taşınabilirlik gereksinimleri göz önünde bulundurularak tasarlanmalı ve kodlanmalıdır.

  • İlgili bileşenlerde birim testi yapılmıştır.

  • Entegrasyon testi yapıldı.

  • Test ortamı oluşturuldu.