2010-12-15 20 views
4

Étant donné que beaucoup de code est réutilisé, de nombreux programmeurs sont rencontrés pour travailler avec du code existant dans lequel ils rencontrent beaucoup d'avertissements du compilateur. Pour résoudre ces avertissements du compilateur, il faut un effort qui ne semble pas toujours disponible. Pour mieux comprendre comment résoudre les avertissements du compilateur contribue à l'efficacité totale du développement de logiciels, je suis très intéressé par les données montrant quel pourcentage d'avertissements de compilateur non résolus aboutit à de véritables bogues d'exécution dans les étapes ultérieures du développement.Existe-t-il des données sur% des avertissements de compilateur non résolus qui entraînent réellement une erreur?

Quelqu'un est-il au courant de ce type de données et où trouver?

Répondre

4

Dans une entreprise pour laquelle je travaillais, dans deux millions de lignes de code, nous avions tous les avertissements jusqu'à environ 16 000 avant que nous décidions de faire un effort concerté pour les ramener à 0. C'était très satisfaisant atteindre cela après un mois ou deux.

Nous avons gardé des statistiques sur le nombre de bogues que nous avons trouvés qui ont été marqués par les avertissements. Certains étaient subjectifs, beaucoup étaient mineurs et je n'ai pas le nombre exact à portée de main. Cependant, dans le module avec des avertissements ~ 1050, il y avait environ 100 problèmes identifiés comme des «bugs affectant le service». C'était un module de base cependant.

--edit-- - this article sur défaut Le logiciel libre est une lecture intéressante sur le sujet.

Puis this page:

En this article, l'auteur cite les chiffres d'un « un grand nombre d'études empiriques », publié en Software Assessments, Benchmarks, and Best Practices (Jones, 2000). Au Niveau CMM SIE 1, qui ressemble au niveau de ce code, on peut s'attendre à un taux de défauts de 0,75 par point de fonction. Je vais vous laisser le soin de déterminer comment les points de fonction et le COL peuvent se rapporter à votre code - vous aurez probablement besoin d'un outil de mesure pour effectuer cette analyse.

Steve McConnell dans Code complet cites a study sur 11 projets développés par la même équipe, 5 sans critiques de code, 6 avec avis de code. Le taux de défectuosités pour le code non examiné était de 4,5 par 100 NP et de 0,82 pour le contrôle. Donc, sur cette base, votre estimation semble juste en l'absence de toute autre information. Cependant je dois supposer un niveau de professionnalisme parmi cette équipe (juste du fait qu'ils ont senti le besoin de réaliser l'étude), et qu'ils auraient au moins assisté aux avertissements; votre taux de défaut pourrait être beaucoup plus élevé.

Probablement la leçon la plus précieuse que vous pouvez apprendre - traiter tous les avertissements comme des bugs, jusqu'à preuve du contraire, et même alors, réparez-les.

+1

+1 pour avoir donné une * vraie réponse * à cette question. En passant, je suis généralement d'accord pour traiter tous les avertissements comme des bugs, bien que probablement des bogues dans votre compilateur. :-) –

1

examiner cette merveilleuse avertissement C4930:

CSomethingSwitcher switcher(); //C4930 - unused function prototype 
//blahblahblah 

évidemment l'objet switcher n'ont été créés et le comportement du programme sera probablement modifié. Quel pourcentage d'un tel défaut tolérerez-vous?

En tant que user Ed Guinesspoints out, chaque avertissement peut signaler un problème réel.