dimanche 2 décembre 2012

Sortie de Sonar 3.3.2

Sonar

Sortie, le 24 octobre de la version 3.3 de Sonar, l'outil de qualimétrie, suivie les 7 et 21 novembre des versions correctives 3.3.1 et 3.3.2. On notera:

  • prise en charge des projets multi langages (source dans des répertoires différents pour le moment)
  • l'apparition de profils multiples par projet (un par langage)
  • l'analyseur de code Java SSLR en remplacement de ANTLR. SSLR était déjà utilisé pour Javascript, Cobol, PL/SQL, Flex, C, C++, C# et Python.
  • l'ajout de 2 règles pour Java
  • l'apparition d'une couverture de code globale (tests unitaires et tests d'intégration)
  • une gestion améliorée des exclusions de fichiers
  • une amélioration de l'IHM: fil d’Ariane, liste déroulante dynamique et fenêtres modales.

La 3.3.1 corrige notamment un problème posé par la traduction française provoquant un crash au démarrage. Le pack en version 1.6 (13 novembre 2012) est .

La 3.3.2 corrige des problèmes rencontrés avec Postgres 8.

Pour une description avec captures d'écran, c'est , les changelogs sont et le téléchargement, ici. Penser également à la doc d'installation et de mise à jour.

A noter également la sortie du plugin Jenkins pour Sonar version 2.0.1 qui corrige quelques bugs et ajoute les champs login et password pour accéder à l'instance de Sonar. Voir le changelog ici. Pour la documentation, c'est .

J'en profite enfin pour signaler un plugin Thucydides en version 0.1 sorti le 6 juin 2012: voir là.

dimanche 26 février 2012

Sortie de Doxygen 1.8.0

Doxygen

La version 1.8.0 de Doxygen est sortie le 25 février 2012. Cet outil libre développé par Dimitri van Heesh permet de générer la documentation technique à partir du code source, et ce pour les langages suivants: C++, C, Java, Objective-C, Python, IDL (pour Corba et Microsoft), Fortran, VHDL, PHP, C# ainsi que D jusqu'à un certain point.

Doxygen permet de générer un navigateur de documentation en ligne (en HTML) et/ou des manuels de référence à consulter hors ligne (en LaTeX, donc avec une qualité remarquable) à partir d'un ensemble de fichiers de code source documenté. Sont également gérés les formats de sortie RTF (MS-Word), PostScript, PDF avec hyperliens, HTML compressé et man pages Unix. La documentation est extraite directement depuis le code source, ce qui facilite de maintenir le code et la documentation synchronisés.

Il est possible de configurer Doxygen pour extraire la structure de code de fichiers sources non documentés. Ceci est très utile pour vous y retrouver rapidement dans un grand volume de code source. Vous pouvez également visualiser les relations entre les différents éléments grâce des graphiques de dépendances d'inclusion, des diagrammes d'héritage et des diagrammes de collaboration qui sont tous générés automatiquement.

Enfin, il est également possible d'utiliser Doxygen pour créer une documentation classique (comme Dimitri van Heesh l'a fait pour la documentation de Doxygen).

Doxygen fonctionne sur la plupart des Unix (dont Linux et Mac OS X sur lesquels il est développé) et des exécutables pour Windows sont également disponibles. Doxygen est sous licence GNU General Public License. En revanche, les documents produit par Doxygen sont considérés comme travail dérivé de celui effectué pour produire les fichiers en entrée. Ils ne sont donc pas affectés par la license GNU GPL.

Enfin, il existe des plugins pour Maven, Jenkins et Sonar:

Sur le site Doxygen, vous pourrez voir le manuel ou télécharger la dernière version.

Lire la suite...

mercredi 22 février 2012

Hamcrest, tutoriel pour Java

Java

Hamcrest est une bibliothèque d'objets de correspondance ('matchers' ou contraintes ou encore prédicats) permettant de définir des règles de 'correspondance' de façon déclarative, utilisables dans d'autres frameworks. Typiquement, on l'utilisera avec des frameworks de test, des bibliothèques d'objets bouchons (mock objects) et des règles de validation d'interface utilisateur.Par exemple, au lieu d'écrire:

   assertEquals("bleu", couleur);

On écrira:

   assertThat(couleur,is("bleu"));

On note ici le gain immédiat de lisibilité (surtout en anglais)...

Hamcrest a été implémenté pour Java, PHP mais aussi C++, Objective-C, Python et Erlang. Naturellement, avec Java, on pourra gérer cette dépendance via Maven.

Une version d'Hamcrest est fournie avec JUnit. Cependant, elle date un peu et les versions plus récentes d'Hamcrest offrent un tas de nouvelles fonctionnalités, en particuliers pour travailler avec les collections. Vous pouvez utiliser la dernière version d'Hamcrest en utilisant la dépendance junit-dep à la place de junit, comme suit:

  <dependency>
      <groupId>junit</groupId>
      <artifactId>junit-dep</artifactId>
      <version>4.10</version>
      <scope>test</scope>
      <exclusions>
         <exclusion>
              <groupId>org.hamcrest</groupId>
              <artifactId>hamcrest-core</artifactId>
          </exclusion>
      </exclusions>
  </dependency>
  <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-library</artifactId>
      <version>1.3.RC2</version>
  </dependency>

junit-dep est exactement la même bibliothèque que junit, exception faite que ses dépendances sont explicitement déclarées et non incluse dans le bundle.....

Notez enfin que Hamcrest n'est pas une bibliothèque de test comme JUnit ou TestNG, mais bien une bibliothèque d'objets de correspondance destinés à rendre les tests implémentés avec les bibliothèques précédentes beaucoup plus lisibles.

Ce qui suit est la traduction du tutoriel Java que l'on peut lire sur le wiki du site de Hamcrest. On pourra également lire ce billet de John Smart.

Lire la suite...

dimanche 29 janvier 2012

Gherkin

Cuke

Ce qui suit est la traduction de https://github.com/cucumber/cucumbe... augmenté de détails spécifiques à notre belle langue.

Gherkin est le langage parlé par Cucumber. C'est un langage spécifique au domaine (Domain Specific Language) compréhensible par les gens du métier qui vous permet de décrire le comportement d'un logiciel sans détailler comment ce comportement est implémenté.

Gherkin répond à 2 objectifs – documentation et tests automatisés. Le troisième est une fonctionnalité bonus – quand il crie en rouge, il vous parle et vous indique le code que vous devriez écrire.

La grammaire de Gherkin est définie dans l'arbre Treetop qui est une partie du code de base de Cucumber. La grammaire existe dans différentes variantes pour de nombreuses langues (40 actuellement) de telle sorte qu'on peut utiliser des mots clefs dans sa propre langue.

Lire la suite...