Makaleler

Yazılım Testi Nedir, Yazılım Testi Ne Demektir?

Yazılım testi, bilgisayarlar için yazılmış yazılımların eksiksizliğini ve kalitesini araştırmak, değerlendirmek ve tespit etmek için kullanılan bir dizi süreçtir. Bir yazılım ürününün düzenleyici, ticari, teknik, işlevsel ve kullanıcı gereksinimlerine uygunluğunu sağlar.

Yazılım testi veya yazılım testi, uygulama testi olarak da bilinir.

Yazılım testi, öncelikle birbirine bağlı birkaç süreçten oluşan büyük bir süreçtir. Yazılım testinin temel amacı, yazılımın bütünlüğünü ve temel gereksinimleri açısından eksiksizliğini ölçmektir. Yazılım testi, yazılımın farklı test süreçleri aracılığıyla incelenmesini ve test edilmesini içerir. Bu süreçlerin amaçları şunları içerebilir:

İşlevsel/iş gereksinimlerine göre yazılım eksiksizliğinin doğrulanması
Hataların/teknik hataların belirlenmesi ve yazılımın hatasız olduğundan emin olunması
Kullanılabilirlik, performans, güvenlik, yerelleştirme, uyumluluk ve kurulum değerlendirmesi
Test edilen yazılımın eksiksiz veya kullanıma uygun olması için tüm testleri geçmesi gerekir. Farklı türde yazılım test yöntemleri arasında beyaz kutu testi, kara kutu testi ve gri kutu testi bulunur. Ayrıca, yazılım bir bütün olarak, bileşenlerde/birimlerde veya canlı bir sistem içinde test edilebilir.

Kara Kutu Testi

Kara Kutu Testi, sistemin iç işleyişine göre yazılımın işlevselliğini analiz etmeye odaklanan bir yazılım test tekniğidir. Kara Kutu Testi, müşteri gereksinimlerini, spesifikasyonları ve üst düzey tasarım stratejilerini analiz etmek için bir yöntem olarak geliştirilmiştir.

Bir Kara Kutu Testi test cihazı, bir dizi geçerli ve geçersiz kod yürütme ve giriş koşulu seçer ve geçerli çıkış yanıtlarını kontrol eder.

Kara Kutu Testi, işlevsel test veya kapalı kutu testi olarak da bilinir.

Bir arama motoru, kara kutu testine tabi tutulan bir uygulamanın basit bir örneğidir. Bir arama motoru kullanıcısı, bir web tarayıcısının arama çubuğuna metin girer. Arama motoru daha sonra kullanıcı verileri sonuçlarını (çıktı) bulur ve alır.

Kara Kutu Testinin faydaları şunları içerir:

  • Basitlik: Üst düzey projelerin ve karmaşık uygulamaların test edilmesini kolaylaştırır
  • Kaynakları koruyun: Test uzmanları, yazılımın işlevselliğine odaklanır.
  • Test Senaryoları: Test senaryolarının hızla geliştirilmesini kolaylaştırmak için yazılım işlevselliğine odaklanın.
  • Esneklik sağlar: özel bir programlama bilgisi gerekmez.

Kara Kutu Testinin aşağıdaki gibi bazı dezavantajları da vardır:

  • Kara Kutu Test araçları bilinen girdilere bağlı olduğundan, test durumu/komut dosyası tasarımı ve bakımı zor olabilir.
  • Grafik kullanıcı arayüzü (GUI) ile etkileşim, test komut dosyalarını bozabilir.
  • Testler yalnızca uygulamanın işlevleriyle ilgilidir.

Beyaz Kutu Testi

Beyaz kutu testi sırasında, önceden seçilmiş çıkış değerlerini doğrulamak için önceden seçilmiş giriş değerleriyle kod çalıştırılır. Beyaz kutu testi genellikle saplama kodunu (belirli bir özelliği değiştirmek için kullanılan bir kod parçası. Bir saplama, uzaktaki bir makinedeki bir prosedür gibi mevcut kodun davranışını simüle edebilir.) ve ayrıca sürücüleri içerir.

Beyaz kutu testinin faydaları şunları içerir:

  • Test durumlarının yeniden kullanılmasını sağlar ve daha fazla kararlılık sunar
  • Kod optimizasyonunu kolaylaştırır
  • Geliştirmenin erken aşamalarında gizli hataların yerlerini bulmayı kolaylaştırır
  • Etkili uygulama testini kolaylaştırır
  • Gereksiz kod satırlarını kaldırın


Dezavantajlar şunları içerir:

  • İç yapı bilgisine sahip deneyimli bir test uzmanı gerektirir
  • Zaman alır
  • Yüksek maliyetler
  • Bit-of-code doğrulama zordur.
  • Beyaz kutu testi, birim testi, entegrasyon testi ve regresyon testini içerir.

Birim Testi

Birim Testi, istenen uygunluk veya davranış için bir yazılım programının en küçük parçalarına kapsamlı bir test prosedürünün ayrı ayrı uygulandığı Yazılım Geliştirme Yaşam Döngüsünün (SDLC) bir bileşenidir.


Birim testi, çoğu kurumsal yazılım geliştirme aktivitesinde uygulanan bir kalite ölçüm ve değerlendirme prosedürüdür. Genel olarak birim testi, yazılım kodunun yazılımın/uygulamanın/programın genel amacına ne kadar uygun olduğunu ve uygunluğunun diğer küçük birimleri nasıl etkilediğini değerlendirir. Birim testleri, bir veya daha fazla geliştirici tarafından manuel olarak veya otomatik bir yazılım çözümü aracılığıyla yapılabilir.

Test sırasında, her birim ana programdan veya arayüzden izole edilir. Birim testleri genellikle geliştirmeden sonra ve dağıtımdan önce gerçekleştirilir, böylece entegrasyon ve erken sorun tespiti kolaylaşır. Bir birimin boyutu veya kapsamı, programlama diline, yazılım uygulamasına ve test hedeflerine göre değişir.

Fonksiyonel test

İşlevsel test, yazılımın tüm gereksinimlere uygunluğunu sağlamak için test edildiği, yazılım geliştirme içinde kullanılan bir test sürecidir. İşlevsel gereksinimlerinde belirtilen tüm gerekli işlevlere sahip olduğundan emin olmak için yazılımı kontrol etmenin bir yoludur.


İşlevsel test, esas olarak, bir yazılım parçasının son kullanıcı veya iş için gerekli olan çıktıyı sağladığını doğrulamak için kullanılır. Tipik olarak, işlevsel test, her bir yazılım işlevinin iş gereksinimlerine göre değerlendirilmesini ve karşılaştırılmasını içerir. Yazılım, ona bazı ilgili girdiler verilerek test edilir, böylece çıktı, temel gereksinimlerine nasıl uyduğu, bunlarla nasıl ilişkili olduğu veya onlardan nasıl farklılaştığını görmek için değerlendirilebilir. Ayrıca işlevsel testler, örneğin navigasyon işlevlerinin gerektiği gibi çalıştığından emin olmak gibi, yazılımın kullanılabilirliğini de kontrol eder.

İnovasyon bülteni
İnovasyonla ilgili en önemli haberleri kaçırmayın. Onları e-posta ile almak için kaydolun.

Gerileme testi

Regresyon testi, yeni sorunların yazılım değişikliklerinin sonucu olup olmadığını belirlemek için kullanılan bir tür yazılım testidir.

Bir değişikliği uygulamadan önce bir program test edilir. Bir değişiklik uygulandıktan sonra, değişikliğin yeni hatalar veya sorunlar yaratıp yaratmadığını veya fiili değişikliğin amaçlanan amacına hizmet edip etmediğini tespit etmek için program seçilen alanlarda yeniden test edilir.


Büyük yazılım uygulamaları için regresyon testi esastır, çünkü bir problemin bir kısmını değiştirmenin uygulamanın farklı bir kısmı için yeni bir problem yaratıp yaratmadığını bilmek genellikle zordur. Örneğin, banka başvuru kredisi formunda yapılan bir değişiklik, aylık işlem raporunun başarısız olmasına neden olabilir. Çoğu durumda, sorunlar ilgisiz görünebilir, ancak aslında uygulama geliştiricileri arasında hayal kırıklığı nedeni olabilirler.

Regresyon testi gerektiren diğer durumlar arasında, belirli değişikliklerin belirlenen bir hedefe ulaşıp ulaşmadığının tespit edilmesi veya sorunsuz bir sürenin ardından yeniden ortaya çıkan sorunlarla ilişkili yeni tehlikelerin test edilmesi yer alır.

Modern regresyon testi, öncelikle mevcut yazılımın anlık görüntülerini alan ve daha sonra belirli bir değişiklik uygulandıktan sonra karşılaştırılan özel ticari test araçları aracılığıyla gerçekleştirilir. İnsan test cihazlarının aynı görevleri otomatik yazılım test cihazları kadar verimli bir şekilde gerçekleştirmesi neredeyse imkansızdır. Bu özellikle bankalar, hastaneler, üretim şirketleri ve büyük perakendeciler gibi büyük BT ortamlarındaki büyük ve karmaşık yazılım uygulamaları için geçerlidir.

Stres testi

Stres testi, yoğun ağ trafiği, işlem yükleme, hız aşırtma, hız aşırtma ve kaynakların yoğun kullanım taleplerinin bir sonucu olarak ortaya çıkabilecek aşırı ve elverişsiz koşullar altında performansının tatmin edici olup olmadığını belirlemek için yazılım veya donanımın test edilmesini ifade eder.

Çoğu sistem normal çalışma koşulları varsayılarak geliştirilmiştir. Bu nedenle, bir sınır aşılsa bile, sistem geliştirme sırasında stres testine tabi tutulursa hatalar ihmal edilebilir düzeydedir.


Stres testi aşağıdaki bağlamlarda kullanılır:

  • Yazılım: Stres testi, yazılımın yetersiz kaynaklar nedeniyle çökmemesini sağlamak için aşırı ağır yükler altında kullanılabilirliği ve hata işlemeyi vurgular. Yazılım stres testi, bir veritabanı yüklenmemiş olsa bile, test sırasında yoğun bir şekilde vurgulanan işlemleri iptal etmek için tanımlanmış işlemlere odaklanır. Stres testi süreci, sistemdeki en zayıf halkayı bulmak için eşzamanlı kullanıcıları normal sistem düzeylerinin ötesine yükler.
  • Donanım: Stres testleri, normal bilgi işlem ortamlarında kararlılık sağlar.
  • Web siteleri: Stres testleri, herhangi bir site işlevselliğinin sınırlarını belirler.
  • CPU: Sistem çökmelerini veya donmalarını test etmek için CPU-yoğun bir program çalıştırarak ağır yüklerle başa çıkıp çıkamayacaklarını belirlemek için aşırı gerilim, düşük gerilim, düşük kilit ve hız kilitlenme gibi değişiklikler kontrol edilir. CPU stres testi aynı zamanda işkence testi olarak da bilinir.

Otomatik Testler

Otomatik test (yazılım testi otomasyonu), testleri otomatik olarak çalıştıran ve ardından gerçek test sonuçlarını beklenen sonuçlarla karşılaştıran özel yazılım araçlarını kullanan bir kod testi yaklaşımıdır.

Otomatik test, Sürekli Teslimat (CD), Sürekli Entegrasyon (CI), DevOps ve DevSecOps'ta önemli bir rol oynar. Otomatik testin ana faydaları şunları içerir:

  • Otomatik test, test sürecini daha verimli hale getirerek geliştiricilerin zamandan ve paradan tasarruf etmesini sağlar.
  • Otomatik testler, hataları manuel testlerden daha verimli bir şekilde tanımlar.
  • Testler otomatikleştirildiğinde, birden çok test aracı paralel olarak uygulanabilir.


Yazılım geliştirmede, bir uygulamanın derleme hatası içermediğinden ve amaçlanan işlevi yerine getirdiğinden emin olmak için oluşturma işlemi sırasında otomatikleştirilmiş testler gerçekleştirmek özellikle yararlıdır.

Yazılım testini otomatikleştirmek için zaman ayırmak, sonuçta bir kod değişikliğinin mevcut işlevselliği bozma riskini azaltarak geliştiricilere zaman kazandıracaktır.


Test, geliştirme sürecinde çok önemli bir aşamadır. Tüm hataların düzeltilmesini ve ürünün, yazılımın veya donanımın amaçlanan performansta veya mümkün olduğunca hedef performansa yakın performans göstermesini sağlar. Manuel test yerine otomatik test, kullanıcı ihtiyaçlarını zamanında ve en az hatayla karşılayan uygun maliyetli yazılımları sürekli olarak sunmak için esastır.

Yazılım geliştirmede kullanılan otomatik test türleri
  • Birim testi: Diğer birimlerle entegrasyonunu doğrulamadan önce, izole bir ortamda tek bir düşük seviyeli programı test edin.
  • Entegrasyon Testi: Birim testleri ve diğer uygulama bileşenleri, birleşik bir varlık olarak test edilir.
  • İşlevsel testler: Bir yazılım sisteminin olması gerektiği gibi davranıp davranmadığını kontrol edin.
  • Performans Testi: Beklenenden daha yüksek yükler altında uygulama sağlamlığını değerlendirin. Performans testleri genellikle darboğazları ortaya çıkarır.
  • Duman Testi: Bir yapının daha fazla teste devam etmek için yeterince kararlı olup olmadığını belirler.
  • Tarayıcı Testi: Yazılım bileşenlerinin çeşitli tarayıcılarla uyumlu olduğunu doğrulayın.

Manuel test, geliştirme sırasında çeşitli zamanlarda hala yapılmaktadır, ancak bu çoğunlukla, yaptıkları değişikliklerin istenen etkiye sahip olup olmadığını hızlı bir şekilde görmek için geliştiriciler veya donanım mühendislerinin kendileri tarafından yapılır.

Ercole Palmeri

İnovasyon bülteni
İnovasyonla ilgili en önemli haberleri kaçırmayın. Onları e-posta ile almak için kaydolun.

Son Makaleler

Çocuklar İçin Boyama Sayfalarının Faydaları - her yaş için sihirli bir dünya

Boyama yoluyla ince motor becerilerini geliştirmek, çocukları yazma gibi daha karmaşık becerilere hazırlar. Renklendirmek…

2 Mayıs 2024

Gelecek Burada: Denizcilik Sektörü Küresel Ekonomide Nasıl Devrim Yaratıyor?

Denizcilik sektörü, 150 milyarlık bir pazara doğru yol alan gerçek bir küresel ekonomik güçtür...

1 Mayıs 2024

Yayıncılar ve OpenAI, Yapay Zeka tarafından işlenen bilgi akışını düzenlemek için anlaşmalar imzaladı

Geçen Pazartesi Financial Times, OpenAI ile bir anlaşma yaptığını duyurdu. FT, birinci sınıf gazeteciliğine lisans veriyor…

Nisan 30 2024

Çevrimiçi Ödemeler: Yayın Hizmetlerinin Sonsuza Kadar Ödemenizi Sağlaması

Milyonlarca insan aylık abonelik ücreti ödeyerek akış hizmetleri için ödeme yapıyor. Yaygın kanaat şu ki…

Nisan 29 2024