arjin aydemir
inventiv
Published in
7 min readJan 7, 2022

--

YAZILIM TEST TEKNİKLERİ NELERDİR?

Yazılım, bir bilgisayar sisteminin belirli bir görevi veya görevleri yerine getirmesi için bir dizi program ve talimat olarak tanımlanabilir. Bu nedenle Yazılım Test Teknikleri, iyi çalıştıklarından ve tasarlandıkları belirli görevleri yerine getirdiklerinden emin olmak için bu programları ve talimatları test etmenin farklı yolları ve yöntemleri olarak tanımlanabilir.

Bu teknikler yazılım uygulamaları için kalite güvencesini kontrol altında tutar ve yapılması gereken görevler vardır. Çeşitli şekillerde sınıflandırılabilir veya kategorize edilebilirler.

YAZILIM TEST SEVİYELERİ

Birim (Unit) Testi:Yazılımı oluşturan bileşenlerin birbirlerinden bağımsız olarak işlevselliklerinin test edilip hatalarının bulunmasıdır. Örneğin modüllerin, objelerin veya sınıfların bağımsız olarak test edilmesi. Amaç, yazılım kodunun her biriminin beklendiği gibi çalıştığını doğrulamaktır.

Entegrasyon Testi Bileşenlerin birbirleriyle ve sistemi oluşturan diğer parçalarla olan etkileşimlerinin test edilmesidir. Tüm sistemin/yazılımın davranışı ile ilgilidir. Hata riskini en aza indirmek için test ortamı mümkün olduğunca canlı ortama yakın olmalıdır.

  • Gereksinimlere,
  • İş süreçlerine,
  • Kullanım senaryolarına,
  • Tanımlanan modellere,
  • İşletim sistemiyle etkileşimlerine dayanabilir.
  • Sistemin fonksiyonel/fonksiyonel olmayan gereksinimlerinin kalitesini sorgular. Black box tekniği ile başlar sonrasında White box teknikleri uygulanabilir.

Sistem Testi:Tüm sistemin veya ürünün bir bütün olarak davranışının test edilmesidir.

  • Amacı: Sistemin fonksiyonel ve fonksiyonel olmayan gereksinimlerine karşı güven oluşturmaktır.
  • Hata bulmak değil, sistemin canlıya hazır olduğunu göstermek. (Yes/No)
  • Sorumluluk müşteride/sistem kullanıcılarında.

Kabul Testi(UAT): Kullanıcı Kabul Testi (User Acceptance Testing — UAT), proje aktiviteleri arasında farklılık gösterir. Çünkü odak noktası geliştirme ekibi değil, ekip dışı kişilerdir ve sistem testlerinde olduğu gibi birincil önceliği “kusur bulmak”değildir.

UAT’nin Amacı:

UAT’nin temel amacı,uçtan uca iş akışını doğrulamaktır. Kozmetik hatalara, yazım hatalarına veya sistem testlerine odaklanmaz. Kullanıcı Kabul Testi, üretim benzeri veri kurulumu ile ayrı bir test ortamında gerçekleştirilir. İki veya daha fazla son kullanıcının dahil olacağı bir tür kara kutu testidir.

UAT’yi Kim Gerçekleştirir?

  • Müşteri
  • Son kullanıcılar

Neden Kullanıcı Kabul Testine İhtiyacımız Var?

Kullanıcı Kabul Testi ihtiyacı,yazılım Birim, Entegrasyon ve Sistem testinden geçtikten sonra ortaya çıkar, çünkü geliştiriciler kendi anlayışlarına göre gereksinimler belgesine dayalı yazılımlar oluşturmuş olabilirler ve geliştirme sırasında daha fazla gerekli değişiklikler onlara etkin bir şekilde iletilemeyebilir, bu nedenle nihai olup olmadığını test etmek için ürün müşteri/son kullanıcı tarafından kabul edilirse, kullanıcı kabul testi gereklidir.

Kabul Testi ve V- Modeli: V-Model’de Kullanıcı kabul testi,Yazılım Geliştirme yaşam döngüsünün (SDLC) gereksinim aşamasına karşılık gelir.

V-Model

YAZILIM TEST TÜRLERİ

Duman(Smoke) Testi: Duman Testi ,dağıtılan yazılım yapısının kararlı olup olmadığını belirleyen bir yazılım test sürecidir. Duman testi,QA ekibinin daha fazla yazılım testine devam etmesi için bir onaydır. Yazılım işlevlerini test etmek için her yapı üzerinde yürütülen minimum bir dizi testten oluşur.

Duman testleri, yapıyı daha ileri resmi testler için nitelendirir.Duman testinin temel amacı, önemli sorunları erkenden tespit etmektir. Duman testleri, sistem kararlılığını ve gereksinimlere uygunluğunu göstermek için tasarlanmıştır.

Duman Testi ne zaman yapılır?

Duman Testi, yazılımın yeni işlevleri geliştirildiğinde ve QA/hazırlama ortamında dağıtılan mevcut yapı ile entegre edildiğinde yapılır. Tüm kritik işlevlerin doğru şekilde çalışmasını veya çalışmamasını sağlar.

Bu test yönteminde,geliştirme ekibi yapıyı QA’da dağıtır. Test senaryolarının alt kümeleri alınır ve ardından test kullanıcıları yapı üzerinde test senaryolarını çalıştırır. KG ekibi, uygulamayı kritik işlevlere karşı test eder. Bu test senaryoları serisi, derlemedeki hataları ortaya çıkarmak için tasarlanmıştır. Bu testler geçilirse QA ekibi Fonksiyonel Test ile devam eder .

Herhangi bir arıza, sistemi geliştirme ekibine geri götürme ihtiyacını gösterir. Yapıda bir değişiklik olduğunda, kararlılığı sağlamak için Duman Testi yapıyoruz.

Performans Testi:

Performans Testi ,yazılım uygulamalarının beklenen iş yükleri altında düzgün şekilde çalışmasını sağlayan bir tür yazılım testidir. Belirli bir iş yükü altında hassasiyet, tepkisellik ve kararlılık açısından sistem performansını belirlemek için gerçekleştirilen bir test tekniğidir.

Performans Testi,bir ürünün kalitesini ve kapasitesini analiz etme sürecidir. Değişken iş yükü altında hız, güvenilirlik ve kararlılık açısından sistem performansını belirlemek için yapılan bir test yöntemidir.

Uyumluluk Testi:Test ekibi tarafından gerçekleştirilen test türlerinden biridir. Uyumluluk testi, yazılımın farklı donanım, işletim sistemi, bant genişliği, veritabanları, web sunucuları, uygulama sunucuları, donanım çevre birimleri, emülatörler, farklı konfigürasyon, işlemci, farklı tarayıcılar ve tarayıcıların farklı sürümleri vb. Üzerinde çalıştırılıp çalıştırılamayacağını kontrol eder.

Fonksiyonel(İşlevsel) Test:

İşlevsel test, test uzmanları tarafından gerçekleştirilen resmi bir test türüdür. İşlevsel test, yazılımın tasarım belgesine, Kullanım senaryolarına ve gereksinimler belgesine göre test edilmesine odaklanır. Fonksiyonel test, bir test türüdür ve beyaz kutu testinin aksine yazılımın dahili olarak çalışmasını gerektirmez.

İşlevsel Test’te neyi test edersiniz?

Fonksiyonel testin temel amacı yazılım sisteminin işlevlerini kontrol etmektir.

  • Ana hat fonksiyonları: Bir uygulamanın ana işlevlerini test etme
  • Temel Kullanılabilirlik:Sistemin temel kullanılabilirlik testini içerir. Bir kullanıcının herhangi bir zorluk yaşamadan ekranlarda serbestçe gezinip gezinemeyeceğini kontrol ediyor.
  • Erişilebilirlik: Sistemin kullanıcı için erişilebilirliğini denetler
  • Hata Koşulları:Hata koşullarını denetlemek için test tekniklerinin kullanımı. Uygun hata iletilerinin görüntülenip görüntülenmediğini denetler.

Güvenlik Testi:

Yazılım güvenlik testleri ise yazılım ürünlerinin ya da yazılım sistemlerinin güvenli olup olmadığını kontrol etmek, herhangi bir saldırı anında verilerin ve sistem fonksiyonelliğinin korunduğundan emin olmak, olası açıklıkları önceden görmek ve önlem almak için yapılan bir çeşit yazılım testidir.

Regresyon Testi:

Yazılım testinin amacı hataları bulmak ve düzeltmektir. Ancak, bir hata düzeltildikten sonra, genellikle diğer hatalar ortaya çıkar. Regresyon Testi devreye giriyor. Regresyon sınaması, hata düzeltmesi veya kod değişikliğinden sonra ek sorunların ortaya çıkmamasını sağlar. Bu nedenle, her yazılım ürün şirketi Regresyon Testi gerçekleştirir.

Regresyon testi, bir yazılımürününde değişiklik yapıldıktan sonra yürütülür ve düzeltmeden etkilenmiş olabilecek ürün alanlarını yeniden sınar. Regresyon testi, belirli bir test çalışması kümesi (Otomasyon durumunda test komut dosyaları) yürütülerek otomatik veya el ile gerçekleştirilebilir. Regresyon testi nasıl yürütülürse yürütülsün, bu tür testler yüksek kaliteli bir yazılım ürünü sunmak için kritik öneme sahiptir.

Neden Regresyon Testine ihtiyacımız var?

Yazılım geliştiricileri bir hatayı düzelttiklerinde, yeni işlevler eklediklerinde veya varolan bir özelliği veya işlevselliği değiştirdiklerinde, program kodunu değiştirmeleri gerekir. Küçük bir değişiklik bile büyük olasılıkla çok sayıda yeni hataya neden olacaktır. Böyle bir senaryoda, bir Test Mühendisi regresyon testi ile istenmeyen yan etkileri ortaya alabilir ve tam olarak belirleyebilir. Düzgün yürütülen bir regresyon test paketi çok önemlidir. Bir hata düzeltmeden sonra orijinal ürünün çalışmayı durdurmaması zorunludur.

Regresyon Testinin Avantajları:

Regresyon testinin diğer avantajlarından bazıları şunlardır:

  • Ürün kalitesini önemli ölçüde artırır.
  • El ile test çalışmaları otomatik olabilir ve bu otomasyon ilkesi regresyon denetimlerine uygulanabilir.
  • Başarıyla yürütülen bir regresyon test paketi, hataların erken algılanıp erken düzeltilmesini sağlar.
  • Kod değişikliklerinin zaten test edilmiş kodun doğru işlevselliğini etkilemediğini iyice doğrular ve herhangi bir kod değişikliğinin her yan etkisini algılar.
  • Regresyon testleri entegrasyon testi aşamasında da kullanılabilir. Bu durumda, iki sistemi bir araya koyarken farklı sistemlerdeki hataları tespit etmede yardımcı olurlar.

Kullanılabilirlik Testi: kullanılabilirliğinin değerlendirilmesi istenen arayüzün belirlenen hedef kitlede belirlenen görevlerin yaptırılmasi ve bu süreçte kullanıcıdan verimlilik, etkililik ve memnuniyet değerlerinin alınmasıdır.

YAZILIM TEST YÖNTEMLERİ

Ad-hoc testi: Adhoc testi, sistemdeki herhangi bir boşluğu bulmak için resmi test tamamlandıktan sonra gayri resmi ve rastgele gerçekleştirilen bir yazılım testi türüdür. Bu nedenle, Rastgele test veya Maymun testi olarak da bilinir. Adhoc testi yapılandırılmış bir şekilde yapılmaz, bu nedenle herhangi bir metodolojik yaklaşıma dayanmaz. Bu nedenle Adhoc testi bir tür Yapılandırılmamış Yazılım Testidir.

Çevik(Agile) Test:

Çevik yazılım geliştirmenin kural ve ilkelerini takip eden bir test uygulamasıdır. Şelale yönteminin aksine Çevik Test, geliştirme ve test etme arasında sürekli entegrasyonla projenin başlangıcında başlayabilir. Çevik Test metodolojisi sıralı değil (sadece kodlama aşamasından sonra yürütülmesi anlamında), süreklidir.

Kara Kutu(Black Box) Testi:

Kara kutu, test altındaki uygulamayı kullanıcının perspektifinden kontrol etmek için güçlü bir tekniktir. Kara kutu testi, sistemi yazılım hatalarından sorumlu dış etkenlere karşı test etmek için kullanılır. Bu test yaklaşımı, yazılıma giren girişe ve üretilen çıktıya odaklanır. Test ekibi kod, sunucu mantığı ve geliştirme yöntemi gibi iç ayrıntıları kapsamaz.

Kara kutu testi gereksinimlere dayanır ve önceden tanımlanmış gereksinimlere göre doğrulamak için sistemi kontrol edilir.

Beyaz Kutu(White-Box):

Beyaz kutu, testleri geliştirilen yazılımın kod yapısı bilinerek gerçekleştirilen test tasarım tekniğidir. Beyaz kutu testlerinde en önemli nokta kod bilgisidir. Beyaz kutu testleri yaşam döngüsünün erken aşamalarında gerçekleştiği için yazılım içindeki hatalarda erken safhada bulunmuş olur.

Beyaz kutu testi, modern bir Sürekli Entegrasyon/Sürekli Teslim (CI/CD) geliştirme işlem hattında otomatik yapı süreçlerinin önemli bir parçasıdır.

Beyaz kutu sınaması genellikle kaynak kodunu veya ikili dosyaları otomatik olarak denetleyen ve hatalar ve olası güvenlik açıkları hakkında geri bildirim sağlayan bir yaklaşım olan Statik Uygulama Güvenliği Testi (SAST) bağlamında başvurulur.

Gri Kutu Testi:

Gri kutu testi, yazılımın temel dinamiklerini ve işleyişini bilerek ona göre davranır. Gri kutu testinde sistem girdi ve çıktılarıyla analiz edilerek her bir kod parçacığının; performans, etkilediği sistemler veya hataları tespit edilir.

Kara kutu testine göre daha yüksek düzeyde erişime ve daha fazla dahili bilgiye izin veren bir test türüdür. Nispeten, bir kara kutu testi uzmanı, sisteme sızmaya çalışan ve dış bakış açısıyla devreye girerken, gri kutu test uzmanı ise alt düzey kimlik bilgileri, uygulama mantığı, bazı dahili erişimler ve bilgiler zaten verilmiştir. Burada önemli olan nokta gri kutu testçisine bir kullanıcı erişim bilgisi kesinlikle verilmez. Test uzmanı kurum içerisinde (toplantı odası vb.) gibi WiFi veya Network kablosunun bulunduğu ancak yüksek düzeyde güvenliğin alındığı bir odaya alınır. Burada test uzmanı gerek kablo gerekse de WiFi ortamında elde ettiği bilgiler ile sisteme yatay ve dikey de sızmaya çalışır. Bu esnada kullanıcı bilgileri elde edilebilir. Elde edilen kullanıcı bilgileri ile uygulamalar, sunucular, aktif ağ cihazları ve veri tabanları gibi sistemlere girilebilir.

Bu makalenin yazımında destek olan Zekeriya Polat ‘a teşekkür ederim.

--

--