Döngüsel Karmaşıklığı anlamak için önce anlayalım -
Yazılım Ölçütü nedir?
Ölçüm, bir ürünün / sürecin bir özelliğinin boyutunun / boyutunun / kapasitesinin nicel göstergesidir. Yazılım ölçüsü, bir yazılım sisteminin Maliyet, Kalite, Boyut ve Program açısından sahip olduğu bir niteliğin nicel bir ölçüsü olarak tanımlanır.
Misal-
Önlem - Hata SayısıMetrikler - Kişi başına bulunan Hata Sayısı
Bu eğitimde öğreneceksiniz-
- Yazılım Ölçütü nedir?
- Siklomatik Karmaşıklık nedir?
- Bir program için akış grafiği gösterimi:
- Siklomatik Karmaşıklık Nasıl Hesaplanır
- Siklomatik karmaşıklığın özellikleri:
- Bu metrik, yazılım testi için nasıl yararlıdır?
- V (G) hakkında daha fazlası:
- Siklomatik Karmaşıklık hesaplaması için araçlar:
- Siklomatik Karmaşıklığın Kullanımları:
Yazılım Testinde Döngüsel Karmaşıklık
Yazılım Testinde Döngüsel Karmaşıklık , bir yazılım programının karmaşıklığını ölçmek için kullanılan bir test metriğidir. Bir yazılım programının kaynak kodundaki bağımsız yolların nicel bir ölçüsüdür. Döngüsel karmaşıklık, kontrol akış grafikleri kullanılarak veya bir yazılım programı içindeki işlevler, modüller, yöntemler veya sınıflarla ilgili olarak hesaplanabilir.
Bağımsız yol, daha önce başka herhangi bir yolda geçilmemiş en az bir kenarı olan bir yol olarak tanımlanır.
Bu metrik, 1976'da Thomas J. McCabe tarafından geliştirilmiştir ve programın bir kontrol akışı temsiline dayanmaktadır. Kontrol akışı, bir programı Düğümler ve Kenardan oluşan bir grafik olarak gösterir.
Grafikte, Düğümler işleme görevlerini temsil ederken, kenarlar düğümler arasındaki kontrol akışını temsil eder.
Bir program için akış grafiği gösterimi:
Bir programın Akış Grafiği gösterimi, kenarlardan bağlanan birkaç düğümü tanımlar. Aşağıda if-else, While, until ve normal akış sırası gibi ifadeler için Akış diyagramları bulunmaktadır.
Siklomatik Karmaşıklık Nasıl Hesaplanır
Matematiksel gösterim:
Matematiksel olarak, grafik diyagramı aracılığıyla bağımsız yollar kümesidir. Programın Kod karmaşıklığı aşağıdaki formül kullanılarak tanımlanabilir -
V (G) = E - N + 2
Nerede,
E - Kenar sayısı
N - Düğüm Sayısı
V (G) = P + 1
P = Tahmin düğümlerinin sayısı (koşul içeren düğüm)
Misal -
i = 0;n = 4; // N-Grafikte bulunan düğüm sayısıwhile (iBu program için akış grafiği olacak
Matematiksel hesaplama,
- V (G) = 9 - 7 + 2 = 4
- V (G) = 3 + 1 = 4 (Koşul düğümleri 1,2 ve 3 düğümdür)
- Temel Küme - Bir programın olası yürütme yolu kümesi
- 1, 7
- 1, 2, 6, 1, 7
- 1, 2, 3, 4, 5, 2, 6, 1, 7
- 1, 2, 3, 5, 2, 6, 1, 7
Siklomatik karmaşıklığın özellikleri:
Aşağıdakiler, Siklomatik karmaşıklığın özellikleridir:
- V (G), grafikteki maksimum bağımsız yol sayısıdır
- V (G)> = 1
- V (G) = 1 ise G'nin bir yolu olacaktır
- Karmaşıklığı 10'a indirin
Bu metrik, yazılım testi için nasıl yararlıdır?
Temel Yol testi, Beyaz kutu tekniğinden biridir ve test sırasında en az bir ifadenin yürütülmesini garanti eder. Program boyunca doğrusal olarak bağımsız her yolu kontrol eder, bu da sayı test durumlarının programın döngüsel karmaşıklığına eşdeğer olacağı anlamına gelir.
Bu metrik, Siklomatik karmaşıklığın (M) - özelliklerinden dolayı kullanışlıdır -
- M, dal kapsamına ulaşmak için test senaryolarının sayısı olabilir (Üst Sınır)
- M, grafikler boyunca yol sayısı olabilir. (Alt sınır)
Bu örneği düşünün -
Eğer (Koşul 1)İfade 1Başkaİfade 2Eğer (Koşul 2)Bildirim 3BaşkaBildirim 4Bu program için Döngüsel Karmaşıklık 8-7 + 2 = 3 olacaktır.
Karmaşıklık 3 olarak hesaplandığından, yukarıdaki örnekte tam yol kapsamı için üç test senaryosu gereklidir.
İzlenecek adımlar:
Döngüsel karmaşıklığın hesaplanması ve test senaryolarının tasarımı için aşağıdaki adımlar izlenmelidir.
Adım 1 - Koddan düğümler ve kenarlar içeren grafiğin oluşturulması
Adım 2 - Bağımsız yolların belirlenmesi
Adım 3 - Siklomatik Karmaşıklık Hesaplaması
Adım 4 - Test Durumlarının Tasarımı
Temel set oluşturulduktan sonra, tüm yolları yürütmek için TEST VAKALARI yazılmalıdır.
V (G) hakkında daha fazlası:
Program küçükse siklomatik karmaşıklık manuel olarak hesaplanabilir. Program çok karmaşıksa, bu daha fazla akış grafiği içerdiğinden, otomatik araçların kullanılması gerekir. Karmaşıklık sayısına bağlı olarak, ekip, önlem için alınması gereken eylemler hakkında karar verebilir.
Aşağıdaki tablo, karmaşıklık sayısı ve v (G) 'nin karşılık gelen anlamı hakkında genel bilgi vermektedir:
Karmaşıklık Numarası Anlam 1-10 Yapılandırılmış ve iyi yazılmış kod Yüksek Test Edilebilirlik Maliyet ve Çaba daha azdır 10-20 Karmaşık Kod Orta Test Edilebilirlik Maliyet ve çaba Orta 20-40 Çok karmaşık Kod Düşük Test Edilebilirlik Maliyet ve Çaba yüksek > 40 Hiç test edilemez Çok yüksek Maliyet ve Çaba Siklomatik Karmaşıklık hesaplaması için araçlar:
Uygulamanın karmaşıklığını belirlemek için birçok araç mevcuttur. Belirli teknolojiler için bazı karmaşıklık hesaplama araçları kullanılır. Karmaşıklık, bir programdaki karar noktalarının sayısına göre bulunabilir. Karar noktaları, bir kaynak kodda if, for, for-each, while, do, catch, case ifadeleridir.
Araçlara örnekler:
- OCLint - C ve İlgili Diller için statik kod analizörü
- Yansıtıcı Eklenti - .NET derlemeleri için kod ölçümleri
- GMetrics - Java ile ilgili uygulamalarda ölçümleri bulun
Siklomatik Karmaşıklığın Kullanımları:
Siklomatik Karmaşıklığın çok yararlı olduğu kanıtlanabilir
- Geliştiricilerin ve test uzmanlarının bağımsız yol yürütmelerini belirlemelerine yardımcı olur
- Geliştiriciler, tüm yolların en az bir kez test edildiğinden emin olabilirler
- Açığa çıkarılan yollara daha fazla odaklanmamıza yardımcı olur
- Yazılım Mühendisliğinde kod kapsamını iyileştirin
- Uygulama veya programla ilişkili riski değerlendirin
- Döngünün başlarında bu ölçümleri kullanmak programın daha fazla riskini azaltır
Sonuç:
Siklomatik Karmaşıklık, yapılandırılmış veya Beyaz Kutu Testi için yararlı olan bir yazılım metriğidir. Esas olarak bir programın karmaşıklığını değerlendirmek için kullanılır. Karar noktaları daha fazlaysa, programın karmaşıklığı daha fazladır. Program yüksek karmaşıklık numarasına sahipse, hata olasılığı yüksektir ve bakım ve sorun giderme için daha fazla süre vardır.