« Tüm yayınlar

Xcover: eBPF ile Enstrümantasyonsuz Test Kapsama Analizi

Xcover, ELF ikili dosyalarını kaynak kodu değiştirmeden eBPF probe'larıyla izleyerek fonksiyonel test kapsama ölçümü yapan dil-agnostik bir araç.

Xcover, geleneksel kapsama araçlarının (Go cover, LLVM cov gibi) aksine kaynak kodu değiştirmeden veya derleme aşamasında enstrümantasyon yapmadan test kapsamı ölçen bir profiler. Araç, çekirdek seviyesinde eBPF probe'ları kullanarak ELF ikili dosyalarındaki fonksiyon çağrılarını doğrudan izliyor; bu sayede dil bağımsız, üretim ortamına uygun ve düşük gecikmeli bir kapsama analizi sunuyor.

Araç bir daemon olarak çalışıyor: profiler başlatılıyor, testler koşuluyor, sonra durdurulup JSON formatında rapor alınıyor. PID, ikili dosya yolu veya regex ile fonksiyon bazlı filtreleme mümkün. Go ikili dosyaları için proje kapsamı (project scope) özelliği, sadece hedef modüle ait fonksiyonları izleyerek standart kütüphane ve bağımlılık gürültüsünü eliyor.

Stripped (sembol tablosu silinmiş) ikili dosyalar için Xcover, Go binary'lerinde .gopclntab bölümünü otomatik olarak kullanıyor; diğer dillerde ise ayrı bir debug dosyası (--debug-path) ile GNU build-id eşleştirmesi yaparak fonksiyon isimlerini geri kazanıyor. Bu özellik, üretim ortamındaki optimize edilmiş binary'ler üzerinde bile anlamlı kapsama raporları üretilmesini sağlıyor. Mühendisler için önemi, CI/CD hatlarında dil bağımsız, kaynak kod dokunmadan entegre edilebilecek tek bir kapsama çözümü sunması.

» KaynakHashnode #10