Kod Kapsamı Eğitimi: Dal, Bildirim ve Karar Testi

Kod kapsamı nedir?

Kod kapsamı, programın kaynak kodunun ne ölçüde test edildiğini tanımlayan bir ölçüdür. Bir dizi test vakası tarafından çalıştırılmayan program alanlarını bulan bir tür beyaz kutu testidir. Ayrıca kapsamı artırmak ve kod kapsamının nicel bir ölçüsünü belirlemek için bazı test vakaları oluşturur.

Çoğu durumda, kod kapsamı sistemi çalışan program hakkında bilgi toplar. Ayrıca test paketinin kod kapsamı hakkında bir rapor oluşturmak için bunu kaynak kodu bilgileriyle birleştirir.

Kod Kapsamı Testini neden kullanmalısınız?

Kod kapsamını kullanmanın bazı temel nedenleri şunlardır:

  • Test uygulamasının verimliliğini ölçmenize yardımcı olur
  • Kantitatif bir ölçüm sunar.
  • Kaynak kodunun test edilme derecesini tanımlar.

Kod Kapsamı Yöntemleri

Aşağıda başlıca kod kapsama yöntemleri verilmiştir

  • Açıklama Kapsamı
  • Karar Kapsamı
  • Şube Kapsamı
  • Toggle Kapsam
  • FSM Kapsamı

Açıklama Kapsamı

Açıklama Kapsamı kaynak kodundaki tüm yürütülebilir ifadelerin en az bir kez yürütüldüğü bir beyaz kutu test tekniğidir. Kaynak kodunda yürütülen ifadelerin sayısının hesaplanması için kullanılır. İfade Kapsamının temel amacı kaynak kodundaki tüm olası yolları, satırları ve ifadeleri kapsamaktır.

İfade kapsamı, test edilen kodun yapısına dayalı olarak senaryo türetmek için kullanılır.

Açıklama Kapsamı

In Beyaz Box Test yapmak, test cihazı yazılımın nasıl çalıştığına odaklanıyor. Başka bir deyişle, test uzmanı, kontrol akış grafikleri veya akış şemalarıyla ilgili kaynak kodunun dahili çalışmasına odaklanacaktır.

Genel olarak herhangi bir yazılımda, kaynak koduna bakarsak, operatörler, işlevler, döngüler, istisnai işleyiciler vb. gibi çok çeşitli öğeler olacaktır. Programa yapılan girdiye bağlı olarak, bazı kod ifadeleri yürütülemeyebilir. . Açıklama kapsamının amacı koddaki tüm olası yolları, satırları ve ifadeleri kapsamaktır.

Bunu bir örnekle, ekstre kapsamının nasıl hesaplanacağını anlayalım.

Verilen kaynak kodu için Bildirim Kapsamını hesaplamaya yönelik senaryo. Burada, her senaryonun beyan kapsamı yüzdesini kontrol etmek için iki farklı senaryo alıyoruz.

Kaynak Kodu:

Prints (int a, int b) {                       ------------  Printsum is a function 
    int result = a+ b; 
    If (result> 0)
    	Print ("Positive", result)
    Else
    	Print ("Negative", result)
    }                                        -----------   End of the source code 

Senaryo 1:

A = 3 ise B = 9

Açıklama Kapsamı

Sarı renkle işaretlenen ifadeler senaryoya göre yürütülen ifadelerdir.

Yürütülen ifade sayısı = 5, Toplam ifade sayısı = 7

Ekstre Kapsamı: 5/7 = %71

Açıklama Kapsamı

Benzer şekilde 2. senaryoyu da göreceğiz.

Senaryo 2:

A = -3 ise B = -9

Açıklama Kapsamı

Sarı renkle işaretlenen ifadeler senaryoya göre yürütülen ifadelerdir.

Yürütülen ifadelerin sayısı = 6

Toplam ifade sayısı = 7

Açıklama Kapsamı

Ekstre Kapsamı: 6/7 = %85

Açıklama Kapsamı

Ancak genel olarak bakıldığında, tüm ifadelerin her iki senaryo tarafından da kapsandığını görüyoruz. Dolayısıyla genel beyan kapsamının %100 olduğu sonucuna varabiliriz.

Açıklama Kapsamı

Beyanname Kapsamı neleri kapsıyor?

  1. Kullanılmayan İfadeler
  2. Ölü Kod
  3. Kullanılmayan Şubeler
  4. Eksik İfadeler

Karar Kapsamı Testi

Karar Kapsamı kaynak kodunun her bir boole ifadesinin doğru veya yanlış sonuçlarını bildiren bir beyaz kutu test tekniğidir. Karar kapsamı testinin amacı, her olası karar noktasının her dalının en az bir kez yürütüldüğünden emin olarak ve kontrol ederek erişilebilir tüm kaynak kodunu kapsamak ve doğrulamaktır.

Bu kapsam türünde ifadeler karmaşık hale gelebilir ve %100 kapsama ulaşmayı zorlaştırabilir. Bu nedenle bu metriği raporlamak için çeşitli yöntemler kullanılır. Bu yöntemler en kritik kombinasyonlara öncelik verir. Karar kapsamına benzer olsa da kontrol akışına daha fazla hassasiyet sağlar.

Karar Kapsamı Testi

Karar kapsamı örneği

Aşağıdaki kodu göz önünde bulundurun:

Demo(int a) {                       
     If (a> 5)
    	a=a*3
     Print (a)
    }

Senaryo 1:

a'nın değeri 2'dir

Karar Kapsamı Testi

Sarı renkle vurgulanan kod yürütülecektir. Burada kararın “Hayır” sonucu If (a>5) işaretlenir.

Karar Kapsamı = %50

Senaryo 2:

a'nın değeri 6'dir

Karar Kapsamı Testi

Sarı renkle vurgulanan kod yürütülecektir. Burada kararın “Evet” sonucu (a>5) ise işaretlenir.

Karar Kapsamı = %50

Test Durumu A'nın değeri Çıktı Karar Kapsamı
1 2 2 50%
2 6 18 50%

Şube Kapsam Testi

Şube Kapsamı her bir kod modülünden (ifade veya döngü) çıkan sonucun test edildiği bir beyaz kutu test yöntemidir. Dal kapsamının amacı, her daldan gelen her karar koşulunun en az bir kez yürütülmesini sağlamaktır. Bağımsız kod segmentlerinin kesirlerini ölçmeye ve dalı olmayan bölümleri bulmaya yardımcı olur.

Örneğin, sonuçlar ikili ise hem Doğru hem de Yanlış sonuçları test etmeniz gerekir.

Şube Kapsamını hesaplamak için formül:

Şube Kapsam Testi

Şube Kapsamı Örneği

Şube kapsamını öğrenmek için daha önce kullanılan aynı örneği ele alalım.

Aşağıdaki kodu göz önünde bulundurun:

Demo(int a) {                       
     If (a> 5)
    	a=a*3
     Print (a)
    }                                       

Şube Kapsam Testi

Şube Kapsamı koşulsuz şubeyi de dikkate alacaktır

Test Durumu A'nın değeri Çıktı Karar Kapsamı Şube Kapsamı
1 2 2 50% 33%
2 6 18 50% 67%

Şube kapsamının avantajları:

Şube Kapsamı Testi aşağıdaki avantajları sunar:

  • Koddaki tüm dalları doğrulamanıza olanak tanır
  • Hiçbir dallanmış durumun programın işleyişinde herhangi bir anormalliğe yol açmamasını sağlamanıza yardımcı olur
  • Şube kapsamı yöntemi, bildirim kapsamı testi nedeniyle ortaya çıkan sorunları ortadan kaldırır
  • Diğer test yöntemleriyle test edilmeyen alanları bulmanızı sağlar
  • Kod kapsamının niceliksel bir ölçüsünü bulmanızı sağlar
  • Dal kapsamı Boole ifadeleri içindeki dalları yok sayar

Durum Kapsama Testi

Durum Kapsamı veya ifade kapsamı, koşullu ifadedeki değişkenleri veya alt ifadeleri test etmek ve değerlendirmek için kullanılan bir test yöntemidir. Koşul kapsamının amacı, her mantıksal koşul için bireysel sonuçları kontrol etmektir. Koşul kapsamı, kontrol akışına karar kapsamına göre daha iyi hassasiyet sunar. Bu kapsamda yalnızca mantıksal işlenenlere sahip ifadeler dikkate alınır.

Örneğin, bir ifadenin toplam olasılıkları gösteren AND, OR, XOR gibi Boolean işlemleri varsa.

Durum kapsamı tam karar kapsamı konusunda bir garanti vermez.

Koşul Kapsamını hesaplamak için formül:

Durum Kapsama Testi

Örnek:

Durum Kapsama Testi

Yukarıdaki ifade için 4 olası kombinasyonumuz var

  • TT
  • FF
  • TF
  • FT

Aşağıdaki girdiyi göz önünde bulundurun

X = 3

Y = 4

(X DOĞRU Durum Kapsamı ¼ = %25
A = 3

B = 4

(a>b) YANLIŞ

Sonlu Durum Makinesi Kapsamı

Sonlu durum makinesi kapsamı kesinlikle en karmaşık kod kapsamı yöntemidir. Bunun nedeni, tasarımın davranışı üzerinde çalışmasıdır. Bu kapsam yönteminde, kaç tane zamana özgü durumun ziyaret edildiğine, iletildiğine bakmanız gerekir. Ayrıca, bir sonlu durum makinesinde kaç tane dizinin yer aldığını da kontrol eder.

Hangi Kod Kapsamı Türü Seçilmeli

Bu kesinlikle verilmesi en zor cevaptır. Bir kapsama yöntemi seçmek için test cihazının, kapsama alanının uygun olup olmadığını kontrol etmesi gerekir.

  • test edilen kodda bir veya daha fazla keşfedilmemiş kusur var
  • olası cezanın maliyeti
  • itibar kaybının maliyeti
  • kaybedilen satışın maliyeti vb.

Kusurların maliyetli üretim hatalarına neden olma olasılığı ne kadar yüksek olursa, seçmeniz gereken kapsam düzeyi de o kadar ciddi olur.

Kod Kapsamı ve İşlevsel Kapsam

Kod kapsamı Fonksiyonel Kapsama
Kod kapsamı, kaynak kodunun test tezgahınız tarafından ne kadar iyi kullanıldığını gösterir. İşlevsel kapsam, tasarımın işlevselliğinin test tezgahınız tarafından ne kadar iyi kapsandığını ölçer.
Asla bir tasarım spesifikasyonu kullanmayın Tasarım spesifikasyonunu kullan
Geliştiriciler tarafından yapıldı Test Uzmanları tarafından yapıldı

Kod Kapsamı Araçları

Burada Önemli kod kapsamı Araçlarının bir listesi bulunmaktadır:

Araç Adı Tanım
Cobertura Açık kaynak kodu kapsama aracıdır. Bir kod tabanını kullanarak test kapsamını ölçer ve test paketi çalıştırıldığında hangi kod satırlarının yürütüldüğünü ve hangilerinin yürütülmediğini analiz eder.
Yonca Clover ayrıca yalnızca önceki derlemeden bu yana değiştirilen uygulama kodunu kapsayan testleri çalıştırarak test süresini azaltır.
Geliştirici Ortağı DevPartner, geliştiricilerin analiz etmesine olanak tanır Java Kod Kalitesi ve Karmaşıklığı için kod.
Emma EMMA sınıf, yöntem, satır ve temel blok kapsamını, toplu kaynak dosyasını, sınıfı ve yöntem düzeylerini destekler.
Kalistik Kalistick, kodları farklı bakış açılarıyla analiz eden üçüncü parti bir uygulamadır.
CoView ve CoAnt Kodlama Yazılımı, ölçümler, sahte nesne oluşturma, kod test edilebilirliği, yol ve dal kapsamı vb. için bir kod kapsamı aracıdır.
Hedef tahtası C++ BulseyeCoverage, aşağıdakiler için bir kod kapsama aracıdır: C++ ve C.
Sonar Sonar, kod kalitesini yönetmenize yardımcı olan bir açık kod kapsama aracıdır.

Kod Kapsamını Kullanmanın Avantajları ve Dezavantajları

Kod Kapsamı Avantajları Kod Kapsamının Dezavantajları
Kod kapsamının niceliksel bir ölçüsünü değerlendirmeye yardımcı olur Tasarımda belirli bir özellik uygulanmasa bile kod kapsamı yine de %100 kapsam bildirir.
Kapsamı artırmak için ekstra test senaryoları oluşturmanıza olanak tanır Bir özelliğin olası tüm değerlerini kod kapsamı yardımıyla test edip etmediğimizi belirlemek mümkün değildir.
Bir programın bir dizi test senaryosu tarafından uygulanmayan alanlarını bulmanızı sağlar. Kod kapsamı aynı zamanda mantığınızı ne kadar ve ne kadar iyi kapsadığınızı da söylemez.
Belirtilen işlevin uygulanmaması veya spesifikasyona dahil edilmemesi durumunda yapı tabanlı teknikler bu sorunu bulamaz.

ÖZET

  • Kod kapsamı, programın kaynak kodunun test edilme derecesini açıklayan bir ölçüdür
  • Test uygulamasının verimliliğini ölçmenize yardımcı olur
  • Beş Kod Kapsamı yöntemi şunlardır: 1.) Ekstre Kapsamı 2.) Durum Kapsamı 3) Branş Kapsamı 4) Toggle Kapsam 5) FSM Kapsamı
  • İfade kapsamı, kaynak kodundaki tüm yürütülebilir ifadelerin en az bir kez yürütülmesini içerir
  • Karar kapsamı, her Boolean ifadesinin doğru veya yanlış sonuçlarını bildirir
  • Şube kapsamında bir kod modülünden elde edilen her sonuç test edilir
  • Koşullu, koşullu ifadedeki değişkenlerin veya alt ifadelerin nasıl değerlendirildiğini ortaya çıkaracaktır
  • Sonlu durum makinesi kapsamı, kesinlikle en karmaşık kod kapsamı yöntemi türüdür
  • Bir kapsam yöntemi seçmek için test uzmanının potansiyel cezanın, itibar kaybının, satış kaybının vb. maliyetini kontrol etmesi gerekir.
  • Kod kapsamı, kaynak kodunun test tezgahınız tarafından ne kadar iyi kullanıldığını gösterirken, İşlevsel kapsam, tasarımın işlevselliğinin ne kadar iyi kapsandığını ölçer.
  • Cobertura, JTest, Clover, Emma, ​​Kalistick birkaç önemli kod kapsamı aracıdır
  • Kod Kapsamı, kapsamı artırmak için ekstra test senaryoları oluşturmanıza olanak tanır
  • Kod Kapsamı, bir özelliğin tüm olası değerlerini test edip etmediğimizi belirlemenize yardımcı olmaz

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