FindBugs

FindBugs
FindBugs
Logo FindBugs.png
Développeur William Pugh (Université du Maryland)
Dernière version 1.3.9 (21 août 2009) [+/−]
Environnement Java, Multi-plateforme
Type Analyse statique de programmes
Licence GNU LGPL
Site web findbugs.sourceforge.net

FindBugs est un logiciel libre d'analyse statique de bytecode Java. Son but est de trouver des bugs dans les programmes Java en identifiant des patterns reconnus comme étant des bugs.

FindBugs a été créé par William Pugh à l'université du Maryland et est distribué selon les termes de la licence GNU LGPL.

Sommaire

Principe de fonctionnement

FindBugs est basé sur des plugins et des détecteurs de bug. Les plugins (sous forme de jar) contiennent un fichier xml décrivant les détecteurs qu'il contient ainsi que les détecteurs eux-mêmes.

FindBugs prend en entrée les fichiers .class à analyser et leur applique l'un après l'autre les détecteurs provenant des plugins. Chaque détecteur parcours le bytecode Java et émet un avertissement lorsqu'il rencontre un ensemble d'instructions qui pourrait correspondre à un bug. Les avertissements sont collectés par FindBugs pour être présenté à l'utilisateur lorsque tous les détecteurs auront été exécutés. L'utilisateur pourra ensuite examiner le rapport de bug pour vérifier manuellement s'il y a bien un bug et le corriger si besoin est.

La vérification manuelle des rapports de bugs est nécessaire car, comme tout outil d'analyse statique, FindBugs peut émettre des avertissements qui ne correspondent pas à de vrais bugs, ou des bugs qui ne peuvent jamais arriver en pratique. C'est ce que l'on appelle des "faux positifs". Malgré l'attention portée par les développeurs à réduire le taux de faux avertissements, il est impossible de tous les éliminer.

Tous les détecteurs n'ont pas la même complexité, et certains réclament plus de ressources (temps, processeur) pour s'exécuter. De plus les bugs trouvés sont plus ou moins importants et ils peuvent donc être classés par niveau de priorité.

Extensibilité

Findbugs peut être étendu à l'aide de plugins, il est ainsi possible d'écrire des détecteurs adaptés aux problèmes que l'on veut résoudre.

Il est déjà livré avec des détecteurs recherchant les bugs les plus communs[1]: Deréférencement de pointeur null (NullPointerException), race conditions, etc.

Il existe également fb-contrib, un plugin pour FindBugs contenant un nombre important de détecteurs supplémentaires[2] qui n'ont pas été acceptés pour intégration dans le projet FindBugs. Cependant ces détecteurs sont suffisamment généraux pour intéresser tout programmeur Java.

Open Source

Il utilise Apache BCEL pour lire les fichiers .class et les parcourir. Une réflexion est en cours pour remplacer BCEL par ASM car ce dernier étant plus performant il permettrait de réduire le temps d'exécution de Findbugs.

Intégration de FindBugs avec d'autres logiciels

FindBugs est distribué sous la forme d'une application stand-alone avec GUI. Il existe également différentes possibilités d'intégrations:

Logiciels utilisant les analyses de FindBugs

Voir aussi

Références

  1. FindBugs Bug Descriptions Description des détecteurs de bug inclus par défaut dans FindBugs
  2. fb-contrib: Bug Descriptions Description des détecteurs de bug inclus dans fb-contrib

Liens externes



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article FindBugs de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • Findbugs — Maintainer: Bill Pugh Aktuelle Version: 1.3.8 (15. März 2009) Betriebssystem …   Deutsch Wikipedia

  • FindBugs — Тип Статистический анализатор кода Разработчик Уильям Пью …   Википедия

  • FindBugs — Maintainer Bill Pugh Aktuelle Version 1.3.9 (21. August 2009) Betriebssystem Plattformübergreifend …   Deutsch Wikipedia

  • FindBugs — Infobox Software name = FindBugs caption = developer = latest release version = 1.3.5 latest release date = release date|2008|09|13 latest preview version = latest preview date = operating system = Cross platform language = programming language …   Wikipedia

  • ANT (Apache) — Apache Ant Pour les articles homonymes, voir ant. Ant …   Wikipédia en Français

  • Ant (Apache) — Apache Ant Pour les articles homonymes, voir ant. Ant …   Wikipédia en Français

  • Ant (logiciel) — Apache Ant Pour les articles homonymes, voir ant. Ant …   Wikipédia en Français

  • Apache Ant — Pour les articles homonymes, voir ant. Ant …   Wikipédia en Français

  • List of tools for static code analysis — This is a list of significant tools for static code analysis.Historical products* Lint the original static code analyzer of C code.Open source or Noncommercial products .NET (C#, VB.NET and all .NET compatible languages) *… …   Wikipedia

  • Yasca — Infobox Software name = Yasca caption = Yet Another Source Code Analyzer developer = Michael Scovetta latest release version = 1.0 latest release date = release date|2008|10|03 latest preview version = latest preview date = operating system =… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”