Inner classes and the myth of the default constructor

How many times have you read the following sentence : "When you don't provide any constructor in a class, the compiler automatically inserts a default, no-args constructor for you" ?

So now you assume that every class with no apparent constructor has a hidden, default, no-arg constructor. Big mistake.

Lire la suite...

Guava par l'exemple (1/3) : les classes utilitaires

Guava est une librairie Java éditée par Google, qui fournit de nombreuses fonctionnalités qui auraient dû se trouver dans le JDK.

Cette série d'articles n'a pas pour vocation de détailler toutes les classes de la librairie, mais d'en présenter une sélection facilement utilisables sur vos projets.
Chaque classe présentée est assortie d'un exemple sous la forme d'un test unitaire mettant en évidence son fonctionnement.

Cet article fait partie d'une série :

Lire la suite...

Concordion, les tests d'acceptation faciles

Un "test d'acceptation" est un test rédigé par, ou en coopération avec la MOA. C'est une véritable spécification exécutable, qui est décrite dans un format humainement lisible. Le but recherché est d'extraire les algoritmes métiers du code, afin de les rendre visibles par tous les acteurs du projet - MOA, développeurs, testeurs, éventuellement les utilisateurs...

Les tests d'acceptation encouragent la "spécification par l'exemple" : la fonctionnalité développée est encadrée par des exemples décrivant les cas nominaux, les cas particuliers, les exceptions, etc. Les tests s'assurent ensuite que le comportement attendu est respecté.

Plusieurs outils existent, comme FitNesse, Cucumber (Ruby), RobotFramework (Python), JBehave (Java)... Concordion se démarque du lot par son extrême simplicité de mise en oeuvre car il s'appuie sur JUnit, et ne nécessite aucun serveur externe ni langage exotique.


concordion-logo.png

Lire la suite...

Categorizing software bugs as Minecraft mobs

minecraft.jpg

I don't know if you play Minecraft - but if you don't, you should.

It is basically a sandbox construction game, where you can do whatever you like : crafting tools and materials, explore caves or dig mines to find ore and diamonds, create whole cities with your friends or wander around til the sun sets.

Then at night, things are different - this is when monsters appear. Minecraft mobs come in a variety of shapes and degree of pain-in-the-ass-ness. Some are quite inoffensive, others can ruin a whole day's effort in a second.

It struck me recently that those mobs were indeed quite representative of the varieties of software bugs. Let's see how.

Lire la suite...