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.
A > 5).(A > 5) VE (B < 10))Sıradan testler sadece "kod çalıştı mı?" sorusuna yanıt verirken, MC/DC daha derine iner:
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.
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
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.
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:
Bu nedenle verilen testler ile karar ifadesi için %100 MC/DC kapsaması sağlanmış olur.
Henüz Tartışma Girilmemiştir
"Değiştirilmiş Koşul/Karar Kapsama (MC/DC)" maddesi için tartışma başlatın
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.