Yazılımda Yol Testi ve Temel Yol Testi (Örneklerle)

⚡ Akıllı Özet

Temel Yol Testi, bir programdaki mantıksal yollardan test senaryoları türeten, kontrol akış grafiği ve döngüsel karmaşıklığı kullanarak minimum bağımsız yol kümesini bulan, beyaz kutu bir tekniktir.

  • 🗺️ Ana düşünce: Test senaryoları, gereksinimler belgesinden ziyade kod yapısından gelir.
  • 🔢 Dört Adım: Kontrol akış grafiğini çizin, döngüsel karmaşıklığı hesaplayın, temel kümesini türetin, her yol için bir test yazın.
  • 📐 Test Durumu Sayısı: Bağımsız yolların sayısı, döngüsel karmaşıklığa eşittir ve bu da objektif bir hedef sağlar.
  • 🔄 Hibrit Yöntem: Dallanma testi ve yol testini birleştirerek minimum test sayısıyla maksimum kapsama alanına ulaşır.
  • Kapsam Garantisi: Temel kümenin yürütülmesi, modüldeki her ifadenin en az bir kez çalıştırılmasını sağlar.
  • ⚠️ Bilinen Limit: Mevcut olan kodları test ettiği için eksik gereksinimleri bulamaz.

Yol Testi Temel Yol Testi

Yazılım Testinde Yol Testi Nedir?

Yol testi, olası tüm yürütülebilir yolları bulmak için bir programın kaynak kodunu kullanmayı içeren yapısal bir test yöntemidir. Bir kod parçasındaki tüm hataların belirlenmesine yardımcı olur. Bu yöntem, bir bilgisayar programı aracılığıyla tüm veya seçilen yolu yürütmek için tasarlanmıştır.

Herhangi bir karmaşık program, birçok olası yürütme yoluna sahiptir. Bunların her birini test etmek hem zor hem de zaman alıcıdır ve çoğu birbiriyle örtüşür. Temel yol testi, her ifadeyi ve her dalı en az bir kez çalıştıran en küçük yol kümesini belirleyerek bu gereksizliği azaltır.

Yazılım Mühendisliğinde Temel Yol Testi

Temel Yol Testi yazılım mühendisliğinde bir Beyaz Box Test yapmak Test senaryolarının program boyunca izlenebilecek akışlara veya mantıksal yollara göre tanımlandığı yöntem. Temel yol testinin amacı, bağımsız yolların sayısını tanımlamaktır; böylece test kapsamını en üst düzeye çıkarmak için gereken test senaryolarının sayısı açıkça tanımlanabilir.

In yazılım MühendisliğiTemel yol testi, bir programdaki tüm olası blokların yürütülmesini içerir ve en az sayıda test senaryosu ile maksimum yol kapsamına ulaşır. Dal testi ve yol testi yöntemlerinin hibrit bir yöntemidir.

Basit bir örnek, fikri somutlaştırır.

Yazılım Mühendisliğinde Temel Yol Testi

Yukarıdaki akış şeması koşullu ifadeler içerdiğinden, kontrol birden fazla yoldan çıkışa ulaşabilir. Bunu sağlamak için üç bağımsız yola ihtiyaç vardır:

  • Yol 1: 1,2,3,5,6, 7
  • Yol 2: 1,2,4,5,6, 7
  • Yol 3: 1, 6, 7

Kontrol Akış Grafiği Nasıl Çizilir?

Temel yol testinin her adımı kontrol akış grafiğine bağlıdır, bu nedenle grafiğin nasıl oluşturulduğu konusunda hassas olmak önemlidir.

  • Düğüm: Hep birlikte yürütülen ve daire şeklinde çizilen bir dizi ifade. Dallanma içermeyen bir dizi ifade tek bir düğümde birleşir.
  • Kenar: Bir düğümden diğerine kontrolün aktarılması, ok şeklinde gösterilir. Kontrolün hareket etmesinin tek yolu kenarlardır.
  • Yüklem düğümü: İki veya daha fazla kenarı olan ve bir koşul içeren bir düğüm. Bunlar karmaşıklık sayısını belirler.
  • Bölge: Kenarlar ve düğümlerle sınırlanmış bir alan. Bölge sayısı artı bir, döngüsel karmaşıklığa eşittir.

İki karar içeren kısa bir modülü ele alalım:

if (a > b) {          // node 1, predicate
    max = a;          // node 2
} else {
    max = b;          // node 3
}
if (max > limit) {    // node 4, predicate
    alert();          // node 5
}
return max;           // node 6

Grafikte 6 düğüm ve 6 kenar vardır, bu da kenar formülüne göre V(G) = 6 – 6 + 2 = 2 sonucunu verir. Yüklem sayımı aynı cevabı daha hızlı verir: 2 karar artı 1, birlikte ele alınan iki daldan geçen 3 bağımsız yola eşittir. Hangisini güvenilir bir şekilde hesaplayabiliyorsanız onu kullanın ve diğeriyle karşılaştırın.

Çoğu hatayı önleyen iki kural. İlk olarak, bileşik bir durum şöyle olabilir: eğer (x > 0 && y > 0) Kısa devre ikinci bir karar oluşturduğu için bir değil, iki yüklem düğümü olarak sayılır. İkincisi, bir döngü kaç kez tekrarlanırsa tekrarlansın bir yüklem düğümü katkısı sağlar.

Temel Yol Testi İçin Adımlar

Temel yol testinde yer alan temel adımlar şunları içerir:

  • Bir kontrol grafiği çizin (farklı program yollarını belirlemek için)
  • Hesaplanmış Siklomatik karmaşıklık (bağımsız yolların sayısını belirleyen ölçümler)
  • Temel bir yol kümesi bulun
  • Oluşturmak test senaryoları her yolu uygulamak

Temel Yol Testinin Avantajları ve Sınırlamaları

Temel Yol Testinin Avantajları

  • Gereksiz testleri azaltmaya yardımcı olur
  • Dikkati program mantığına odaklar
  • Keyfi test senaryosu seçimini analitik bir temelle değiştirir.
  • Bir programdaki her ifadeyi en az bir kez çalıştıracak temel seti çalıştıran test senaryoları

Temel Yol Testinin Sınırlamaları

  • Eksik kodu bulamıyor. Hiç uygulanmamış bir gereksinimin yolu yoktur, bu nedenle onun için hiçbir test oluşturulmaz. Temel yol testi, gereksinim tabanlı testle birlikte yapılmalıdır.
  • Yol sayısı hızla artıyor. İç içe döngüler ve bileşik koşullar karmaşıklığı hızla artırır ve V(G) değeri 20'nin üzerinde olan bir modülü bu şekilde kapsamak pratik olmaktan çıkar.
  • Kapsam, doğruluk anlamına gelmez. Bir yolun yürütülmesi, kodun çalıştığını kanıtlar, ancak doğru cevabı ürettiğini değil. Her testin yine de anlamlı bir doğrulama içermesi gerekir.
  • Veriye bağımlı yollar. Bazı yollara yalnızca belirli girdi kombinasyonlarıyla ulaşılabilir ve bu kombinasyonların oluşturulması zor veya imkansız olabilir.

SSS

Yol testi, her olası yolu çalıştırmayı amaçlar; bu da döngü içeren herhangi bir modülde pratik değildir. Temel yol testi ise yalnızca bağımsız yolları çalıştırır; bu, her ifadeyi ve dalı kapsayan çok daha küçük bir kümedir.

Modülün döngüsel karmaşıklığı tam olarak budur. Eğer V(G) 4 ise, 4 bağımsız yol vardır ve tam dal kapsamı için 4 test durumu gereklidir.

Hayır. Sadece zaten var olan kodu çalıştırır, bu nedenle hiç uygulanmamış bir gereksinim hiçbir yol ve başarısız bir test oluşturmaz. İki teknik birbirini tamamlayıcıdır.

Yapay zeka araçları, belirli dallara ulaşan girdi değerleri üretir; bu da işin en yavaş manuel kısmıdır. Ayrıca, ölü kodu gösteren ulaşılamayan yolları da işaretlerler.

Evet. Statik analiz araçları yıllardır kontrol akış grafikleri ve karmaşıklık değerleri üretiyor ve yapay zeka destekli araçlar artık her bağımsız yol için önerilen test girdilerini de ekliyor.

Bu yazıyı şu şekilde özetleyin: