Emma, Cobertura ve Clover gibi kod kapsamı araçları, kodunuzu düzenleyecek ve bir takım testler yaparak hangi bölümlerinin çağrıldığını kaydedecektir. Bu çok kullanışlıdır ve geliştirme sürecinizin ayrılmaz bir parçası olmalıdır. Test takımınızın kodunuzu ne kadar iyi kapsadığını belirlemenize yardımcı olacaktır.
Ancak, bu gerçek ölü kodu tanımlamakla aynı şey değildir. Yalnızca testlerin kapsadığı (veya kapsamadığı) kodu tanımlar. Bu, yanlış pozitifler (testleriniz tüm senaryoları kapsamıyorsa) ve yanlış negatifler (gerçek bir dünya senaryosunda hiç kullanılmayan test erişim kodunuz varsa) verebilir.
Gerçekten ölü kodu tanımlamak için en iyi yolu canlı çalışan bir ortamda bir kapsama aracı ile kod enstrüman ve uzun bir süre boyunca kod kapsamı analiz olacağını düşünün.
Yük dengeli yedekli bir ortamda (ve eğer değilse, neden olmasın?) Koşuyorsanız, uygulamanızın yalnızca bir örneğini enstrüman haline getirmenin ve yük dengeleyicinizi rasgele, ancak küçük bir kısmı yapılandırmanın mantıklı olacağını varsayalım. kullanıcılarınız enstrümanlı örneğinizde çalışır. Bunu uzun bir süre yaparsanız (tüm gerçek dünya kullanım senaryolarını - bu tür mevsimsel varyasyonları kapsadığınızdan emin olmak için), kodunuzun gerçek alan kullanımı altında hangi alanlarına tam olarak erişildiğini ve hangi bölümleri görebildiğinizi görebilmeniz gerekir. gerçekten hiç erişilmez ve dolayısıyla ölü kod.
Ben şahsen bu yapıldığını hiç görmedim ve yukarıda bahsi geçen araçların bir test paketi aracılığıyla çağrılmayan kodu enstrüman ve analiz etmek için nasıl kullanılabileceğini bilmiyorum - ama eminim olabilirler.