Nos collègues de Valtech US organisent la conférence Agile Edge à New York le 22 juillet et à Austin, TX le 18 août. Le maître de cérémonie sera David Anderson, qui n’est pas n’importe qui. A la fois Chief Process Director de Valtech US et président d’une société de conseil sur l’agilité Modus Cooperandi, il a fait partie de l’équipe qui a développé Feature-Driven Development dans les années 90 à Singapour.
Les Européens ne sont pas en reste. Valtech Danemark organise des Valtech Days à Copenhague les 29 et 30 octobre. En guest star: Jim Coplien, un des leaders du monde de l’architecture et de l’agilité.
Enfin, pour ceux qui n’ont pas pu assister aux Valtech Days Paris en 2007, une nouvelle édition a lieu les 21 & 22 octobre, à La Défense. Préparez vos agendas!
Publié le 28/06/2008, par Philippe Voncken dans Uncategorized | Comments Off
Si le content-type d’un document chargé par Selenium-RC est text/xml, application/xml ou application/xhtml+xml et que le navigateur utilisé est bien conforme aux normes du W3C, il est possible de récupérer, dans le langage de programmation utilisé pour piloter Selenium, le DOM sous forme de String. Libre à vous ensuite de le parser en activant la validation XHTML pour vérifier si vos pages sont correctes.
Votre serveur d’intégration continue pourra ainsi donner une nouvelle métrique, augmentant la qualité des pages générées par votre application Web.
Voici le code à utiliser avec le client Selenium:
String xmlString = browser.getEval("if (!browserVersion.isIE) {"
+ "if (this.browserbot.getCurrentWindow().document instanceof XMLDocument) {"
+ "new XMLSerializer().serializeToString(this.browserbot.getCurrentWindow().document); }"
+ "} else {"
+ "var xmlDocument = this.browserbot.getCurrentWindow().document.XMLDocument;"
+ "if (xmlDocument != null) { xmlDocument.xml; } }");
System.out.println("test: " + xmlString);
Avoir des pages Web conformes à un standard, c’est la garantie de pouvoir être compris par un navigateur compatible avec ce standard. La bonne pratique sur le Web est de suivre un standard et de laisser les utilisateurs mettre à jour leur navigateur plutôt que de rendre compatible un site Web pour des versions de navigateurs spécifiques.
Publié le 28/06/2008, par Eric Lefevre-Ardant dans Uncategorized | Comments Off
These days, I have had the opportunity to think more about Behavior-Driven Development (BDD) with tools such as JBehave, RSpec, TestDox, and Test-Driven Requirements (TDR) with tools such as Fit, FitNesse, GreenPepper, Concordion. Here are my conclusions.
There is no doubt that BDD helps write tests with a more functional focus. This is also what TDR tools do and there is some overlap.
BDD and TDR help focus on client needs (write the ‘right code’ as opposed to the ‘right code’, as achieved by TDD). However, tooling is more developer-focused for BDD, and business-analyst-focused for TDR.
Therefore, TDR appears to me as a great tool, when business analysts are well integrated with developers. For example, they are part of the same Scrum team, or at least available regularly during the course of an iteration for the Sprint Planning and for conversations aimed at explaining what’s behind the story. TDR helps in making sure that all parties are clear regarding what should be coded (and what has actually been coded), while having no more than a simple user story to begin with. TDR is then mainly a communication tool between technical people and business people.
See a post by James Shore for more on that aspect of TDR.
However, I feel that BDD is an appropriate tool when developers receive specifications from an external team of business analysts, written maybe several iterations earlier. This is not an ideal situation, but it does still occur. In this case, developers should not waste their time with a tool such as Fit which is not the most efficient from their point of view.
BDD also seems great when the whole team is made of very technical people, able to read source code everyday on their own machine. Committers on an Open Source project would be a good example (how often do you ever hear of business analysts contributing to an OSS project?). Another example would be small and focused teams in start-ups that have an excellent understanding of what should be implemented (especially if this team is the one that created the start-up, as it often happens).
Last thought: just like other techniques (such as Pair Programming), it might be that BDD increases cohesion within the team, while creating protection from an outside world that is not as agile as the team. So it is possible that future improvements on the project such as integrating business people in the team might be harder to achieve.
If you can read French, check out this discussion on the XP France mailing list.
Publié le 27/06/2008, par Eric Lefevre-Ardant dans Uncategorized | Comments Off
After a pointer by Jérôme Piétri, a colleague of mine at Valtech, I have had a look at RichNesse, a WYSIWYG interface for editing pages under Fitnesse. It is based on FCKEditor. All in all, I am impressed.
As it is, RichNesse comes with a number of buttons that helps with the format of your wiki page. The format will eventually be converted into the appropriate Fitnesse markup, which you’ll see if you later visit the usual Edit button.
Those buttons in themselves are very useful. I don’t know about you, but in my case, I often have to go from one wiki engine to another, depending on the client and on the project. And I continually get mixed up for the first few minutes I edit a wiki page. Those WYSIWYG buttons really help.
Here is a look to the RichNesse editor (note the button bar on top)

Compare to the old editor:

There are four features that make the difference:
- Undo/Redo; yep, it seems that everything you do while under the editor can be undone
- Search and Replace! That was not in the basic editor. So when you wanted to change the name of a variable, you had to copy & paste into a text editor, and copy back again. It’s now built in!
- one button to insert a whole column: saves tons of keystrikes
- a button that redirects to the upload section of Fitnesse; that was not in the basic editor.
Unfortunately, I spotted a number of limitations. None of them are very serious, though:
- Some formattings very specific to Fitnesse such as collapsible sections are not available yet.
- The Copy and Cut buttons did not work and Paste behave curiously. The message I got was that my ‘browser security settings don’t permet the editor to automatically execute cutting operations.’ Of course, Ctrl-C, Ctrl-X and Ctrl-V still work perfectly.
- Integration with Fitnesse is not perfect. For example, if you create a table, the wizard will allow to enter a ‘caption’. Unfortunately, this caption will mess up the display and prevent the table from being properly interpreted as a fixture.
- The editor that opens when you first create a page is the basic Fitnesse editor. This is not a big deal: you can always save the empty page and reopen it again.
Another feature that I’d like to see, but will no doubt be tricky to implement, would be some kind of search & insert feature for links to other pages. Fitnesse is rather complex on this, especially since it supports hierarchical pages (a concept not usually found on wikis). It’s be cool to be able to search for a page, and then specify whether you want to link to it as a sub-page, or an absolute URL, or even as a SymbolicLink.
All in all, it is a very useful addon to FitNesse, one that I now systematically install. No doubt that lots remain to be done, but come join the fun now, it is already worth it!
Note the RichNesse button on the left when viewing a page; the Edit button is still available

Publié le 26/06/2008, par Eric Lefevre-Ardant dans Uncategorized | Comments Off
The Conference on Continuous Integration & Testing, Asia edition, is tomorrow! I wish I could be there, but the plane ticket is unhelpfully expensive
Well, I’ll have to make up by going to CITCON Amsterdam in October! Who’s joining me?
Publié le 25/06/2008, par Philippe Voncken dans Uncategorized | Comments Off
Bruce Byfield a récemment interviewé quatre fortes personnalités du FOSS sur ce qu’elles pensent de Microsoft.
Les réponses sont très posées et rationnelles. C’est un article vraiment très intéressant qui montre que les communautés du libre et de l’open source sont vraiment entre de bonnes mains.
Publié le 24/06/2008, par Philippe Voncken dans Uncategorized | Comments Off
J’ai découvert récemment un site extra-ordinaire qui permet d’obtenir un aperçu d’une URL dans tous les navigateurs Web ET sur toutes les plateformes en même temps!
Indispensable pour tous web-master qui se respecte
Publié le 23/06/2008, par Philippe Voncken dans Uncategorized | Comments Off
Je viens d’apprendre que Microsoft a annoncé que la prochaine version de sa suite bureautique Microsoft Office supportera le format de fichier standardisé par l’ISO, j’ai nommé l’ODF. Le support d’ODF sera par défaut.
Voilà une sage décision qui nous permettra de simplifier nos projets de tous les jours en nous permettant de choisir le logiciel d’édition de documents.
Cette liberté va nous permettre de pérenniser nos documents et d’oublier les temps où un fichier word97 n’était plus lisible par wordXP et qu’il fallait passer par openOffice pour convertir le fichier de 97 vers XP sinon le fichier était perdu. C’est du vécu
On en parle sur:
Publié le 22/06/2008, par Philippe Voncken dans Uncategorized | Comments Off
Google met à disposition pleins de tutoriaux et d’articles sur le Web dans son espace Google Doctype.
Les articles vont des bases du DOM, HTML et CSS aux aspects sécuritaires et autres trucs et astuces en tous genres du Web. Je n’ai pas eu le temps de tout lire en détails mais je suis déjà tombé sur des articles intéressants. C’est donc un lien à garder dans un coin pour y retourner de temps en temps.
Cobertura and Maven: There are TWO important things to do. Then, we’ll see about integrating Cobertura and Hudson.
First, set Cobertura as one of the reports in pom.xml:
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.2</version> <!-- use last version available -->
</plugin>
</plugins>
</reporting>
Finally, to get the actual report, you must remember to run ‘mvn site’. The reports will *not* be generated when simply running the unit tests.
For configuration, you must add a <plugin> tag in <build><plugins>; this is optional if you are only interested in Maven Site Reports. Remember: this does *not* mean that coverage analysis will be done when testing or running the code, only when running “mvn site”.
If you want the coverage reports directly under Hudson (and are not satisfied with publishing the maven site reports), things gets messy. There is a plugin for this, but I couldn’t get it to work (some people report that the current version, v0.8.4, is broken; it could also be because I’m using a Maven 2-type job under Hudson, which is not the most stable)
First, install the Cobertura-Hudson plugin.
This plugin requires XML reports to be generated by Cobertura. Looks simple enough according to the documentation.
The wiki page for the Cobertura plugin states that the configuration should be done in the <build> tag, but that didn’t work for me. In my case, I had to do it in the <reporting> tag, as follows:
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
</plugin>
</plugins>
</reporting>
That’s it from me. I hope you’ll have more luck than me with the Cobertura plugin. Anyway, don’t forget that you can always look for the report on the Maven-generated site. You can even create a Bookmark to it, since the page is stable (except when the build overrides it, of course).