Yazılım Testlerinde Test Kapsamı: Nasıl Ölçülür?

⚡ Akıllı Özet

Yazılım testinde test kapsamı, bir dizi testin bir uygulamanın ne kadarını gerçekten çalıştırdığını ölçer. Test edilmemiş gereksinimleri, kod yollarını ve riskleri ortaya çıkararak ekiplerin hedefli test durumları eklemesine ve ölçülebilir bir güvenle sürüm yayınlamasına olanak tanır.

  • 🎯 Tanım: Test kapsamı raporları, mevcut testlerin hangi gereksinimleri, özellikleri ve kod yollarını zaten kapsadığını gösterir.
  • 🧭 Türleri: İfade, dallanma, koşul, yol, gereksinimler ve risk kapsamı, her biri farklı bir soruyu yanıtlar.
  • 🇧🇷 Code vs Test: Code Kapsama alanı, yürütülen kaynak kod satırlarını ölçerken, test kapsamı ise genel test planını ölçer.
  • 🧮 formül: Tamamlanan satır sayısını toplam satır sayısına bölün, ardından yüzdeyi bulmak için 100 ile çarpın.
  • Teknikler: Sınır değer analizi, karar tabloları ve durum geçiş testleri, paket içeriğini şişirmeden kapsamı genişletir.
  • 📈 Optimizasyon: Modülleri risk düzeyine göre sıralayın, regresyon test paketini otomatikleştirin ve her sprintte kapsama eğilimini gözden geçirin.
  • 🤖 Yapay Zeka Yardımı: Yapay zeka araçları eksik birim testlerini oluşturur ve test edilmemiş yolları üretim riski açısından sıralar.

Test Kapsamı Nedir?

Test kapsamı, Yazılım Testinde bir dizi test tarafından gerçekleştirilen test miktarını ölçen bir ölçüm olarak tanımlanır. Koşullu ifadelerin hangi dallarının alındığını belirlemek için test paketini çalıştırırken programın hangi bölümlerinin yürütüldüğüne ilişkin bilgilerin toplanmasını içerecektir.

Basit bir ifadeyle testlerinizin kodunuzu test ettiğinden veya testi çalıştırarak kodunuzun ne kadarını çalıştırdığınızdan emin olmak için kullanılan bir tekniktir.

Test Kapsamı Ne İşe Yarar?

Devam eden bir projede, test kapsamı dört pratik faaliyeti destekler:

  • Bir dizi test senaryosu tarafından uygulanmayan bir gereksinimin alanını bulma
  • Kapsamı artırmak için ek test senaryoları oluşturmaya yardımcı olur
  • Kalite kontrolü için dolaylı bir yöntem olan test kapsamının niceliksel bir ölçüsünün belirlenmesi
  • Kapsamı arttırmayan anlamsız test senaryolarının belirlenmesi

Yazılım Mühendisliğinde Test Kapsamının Faydaları

Bu faaliyetler somut mühendislik faydalarına dönüşüyor.

  • Testin kalitesini garanti edebilir
  • Sürüm veya düzeltme için kodun hangi bölümlerine gerçekten dokunulduğunun belirlenmesine yardımcı olabilir
  • Uygulamanızda test edilmemiş tüm karar noktalarını ve yolları belirleyebilir, bu da test kapsamınızı artırmanıza olanak tanır.
  • Önlemek kusur kaçak
  • Zaman, kapsam ve maliyet kontrol altında tutulabilir
  • Proje yaşam döngüsünün erken bir aşamasında hataların önlenmesi
  • Gereksinimlerdeki boşluklar, test senaryoları ve birim düzeyindeki ve kod düzeyindeki kusurlar kolay bir şekilde bulunabilir

Test Kapsamı Türleri

Kapsama alanı asla tek bir rakamdan ibaret değildir. Takımlar tracBirden fazla türü aynı anda görmek mümkün çünkü her biri aynı soru setine dair farklı bir soruyu yanıtlıyor. Aşağıdaki tablo, en sık karşılaştığınız türleri gruplandırıyor.

Kapsam Türü Ne Ölçer? En İyi Kullanım İçin
Beyan (satır) kapsamı Çalıştırılabilir satırlar en az bir kez çalıştırılır. Birim testleri ve eski kod denetimleri
Şube veya karar kapsamı Her kararın doğru ve yanlış sonucu Koşullu ve doğrulama mantığı
Koşul kapsamı Her bir mantıksal alt ifade, doğru ve yanlış olarak değerlendirilebilir. Bileşik VE veya VEYA ifadeleri
Yol kapsamı Bir modül üzerinden izlenen benzersiz rotalar Güvenlik açısından kritik ve finansal akışlar
İşlev kapsamı Testler tarafından çağrılan fonksiyonlar veya metotlar API ve servis katmanları
Gereksinim kapsamı Gereksinimler en az bir testle eşleştirildi. Kabul ve uzlaşmatracnihai onay
Risk kapsamı Belirlenen yüksek riskli alanlarda tatbikat yapıldı. Kısa salınım döngüleri

İlk beş tür, kod düzeyindeki ölçümlerdir ve şunlara aittir: beyaz kutu testiGereksinimler ve risk kapsamı ise test planı düzeyinde yer almaktadır.

Arasındaki Temel Farklar Nelerdir? Code Kapsam ve Test Kapsamı?

Code kapsama ve test kapsamı, uygulama kodunuzun kalitesini değerlendirmenize olanak tanıyan ölçüm teknikleridir.

Bu kapsama yöntemlerinin kabinleri arasındaki bazı kritik farkları burada bulabilirsiniz:

Parametreler Code Kapsam Test kapsamı
Tanım Code Uygulama kodu, uygulama çalışırken test edildiğinde kullanılan "kapsama" terimi. Test kapsamı genel test planı anlamına gelir.
Gol Code Kapsama metrikleri, ekibin otomatik testlerini izlemesine yardımcı olabilir. Test kapsamında, bir uygulamanın yazılı kodlamasının hangi düzeyde test edildiğine dair ayrıntılar verilmektedir.
alttipleri Code Kapsam, ifade kapsamı, koşul kapsamı, dal kapsamı gibi alt türlere ayrılmıştır. Toggle kapsamı, FSM kapsamı. Test kapsamı yönteminin alt türü yok.

Test Kapsamı Formülü

Test kapsamını hesaplamak için aşağıdaki adımları uygulamanız gerekir:

) 1 Adım saymak YYazılımda yer alan toplam kod satırı sayısı. test yapmak

) 2 Adım saymak XŞu anda tüm test senaryolarının çalıştırdığı kod satırı sayısı.

Şimdi (X bölü Y) değerini 100 ile çarpmanız gerekiyor. Bu hesaplamanın sonucu test kapsamı yüzdesini verir.

Örneğin:

Bir sistem bileşenindeki kod satırı sayısı 500 ve mevcut tüm test senaryolarında yürütülen kod satırı sayısı 50 ise, test kapsamınız şu şekildedir:

(50 / 500) * 100 = 10%   // executed lines divided by total lines

Test Kapsamı Örnekleri

Aşağıdaki örneklerin de gösterdiği gibi, yüzdelik oran tek başına hiçbir zaman hikayenin tamamını anlatmaz.

Örnek 1:

Örneğin, test etmek istediğiniz ürün "bıçak" ise, sebze veya meyveleri doğru bir şekilde kesip kesmediğini kontrol etmeye odaklanmanız gerekir. Bununla birlikte, kullanıcının bıçağı rahatça kullanabilmesi gibi başka hususlara da dikkat etmelisiniz.

Örnek 2:

Örneğin, not defteri uygulamasını kontrol etmek istiyorsanız, temel özelliklerini kontrol etmek şarttır. Ancak, not defteri uygulamasının diğer uygulamalarla birlikte beklendiği gibi çalışması, kullanıcının uygulamanın kullanımını anlaması, kullanıcının alışılmadık bir şey yapmaya çalıştığında çökmemesi gibi diğer yönleri de ele almanız gerekir.

Test Kapsama Teknikleri

Her iki örnek de aynı sonuca işaret ediyor: Kapsama hedefine ulaşmak, daha fazla test yazmaktan ziyade doğru test tasarım tekniğini seçmeye daha çok bağlıdır. Aşağıdaki teknikler, kapsama alanını genişletirken aynı zamanda test tasarımını da optimize eder.ping Süit küçük.

  • Sınır değer analizi: Hataların en yoğun olduğu her geçerli aralığın uç noktalarındaki girdileri seçer. Bkz. sınır değer analizi Üzerinde çalışılan vakalar için.
  • Eşdeğerlik bölümlendirmesi: Uygulamanın aynı şekilde ele aldığı girdileri gruplandırır, böylece tek bir örnek, bir değer sınıfının tamamını güvenle temsil edebilir.
  • Karar tablosu testi: Tek bir tablo içerisinde koşulların ve beklenen sonuçlarının kombinasyonlarını kapsar.
  • Durum geçiş testi: Uygulama durumları arasındaki her geçerli ve geçersiz hamleyi test eder.
  • Temel yol testi: Kontrol akış grafiğinden en az sayıda bağımsız yol kümesini türetir.
  • Risk tabanlı test: Özellikleri işletme üzerindeki etkilerine göre sıralar ve en yüksek riskli olanları ilk önce ele alır.
  • Keşif testi: Senaryolu davaların ve haber raporlarının asla ortaya koymadığı boşlukları gün yüzüne çıkarıyor.

Test Kapsamı Nasıl Sağlanabilir?

Teknikler seçildikten sonra, dört farklı yöntemle kapsama alanı sağlanır.

  • Test kapsamı, emsal incelemeleri, denetimler ve izlenecek yol gibi statik inceleme teknikleri kullanılarak yapılabilir.
  • Geçici kusurları yürütülebilir test senaryolarına dönüştürerek
  • Kod düzeyinde veya birim test düzeyinde, otomatik kod kapsamı veya birim test kapsamı araçları kullanılarak test kapsamı elde edilebilir.
  • Fonksiyonel test kapsamı, uygun test yönetimi araçlarının yardımıyla yapılabilir.

Test Kapsamını Nasıl İyileştirebilirsiniz?

Kapsama alanını oluşturmak başlangıç ​​noktasıdır; bunu artırmak ise tekrarlanabilir bir rutindir. Her sürüm döngüsünün başında bu sırayı izleyin.

  1. Mevcut sayıyı temel alın. Kapsama raporunu çalıştırın ve açıklama, dal ve gereksinim kapsama oranlarını ayrı ayrı kaydedin; böylece eksiklikler proje genelindeki ortalamanın içinde gizlenmek yerine her modül için ayrı ayrı görünür kalır.
  2. Testleri gereksinimlerle eşleştirin. Bir Yapı tracHer gereksinimi en az bir test senaryosuna bağlayan bir yetenek tablosu. Boş olan her satır, şüphe değil, doğrulanmış bir eksikliği gösterir.
  3. Modülleri risk düzeyine göre sıralayın. Ödeme, kimlik doğrulama ve veri taşıma mantığı, statik bir yardım ekranından çok daha kapsamlı bir açıklamayı hak ediyor; bu nedenle bütçeyi, başarısızlığın en çok zarar vereceği yerlere harcayın.
  4. Olumsuz ve uç durumları ekleyin. Boş girdiler, aşırı büyük değerler, ağ zaman aşımı ve izin hataları, normal çalışma senaryosu testlerinin asla dokunmadığı dallara ulaşır.
  5. Test seviyelerini üst üste yerleştirin. Birleştirmek birim testi, entegrasyon testiVe uçtan uca kontroller, çünkü her seviye diğerlerinin yapısal olarak kapsayamadığı şeyleri kapsar.
  6. Regresyon test paketini otomatikleştirin. Promostabil vakaları içine otomasyon testi ve onları içeride uygulayın CI/CD ardışık düzeni Her commit işleminden sonra.
  7. Gereksiz vakaları kapatın. Ek bir kapsanmamış satır eklemeden yürütme süresini dakikalarca uzatan yinelenen testleri silin.
  8. RevHer sprintte trendi takip edin. Track kapsama alanı yanında kusur yoğunluğuDüz yüzey kaplamasına karşı artan sızıntı, kör noktanın erken bir uyarı işaretidir.

⚠️Uyarı: Yüzde 100'ü hedef olarak görmeyin. Güçlü doğrulamalar içeren yüzde 85'lik bir test paketi, herhangi bir sonucu doğrulamadan kod çalıştıran yüzde 95'lik yüzeysel kontrollerden çok daha iyi bir sürüm koruması sağlar.

Test Kapsamının Dezavantajları

Teminatlar değerli olmaya devam ediyor, ancak herhangi bir yüzde bildirmeden önce belirtilmesi gereken sınırlamaları da beraberinde getiriyor.

  • Otomatikleştirilecek herhangi bir araç olmadığından test kapsamındaki görevlerin çoğu manueldir. Bu nedenle gereksinimleri analiz etmek ve test senaryoları oluşturmak çok çaba gerektirir.
  • Test kapsamı, özellikleri saymanıza ve ardından çeşitli testlere göre ölçüm yapmanıza olanak tanır. Ancak yargılama hatalarına her zaman yer vardır.

SSS

Çoğu ekip, %70 ila %80'i pratik bir hedef olarak görür ve güvenlik açısından kritik modüller için %90 veya daha yüksek bir oran belirler. %100'ü hedeflemek nadiren çabaya değer. Testleri kod tabanına eşit olarak dağıtmak yerine, yüksek riskli mantıkta derinlemesine test yapmaya öncelik verin.

Hayır. Tam kapsamlı test, her bir öğenin çalıştığını kanıtlar, ancak her değerin, gereksinimin veya kullanıcı yolculuğunun doğrulandığını değil. Eksik gereksinimler, zayıf doğrulamalar ve yavaş yanıt süreleri gibi işlevsel olmayan hatalar, %100 raporlama yapan bir test paketinin gözünden kaçabilir.

Kapsama raporu, dosya başına kapsanan ve kapsanmayan satırları, dalları ve fonksiyonları, modül ve proje bazında toplanmış yüzdelerle birlikte listeler. Bu tür araçlar şunları içerir: JaCoCo Ayrıca kısmen örtülmüş dalları da işaretleyin; bunlar genellikle kapatılması en hızlı olan boşluklardır.

Yapay zeka, test edilmemiş yüksek riskli yolları belirlemek için kaynak kodunu, yürütme geçmişini ve hata verilerini analiz eder ve ardından bunları kapatacak senaryolar önerir. Ayrıca, hangi testlerin önce çalıştırılacağını sıralayarak, kapsamdan ödün vermeden işlem hattındaki geri bildirimi kısaltır.

Evet. Şunlar gibi araçlar: açık mavi Açıkta kalan mantık için otomatik olarak birim testleri yazılır ve üretken modeller, düz dildeki gereksinimleri yürütülebilir durumlara dönüştürür. Üretilen doğrulamalar anlamlı davranışları kontrol etmeden geçebileceğinden, insan incelemesi yine de önemlidir.

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