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.
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 = 9Sarı 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
Benzer şekilde 2. senaryoyu da göreceğiz.
Senaryo 2:
A = -3 ise B = -9
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
Ekstre Kapsamı: 6/7 = %85
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.
Beyanname Kapsamı neleri kapsıyor?
- Kullanılmayan İfadeler
- Ölü Kod
- Kullanılmayan Şubeler
- 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ı ö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
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
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ı Ö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ı 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:
Örnek:
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













