PIT : Une autre approche des tests unitaires

A l’occasion de la conférence Devoxx France édition 2014, une présentation a particulièrement retenu mon attention. Il s’agit de celle de PIT (Parallel Isolated Test), un outil de tests unitaires s’inscrivant dans les pratiques Test Driven Development (développement piloté par les tests) consistant à écrire les tests unitaires avant d’écrire le code source d’un logiciel. Ce sujet a été présenté durant la conférence sous forme d’un quickie d’une durée de quinze minutes par Alexandre Victoor, architecte technique à la Société Générale et ancien novédien.

PIT part du principe que le fait d’avoir une couverture de test des lignes ou des branches de code approchant les 100% ne garantit pas la qualité des tests. En effet, une couverture de tests nous informe uniquement sur ce qui n’est pas du tout testé mais pas sur la pertinence des tests. A l’inverse, PIT se veut qualitatif, plutôt que quantitatif, en essayant de mettre nos tests unitaires en défaut.

Lire la suite…

Categories: Java EE Tags: , ,

En route pour la conférence internationale Software Architect à Londres

Software-Architect

La 8ème édition de la conférence « Software Architect » se déroulera à Londres du 14 au 17 octobre prochain. Anthyme et moi même auront le privilège d’y participer.

Cette année, 12 ateliers et 42 sessions sont proposés et animés par différent experts pour la compréhension des principes fondamentaux de l’architecture logicielle, idéologies et les meilleures pratiques associées.

Un mélange de séances de travaux pratiques du « monde-réel », des théories et des perspectives techniques seront proposés pour repartir avec un œil plus aguerri et des idées nouvelles sur la manière d’accomplir nos tâches avec une plus grande efficacité.

Lire la suite…

Un nuage de solutions au JUG Summer Camp

Cette année s’est déroulée la 5ème édition du JUG Summer Camp ; encore une fois, c’est à La Rochelle que l’événement a eu lieu. Dans un espace Encan très accueillant, les javaistes et autres acteurs de la communauté se sont retrouvés pour échanger pendant une journée sur les thématiques du Big Data et du Cloud, sujets forts de l’actualité dans le monde IT.

Pour ma première participation au JUG Summer Camp, j’ai été ravi par les sujets abordés ainsi que par la qualité des interventions. Tout a très bien commencé avec la keynote d’ouverture, assurée par Tugdual Grall durant laquelle il a tenté de répondre à la question « Comment choisir la meilleure solution technologique pour un projet ? ». Cette introduction était en adéquation avec les thématiques de la journée. Devant faire un choix sur les conférences à suivre (deux présentations se déroulaient en parallèle), je me suis orienté vers des technologies que je connaissais, mais dont je n’avais pas eu l’occasion de voir en action. Je délaissais les démonstrations de nouveaux langages tels que Ceylon ou Golo et des IDE « Cloudifié » tel que Codenvy. J’ai ainsi assisté à des présentations convaincantes de Docker, MongoDB Aggregation Framework, SimpleWeb4j et ElasticSearch. J’ai également pu participer à un « lobbying » intéressant autour du Cloud et des stratégies de migration vers ce nouveau type de SI.

Lire la suite…

JUG Summer Camp, 5ème acte !

logo-summercamp-277x300Ce vendredi 19 septembre a lieu la cinquième édition du JUG Summer Camp à La Rochelle.
Pour cette nouvelle édition, conférences et quickies sont au rendez-vous pour aborder les sujets en vogue tels que le Cloud, le NoSQL, et les nouveautés autour de Java et du JavaScript.
Avec le soutien de leurs sponsors, cette année encore le JUG Summer Camp est gratuit !
Le cadre est idéalement choisi pour rendre cet événement agréable et convivial : conférence à l’espace ENCAN, déjeuner sur le vieux port de La Rochelle, beau temps au programme (27ºC, vent léger).

Tout au long de la journée, se dérouleront en parallèle deux conférences (ou quickies) sur des thématiques différentes. Cela offre la possibilité d’adapter son programme afin d’assouvir sa curiosité ou d’approfondir ses connaissances.
Pour ma part, je vais m’orienter vers les thématiques liés à Docker, MongoDB et AngularJS, tout en restant attentif aux présentations autour de Java.
Vous pouvez retrouver le programme détaillé sur le site officiel du JUG Summer Camp.

J’ai hâte que cette journée commence afin de partager cette convivialité bien connue de la communauté Java et du JUG !

NoSQL Matters 2014 – avenir des solutions NoSQL

Nous (Sandèné NDAO et moi) avons eu l’opportunité de participer du 29 au 30 avril 2014 à la conférence NoSQL Matters 2014 à Cologne en Allemagne. Notre expérience dans le domaine NoSQL étant clairement du niveau débutant/curieux, nous avons profité de ces 2 jours de « talks » pour découvrir des use cases  du NoSql, mais également,  avoir un prélude assez riche d’outils NoSQL face à ces use cases. Nous vous racontons par ce billet notre ressenti en rétrospective de cette conférence. Il est à noter qu’autant Sandèné et moi assistions à notre première conférence internationale. Concernant le voyage, l’hôtel ou nous avons séjourné était idéalement placé à 5 min a pied du Inn Mediapark où se déroulait l’évènement.

Lire la suite…

Cas concret d’agilité avec BDD (Gherkin Cucumber), une usine logicielle TFS déployant sur MS Azure et SpecFlow

BDD (Behavior Development Driven) et TDD sont des sujets « classiques » pour certains et mystérieux – voir dangeureux / incompréhensibles – pour d’autres!

Mon post d’origine date de 2011 où à l’époque, je n’avais pas un VSO et Azure pour être aussi Agile qu’aujourd’hui !

Sans entrer dans les débats existanciels et stérils, voici un témoignage d’un véritable projet où BDD est mis en place.

OBJECTIF: A partir de spécifications “classiques” assez « riches », nous allons :

  1. [Responsable Fonctionnel] Transformer cela en spec BDD,
  2. [Responsable Fonctionnel] L’écrire dans l’outil Microsoft TFS / VSO, via Excel
  3. [Développeur] Implémenter le code de test (guidé par la structure BDD auto-générée),
  4. iSe questionner vis-à-vis des spécs et faire des aller-retours aux responsables fonctionnels pour aboutir à un langage commun sans confusion ni d’interprétations possibles.
  5. [Responsable Fonctionnel et développeur]  conviennent des ajustements aux spec BDD
  6. [Développeur] Implémentation des tests
  7. [Développeur] Implémentation du code
  8. [Développeur] Refactoring
  9. [Développeur] Prouve au  Responsable Fonctionnel que sa « Définition Of Done » basée entre autre sur le « Given-When-Then » du BDD est respecté
  10. [Développeur]  Dans notre exemple, où il est critique d’avoir une couverture de code à 100%, lancement des outils de Couverture de code
  11. [Responsable Fonctionnel] Micro-évolution des specs, et cela provoque des tests qui « cassent »

Lire la suite…

Categories: .NET, Cloud, Devops, Méthodes Agiles, Outillage Tags:

Agilité : Pas de victoire possible en France ?

Après avoir expérimenté et pratiqué Scrum dans différents contextes techniques et fonctionnels et vécu de multiples tentatives de passage d’un modèle organisationnel classique à un modèle de management et de gestion de projet plus agile, je me pose encore la question de sa pertinence  et surtout de sa pérennité dans nos entreprises françaises car, il faut bien l’admettre, le résultat n’est généralement pas à la hauteur. Lors du dernier Scrum Gathering, l’une des meilleures conférences auxquelles j’ai pu assister faisait un bilan plutôt mitigé de l’impact réel sur les entreprises françaises du changement de paradigme proposé par les méthodes agiles. Les espoirs placés dans ces pratiques sont-ils fondés. L’agilité est-elle compatible avec la culture du travail à la française ?

Lire la suite…

Application du Lean à l’IT – Les 7 gaspillages de votre activité

Le 26 novembre s’est tenu le forum annuel des thématiques du service au Cœur Défense.  Cet événement réunit chaque année les grands responsables informatiques des sociétés de services et des grands groupes du CAC40.

Le modèle TIMWOOD

La journée est organisée sous forme d’ateliers et de conférences.  J’ai participé à un atelier où il était question de proposer des exemples de gaspillages sur sept axes appelés Muda inspirés du modèle TIMWOOD (Transportation, Inventories, Motion, Waiting, Over processing, Over production et Defects). Ce modèle a été popularisé par TOYOTA et dont les composants sont explicités dans le schéma ci-dessous :

timwoodDescription du modèle TIMWOOD

 

Lire la suite…

Categories: Agilité, Forums et Salons Tags: , ,

On aime, on partage #43

Bienvenue dans la série « On aime, on partage » de VISEO ! Chaque semaine retrouvez les meilleurs articles du web issus de notre veille technologique.

TDD

Robert C. Martin – Advanced TDD: The Transformation Priority Principle

Après quelques divagations scientifiques, oncle bob nous présente quelques réflexions avancées sur TDD, après un rappel sur ce qu’est vraiment TDD et sur la discipline nécessaire à sa pratique, il revient sur l’intérêt d’écrire les tests en premier, l’objectif des 100% de couverture, la peur de modifier l’existant pour finir sur la construction d’un algorithme de façon incrémentale.

Agilité

La transformation agile

Carlos Goncalves, DSI Société Générale GBIS, décrit l’agilité qu’il a mis en place dans le développement des applications de son SI, les enjeux, les bénéfices.

http://www.it-expertise.com/carlos-goncalves-dsi-societe-generale-gbis-25/

Technologies

Technology Radar

La nouvelle version du célèbre Technology Radar, qui fait figure d’oracle des tendances de l’informatique, vient de sortir. Le document, publié deux fois par an par ThoughtWorks (employeur du non moins célèbre Martin Fowler) est disponible à l’adresse suivante :

http://thoughtworks.fileburst.com/assets/technology-radar-july-2014-en.pdf

Nos contributeurs :

Merci aux contributeurs de cette semaine : Frédéric BOUQUET, Sébastien BRUNO et Jean-François FOURMOND

Categories: On aime, on partage Tags: , ,

Configurer Grunt pour votre premier build en javascript

Introduction

Dans le précédent article, je présentais Grunt d’un point de vue fonctionnel, sans rentrer dans les détails techniques. Ce second article va donc s’intéresser plus directement à l’installation et à la configuration de Grunt pour parvenir à réaliser ses tâches et workflows personnalisés afin de faciliter au mieux le développement du projet. Plus tard, un troisième article vous apprendra comment définir vos propres tâches complexes.

Pour des raisons pratiques, nous allons utiliser comme fil rouge la mise en place des workflows d’une application web présente sous la forme d’une unique page index.html avec du javascript et du CSS.

 

Mise en place

Prérequis

Pour ceux qui n’ont jamais eu l’occasion de travailler avec Node.js / npm, nous allons voir comment les installer. Le mieux serait de l’installer en téléchargeant la dernière version sur le site officiel. Cependant, vous pouvez également l’installer rapidement via votre gestionnaire de paquets si vous être sous un OS Debian-like (pour les autres, voir ce tutoriel), même s’il ne s’agira pas forcément de la version la plus à jour :

Le package npm sera installé automatiquement avec. Il s’agit du gestionnaire de paquets de Node.js. Il va nous permettre d’installer très simplement des tâches Grunt qui sont pour la quasi-totalité référencées sur npm. Il faut savoir qu’il existe deux façons d’installer un package :

  • en global avec npm install -g nomDuPackage, ce qui le rend accessible partout sur votre ordinateur
  • en local avec npm install nomDuPackage, ce qui va l’installer dans un sous-dossier node_modules.

Pour exécuter un fichier javascript avec Node.js, il suffit d’utiliser la commande node monFichier.js.

Lire la suite…

Categories: Web Tags: , , , ,