Değiştirilmiş Koşul/Karar Kapsama (MC/DC)

fav gif
Kaydet
Alıntıla
kure star outline

Değiştirilmiş Koşul/Karar Kapsama (MC/DC), karmaşık mantıksal kararlar içeren yazılımlarda, her bir parçanın sistemin sonucunu gerçekten etkileyip etkilemediğini kontrol eden gelişmiş bir test ölçütüdür. Özellikle havacılık ve otomotiv gibi kritik sistemlerde, yazılımın mantıksal hatadan arınmış olduğunu kanıtlamak için kullanılır.


Yazılımda kararlar genellikle "Eğer A ve B doğruysa, X işlemini yap" gibi ifadelerle (if, while) kurulur. MC/DC'nin özü, bir karar içerisindeki her bir koşulun (örneğin sadece A'nın), diğer tüm koşullar sabit tutulduğunda karar sonucunu (X işleminin yapılıp yapılmamasını) tek başına değiştirebildiğini göstermektir.

Karar ve Koşul Farkı

  • Koşul (Condition): Mantıksal bir operatör içermeyen en küçük birimdir (Örn: A > 5).
  • Karar (Decision): Birden fazla koşulun mantıksal operatörlerle (VE, VEYA) birleşmiş halidir (Örn: (A > 5) VE (B < 10))

Amaç

Sıradan testler sadece "kod çalıştı mı?" sorusuna yanıt verirken, MC/DC daha derine iner:

  • Bağımsız Etki: Her bir koşulun (A, B, C...) karar sonucunu tek başına "evet"ten "hayır"a çevirebildiği kanıtlanır.
  • Gizli Hatalar: Kodda hiç çalışmayan veya mantıksal olarak gereksiz duran (dead code) kısımları ortaya çıkarır.
  • Verimlilik: Tüm olasılıkları test etmek yerine (ki bu binlerce test demektir), sadece en kritik kombinasyonlara odaklanarak test sayısını azaltır.

Analizin Koda Uygulanması

MC/DC uygulamasında her koşul için en az bir test çifti tanımlanır. Bu test çiftlerinde diğer koşullar sabit tutulur, yalnızca incelenen koşulun değeri değiştirilir ve bu değişikliğin karar sonucunu etkilediği gösterilir. Uygulama genel olarak şu adımlardan oluşur: birden fazla koşul içeren karar ifadelerinin belirlenmesi, her karar ifadesindeki koşulların ayrıştırılması, her koşul için bağımsız etkiyi gösterecek test çiftlerinin oluşturulması ve testlerin çalıştırılarak kapsama durumunun analiz edilmesi.

Test sayısı

Bir karar ifadesinde n adet koşul varsa, tüm olasılıkları denemek için 2n adet test gerekir (3 koşul için 8 test gibi). Ancak MC/DC, akıllıca seçilmiş testlerle bu sayıyı doğrusal bir seviyeye, yani genellikle n + 1 test durumuna indirir. Bu, test maliyetini düşürürken güvenlikten ödün vermemek hedefiyle geliştirilen bir sistemdir.

Test Sayısı Tablosu

Araç desteği

Yapısal kapsama analizinde, testler sırasında kapsama bilgisinin toplanabilmesi için kaynak koda izleme (enstrümantasyon) eklenir. Bu sayede ifade, karar ve MC/DC seviyelerinde kapsama ölçümü yapılabilir. Bu kapsama türlerini destekleyen bazı yazılımlar, test yürütmeleri sonrasında kapsanmayan koşulları ve kararları raporlayabilmektedir.

Yazılımsal Örnek

Aşağıdaki örnek, üç koşullu bir karar ifadesi üzerinde MC/DC’nin nasıl sağlandığını göstermektedir:

Kod Örneği (Hüsnü Umut Okur)

Bu karar ifadesinde üç ayrı koşul bulunmaktadır: A, B ve C. Karar sonucu, bu koşulların mantıksal birleşimine bağlıdır. MC/DC kapsamında her bir koşulun, diğer koşullar sabit tutulduğunda karar sonucunu bağımsız olarak etkilediği gösterilmelidir. Bu amaçla aşağıdaki test durumları kullanılabilir:

Test Karar Durumu Tablosu

Bu test kümesi kullanılarak:

  • A koşulu, diğer koşullar sabitken değiştirildiğinde karar sonucunu etkilemektedir.
  • B koşulu, diğer koşullar sabitken değiştirildiğinde karar sonucunu etkilemektedir.
  • C koşulu, diğer koşullar sabitken değiştirildiğinde karar sonucunu etkilemektedir.

Bu nedenle verilen testler ile karar ifadesi için %100 MC/DC kapsaması sağlanmış olur.

Sen de Değerlendir!

0 Değerlendirme

Yazar Bilgileri

Avatar
YazarHüsnü Umut Okur26 Aralık 2025 08:21

Etiketler

Tartışmalar

Henüz Tartışma Girilmemiştir

"Değiştirilmiş Koşul/Karar Kapsama (MC/DC)" maddesi için tartışma başlatın

Tartışmaları Görüntüle

İçindekiler

  • Karar ve Koşul Farkı

  • Amaç

  • Analizin Koda Uygulanması

  • Test sayısı

  • Araç desteği

  • Yazılımsal Örnek

Bu madde yapay zeka desteği ile üretilmiştir.

KÜRE'ye Sor