Kod kapsamı nedir?
Kod kapsamı, programın kaynak kodunun ne kadar test edildiğini açıklayan bir ölçüdür. Bir dizi test senaryosu tarafından uygulanmayan 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 senaryoları oluşturur.
Çoğu durumda, kod kapsama 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.
Bu eğitimde öğreneceksiniz-
- Kod kapsamı nedir?
- Neden Kod Kapsamı kullanılmalı?
- Kod Kapsamı Yöntemleri
- Bildirim Kapsamı
- Karar Kapsamı
- Şube Kapsamı
- Durum Kapsamı
- Sonlu Durum Makinesi Kapsamı
- Hangi Tür Kod Kapsamı Seçilmeli
- Kod Kapsamı ve İşlevsel Kapsama
- Kod Kapsamı Araçları
- Kod Kapsamı Kullanmanın Avantaj ve Dezavantajları
Neden Kod Kapsamı kullanılmalı?
Kod kapsamını kullanmanın başlıca nedenlerinden bazıları şunlardır:
- Test uygulamasının verimliliğini ölçmenize yardımcı olur
- Nicel bir ölçüm sunar.
- Kaynak kodunun test edilme derecesini tanımlar.
Kod Kapsamı Yöntemleri
Başlıca kod kapsama yöntemleri aşağıdadır
- Bildirim Kapsamı
- Karar Kapsamı
- Şube Kapsamı
- Kapsamı Değiştir
- FSM Kapsamı
Bildirim Kapsamı
İfade Kapsamı , kaynak koddaki tüm çalıştırılabilir ifadelerin en az bir kez yürütüldüğü bir beyaz kutu test tekniğidir. Kaynak kodundaki çalıştırılan ifadelerin sayısının hesaplanması için kullanılır. İfade Kapsamının temel amacı, kaynak koddaki tüm olası yolları, satırları ve ifadeleri kapsamaktır.
İfade kapsamı, test edilen kodun yapısına dayalı bir senaryo türetmek için kullanılır.
Beyaz Kutu Testinde, test uzmanı yazılımın nasıl çalıştığına odaklanır. Başka bir deyişle, test uzmanı, kontrol akış grafikleri veya akış şemaları ile ilgili kaynak kodunun dahili çalışmasına konsantre olacaktır.
Genel olarak herhangi bir yazılımda, kaynak koduna bakarsak, operatörler, işlevler, döngü, istisnai işleyiciler vb. Gibi çok çeşitli öğeler olacaktır. Programın girdisine bağlı olarak, bazı kod ifadeleri çalıştırılamayabilir. . İfade kapsamının amacı, koddaki tüm olası yolları, satırı ve ifadeyi kapsamaktır.
Bunu, ifade kapsamının nasıl hesaplanacağıyla ilgili bir örnekle anlayalım.
Verilen kaynak kodu için İfade Kapsamını hesaplayan senaryo. Burada, her bir senaryo için ifade kapsamının yüzdesini kontrol etmek için iki farklı senaryo alıyoruz.
Kaynak kodu:
Baskılar (int a, int b) {------------ Baskı bir fonksiyondurint sonuç = a + b;Eğer (sonuç> 0)Yazdır ("Pozitif", sonuç)BaşkaYazdır ("Negatif", sonuç)} ----------- Kaynak kodunun sonu
Senaryo 1:
A = 3 ise, B = 9
Sarı renkle işaretlenen ifadeler, senaryoya göre yürütülenlerdir.
Yürütülen ifade sayısı = 5, Toplam ifade sayısı = 7
Bildirim Kapsamı: 5/7 =% 71
Aynı ş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ülenlerdir.
Yürütülen ifadelerin sayısı = 6
Toplam ifade sayısı = 7
Bildirim Kapsamı: 6/7 =% 85
Ancak genel olarak görürseniz, tüm ifadeler 2. senaryo tarafından ele alınmaktadır. Böylece genel ifade kapsamının% 100 olduğu sonucuna varabiliriz.
Bildirim Kapsamı neleri kapsar?
- Kullanılmayan İfadeler
- Ölü Kod
- Kullanılmayan Şubeler
- Eksik İfadeler
Karar Kapsamı
Karar Kapsamı , kaynak kodun her bir mantıksal ifadesinin doğru veya yanlış sonuçlarını bildiren bir beyaz kutu test tekniğidir. Karar kapsamı testinin amacı, olası her karar noktasının her bir dalının en az bir kez yürütüldüğünden emin olarak tüm erişilebilir kaynak kodunu kapsamak ve doğrulamaktır.
Bu kapsamda ifadeler bazen karmaşıklaşabilir. Bu nedenle% 100 kapsama sağlamak çok zordur. Bu nedenle, bu metriği bildirmenin birçok farklı yöntemi vardır. Tüm bu yöntemler, en önemli kombinasyonları kapsamaya odaklanır. Karar kapsamına çok benzer, ancak akışı kontrol etmek için daha iyi hassasiyet sunar.
Karar kapsamı örneği
Aşağıdaki kodu düşünün:
Demo (int a) {Eğer (a> 5)a = a * 3Yazdır (a)}
Senaryo 1:
A'nın değeri 2'dir
Sarı ile vurgulanan kod yürütülecektir. Burada If (a> 5) kararının "Hayır" sonucu kontrol edilir.
Karar Kapsamı =% 50
Senaryo 2:
A'nın değeri 6'dır
Sarı ile vurgulanan kod yürütülecektir. Burada If (a> 5) kararının "Evet" sonucu kontrol edilir.
Karar Kapsamı =% 50
Test durumu | A Değeri | Çıktı | Karar Kapsamı |
1 | 2 | 2 | % 50 |
2 | 6 | 18 | % 50 |
Şube Kapsamı
Şube Kapsamı , bir kod modülünden (deyim veya döngü) her sonucun test edildiği beyaz kutu test yöntemidir. Şube teminatının amacı, her şubeden alınan her karar koşulunun en az bir kez yerine getirilmesini sağlamaktır. Bağımsız kod bölümlerinin kesirlerini ölçmeye ve dalı olmayan bölümleri bulmaya yardımcı olur.
Örneğin, sonuçlar ikiliyse, hem Doğru hem de Yanlış sonuçları test etmeniz gerekir.
Şube Kapsamını hesaplama 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 düşünün
Demo (int a) {Eğer (a> 5)a = a * 3Yazdır (a)}
Şube Kapsamı, koşulsuz şubeyi de dikkate alacaktır
Test durumu | A Değeri | Çıktı | Karar Kapsamı | Şube Kapsamı |
1 | 2 | 2 | % 50 | % 33 |
2 | 6 | 18 | % 50 | % 67 |
Şube teminatının avantajları:
Şube kapsamı Test, aşağıdaki avantajları sunar:
- Koddaki tüm dalları doğrulamanıza izin verir
- Programın çalışmasında herhangi bir anormalliğe yol açmadığından emin olmanıza yardımcı olur
- Şube kapsama yöntemi, ifade 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 nicel bir ölçüsünü bulmanızı sağlar
- Dal kapsamı, Boole ifadelerinin içindeki dalları yok sayar
Durum Kapsamı
Koşul 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 ayrı sonuçları kontrol etmektir. Koşul kapsamı, kontrol akışına karar kapsamından daha iyi hassasiyet sunar. Bu kapsamda, yalnızca mantıksal işlenenlere sahip ifadeler dikkate alınır.
Örneğin, bir ifade, toplam olasılıkları gösteren AND, OR, XOR gibi Boole işlemlerine sahipse.
Koşul kapsamı, tam karar kapsamı konusunda bir garanti vermez.
Koşul Kapsamını hesaplama formülü:
Misal:
Yukarıdaki ifade için 4 olası kombinasyonumuz var
- TT
- FF
- TF
- FT
Aşağıdaki girişi düşünün
X = 3 Y = 4 |
(x |
DOĞRU |
Koşul Kapsamı ¼ =% 25 |
A = 3 B = 4 |
(a> b) |
YANLIŞ |
Sonlu Durum Makinesi Kapsamı
Sonlu durumlu makine kapsamı, kesinlikle en karmaşık kod kapsama yöntemidir. Bunun nedeni, tasarımın davranışı üzerinde çalışmasıdır. Bu kapsama yönteminde, zamana özgü kaç durumun ziyaret edildiğini, geçtiğini aramanız gerekir. Ayrıca, bir sonlu durum makinesine kaç dizinin dahil edildiğini kontrol eder.
Hangi Tür Kod Kapsamı Seçilmeli
Bu kesinlikle vermesi en zor cevaptır. Bir kapsama yöntemi seçmek için, test uzmanının aşağıdakileri kontrol etmesi gerekir:
- test edilen kodda tek veya birden çok keşfedilmemiş kusur var
- potansiyel cezanın maliyeti
- itibar kaybının maliyeti
- kaybedilen satış maliyeti vb.
Kusurların maliyetli üretim hatalarına neden olma olasılığı ne kadar yüksekse, seçmeniz gereken kapsam düzeyi o kadar ciddi olur.
Kod Kapsamı ve İşlevsel Kapsama
Kod kapsamı | Fonksiyonel Kapsama |
Kod kapsamı, kaynak kodun test tezgahınız tarafından ne kadar iyi uygulandığını size söyler. | İşlevsel kapsam, tasarımın işlevselliğinin test tezgahınız tarafından ne kadar iyi karşılandığını ölçer. |
Asla bir tasarım özelliği kullanmayın | Tasarım özelliğini kullanın |
Geliştiriciler tarafından yapıldı | Test Uzmanları Tarafından Yapıldı |
Kod Kapsamı Araçları
İşte, Önemli kod kapsamı Araçlarının bir listesi:
Araç Adı | Açıklama |
Cobertura | Açık kaynak kodlu bir kapsama aracıdır. Bir kod tabanı kullanarak test kapsamını ölçer ve hangi kod satırlarının yürütüldüğünü ve test paketi çalıştığında hangilerinin yürütülmediğini analiz eder. |
Yonca | Clover, yalnızca önceki derlemeden bu yana değiştirilen uygulama kodunu kapsayan testleri çalıştırarak test süresini de azaltır. |
DevPartner | DevPartner, geliştiricilerin Java kodunu Kod Kalitesi ve Karmaşıklığı açısından analiz etmesine olanak tanır. |
Emma | EMMA; sınıf, yöntem, satır ve temel blok kapsamını, birleştirilmiş kaynak dosyası, sınıf ve yöntem seviyelerini destekler. |
Kalistick | Kalistick, kodları farklı perspektiflerle analiz eden üçüncü taraf bir uygulamadır. |
CoView ve CoAnt | Kodlama Yazılımı, ölçümler, sahte nesne oluşturma, kod test edilebilirliği, yol ve şube kapsamı vb. İçin bir kod kapsama aracıdır. |
C ++ için Bullseye | BulseyeCoverage, C ++ ve C için bir kod kapsama aracıdır. |
Sonar | Sonar, kod kalitesini yönetmenize yardımcı olan bir açık kod kapsama aracıdır. |
Kod Kapsamı Kullanmanın Avantajları
- Kod kapsamının nicel bir ölçüsünü değerlendirmek için faydalıdır
- Kapsamı artırmak için ekstra test senaryoları oluşturmanıza olanak tanır
- Bir dizi test senaryosu tarafından uygulanmayan bir programın alanlarını bulmanızı sağlar.
Kod Kapsamı Kullanmanın Dezavantajları
- Tasarımda belirli bir özellik uygulanmadığında bile, kod kapsamı yine de% 100 kapsamı bildirir.
- Kod kapsamı yardımıyla bir özelliğin tüm olası değerlerini test edip etmediğimizi belirlemek mümkün değildir.
- Kod kapsamı, mantığınızı ne kadar ve ne kadar iyi kapladığınızı da söylemiyor
- Belirtilen işlevin uygulanmadığı veya belirtime dahil edilmediği durumlarda, yapı temelli 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.) İfade Kapsamı 2.) Koşul Kapsamı 3) Şube Kapsamı 4) Geçiş Kapsamı 5) FSM Kapsamı
- İfade kapsamı, kaynak koddaki tüm çalıştırılabilir ifadelerin en az bir kez yürütülmesini içerir.
- Karar kapsamı, her Boole 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 durumlu makine kapsamı, kesinlikle en karmaşık kod kapsama yöntemidir
- Bir teminat yöntemi seçmek için, test uzmanının olası cezanın, itibar kaybının, satış kaybının vb. Maliyetini kontrol etmesi gerekir.
- Kod kapsamı, kaynak kodun test tezgahınız tarafından ne kadar iyi uygulandığını söylerken, İşlevsel kapsam, tasarımın işlevselliğinin ne kadar iyi kaplandığını ölçer
- Cobertura, JTest, Clover, Emma, Kalistick birkaç önemli kod kapsama 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