<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>social hortis &#187; testing</title>
	<atom:link href="http://social.hortis.ch/tag/testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://social.hortis.ch</link>
	<description>De l'agilité à la performance</description>
	<lastBuildDate>Tue, 27 Jul 2010 09:24:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CITCON Paris 2009, le compte-rendu</title>
		<link>http://social.hortis.ch/2009/09/24/citcon-paris-2009-le-compte-rendu/</link>
		<comments>http://social.hortis.ch/2009/09/24/citcon-paris-2009-le-compte-rendu/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 09:20:22 +0000</pubDate>
		<dc:creator>Xavier Bourguignon</dc:creator>
				<category><![CDATA[agilité]]></category>
		<category><![CDATA[evenement]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[intégration continue]]></category>

		<guid isPermaLink="false">http://social.hortis.ch/?p=1035</guid>
		<description><![CDATA[


L&#8217;édition européenne 2009 de la CITCON a eu lieu les vendredi 18 et samedi 19 Septembre à Paris, j&#8217;ai eu la chance de pouvoir y assister et je vous livre aujourd&#8217;hui mon compte-rendu.

Vendredi après midi, arrivée dans les locaux de l&#8217;ISEP, Paul Julius et Jeffrey Fredrick nous accueille avec un mot de bienvenue et des explications sur le [...]]]></description>
			<content:encoded><![CDATA[<dl id="attachment_1046" class="wp-caption alignnone" style="width: 708px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-1046 alignnone" title="CITCON Paris 2009" src="http://social.hortis.ch/wp-content/uploads/2009/09/parisheader6.jpg" alt="CITCON Paris 2009" width="698" height="232" /></dt>
</dl>
<p style="text-align: justify;">L&#8217;édition européenne 2009 de la <a href="http://citconf.com/paris2009/" target="_blank">CITCON</a> a eu lieu les vendredi 18 et samedi 19 Septembre à Paris, j&#8217;ai eu la chance de pouvoir y assister et je vous livre aujourd&#8217;hui mon compte-rendu.</p>
<p style="text-align: justify; "><span id="more-1035"></span></p>
<p style="text-align: justify; "><img class="size-medium wp-image-1037 alignright" style="border: 10px solid white;" title="ISEP" src="http://social.hortis.ch/wp-content/uploads/2009/09/spm_a0031-300x225.jpg" alt="" width="300" height="225" />Vendredi après midi, arrivée dans les locaux de l&#8217;ISEP, Paul Julius et Jeffrey Fredrick nous accueille avec un mot de bienvenue et des explications sur le fonctionnement d&#8217;une conférence <a href="http://citconf.com/paris2009/openspace.php" target="_self">Open Space</a>, puis un tour de table pour une présentation rapide des personnes présentes: environ 120 ! Un peu longuet, mais cela me permet de mettre enfin des visages sur les différents blogueurs et twitters que je suis régulièrement.</p>
<p style="text-align: justify; ">Arrive les choses sérieuses: la préparation du programme de lendemain, en effet dans le cadre d&#8217;une conférence Open Space, tous les participants sont acteurs: chaque personne souhaitant animer une session s&#8217;arme d&#8217;un stylo, d&#8217;un post-it, présente son sujet en quelques mots et l&#8217;ajoute au tableau blanc. Libre à chacun de voter, regrouper les propositions équivalentes, modifier le planning.</p>
<p style="text-align: justify; ">Et voici le résultat</p>
<p><a href="http://social.hortis.ch/wp-content/uploads/2009/09/spm_a0029.jpg"><img class="size-full wp-image-1036 alignnone" title="planning des bsessions" src="http://social.hortis.ch/wp-content/uploads/2009/09/spm_a0029.jpg" alt="" width="688" height="517" /></a></p>
<p style="text-align: justify; ">Nous avons bien travaillé, il est maintenant l&#8217;heure de manger et de partager une bière en parlant d&#8217;intégration continue, de testing et de nos différentes expériences.</p>
<p style="text-align: center;"><strong>~~~~~~~~</strong></p>
<p style="text-align: justify; ">Tout bon Samedi commence par un bon petit déjeuner, la CITCON ne déroge pas à cette règle et nous commençons donc la journée par des discussions informelles autour d&#8217;une montagne de croissants. Le choix des sessions n&#8217;est pas évident, il y en a 5 programmées à la fois !</p>
<p style="text-align: justify; "><a href="http://social.hortis.ch/wp-content/uploads/2009/09/spm_a0026.jpg"><img class="alignleft size-medium wp-image-1038" style="border: 10px solid white;" title="hudson plugins" src="http://social.hortis.ch/wp-content/uploads/2009/09/spm_a0026-225x300.jpg" alt="" width="183" height="243" /></a>A 10 heures, je commence donc la matinée par la session &#8220;<strong><a href="http://citconf.com/wiki/index.php?title=BetterAntBuilds" target="_blank">Better builds</a><span style="font-weight: normal;">&#8220;</span></strong>, intéressante mais qui se focalise uniquement sur Ant, du besoin de refactoring des scripts, de l&#8217;utilisation des macros et une présentation de <a href="http://www.exubero.com/asl/" target="_blank">Ant Script Library</a>, qui comme son nom l&#8217;indique est une bibliothèaue de scipts génériques permettant de gérer les dépendances (avec Ivy), compiler, packager, lancer des tests unitaires ou d&#8217;intégration, faire du reporting, &#8230; bref tout ce qu&#8217;offre nativement Maven ! J&#8217;ai toujours du mal à comprendre pourquoi certaines personnes s&#8217;obstinent avec Ant pour cette utilisation &#8230; J&#8217;applique donc &#8220;the Law ot two feet&#8221; : je change donc de session discrètement et je rejoins &#8220;<strong><a href="http://citconf.com/wiki/index.php?title=HudsonAndOtherPlugins" target="_blank">Hudson plugins</a><span style="font-weight: normal;">&#8220;</span></strong>.</p>
<p style="text-align: justify; ">Lorsque j&#8217;arrive Douglas Squirrel a déjà présenté un plugin qu&#8217;il a développé et la discussion continue donc sur les points forts et faibles de la <a href="http://wiki.hudson-ci.org/display/HUDSON/Extend+Hudson" target="_blank">création de plugins</a>. Du côté négatif l&#8217;utilisation particulière de jelly pour la création des vues, le wiki dont certaines pages ne sont pas mise à jour, du côté positif, <a href="http://www.java.net/blogs/kohsuke/">kohsuke kawagushi</a> et la communauté qui sont très actifs et l&#8217;utilisation de Maven qui permet de démarrer et déboguer un plugin extrêmement simplement via les commandes <em>mvn hpi:create</em> et <em>mvn hpi:run</em>. Nous avons ensuite évoqué les plugins existants qui pourraient être améliorés (<a href="http://wiki.hudson-ci.org/display/HUDSON/Promoted+Builds+Plugin" target="_blank">Promoted builds</a> par exemple) et de nouvelles idées: graph de dépendance entre builds, distribution des tests unitaires avec GridGain &#8230;</p>
<p style="text-align: center;"><strong>~~~~~~~~</strong></p>
<p style="text-align: justify; ">
<p style="text-align: justify; ">11h15, 2ème session de la matinée (enfin 2ème et demi pour moi): &#8220;<a href="http://citconf.com/wiki/index.php?title=BuildPipelinesAndContinuousDeployment" target="_blank"><strong>Continuous Deployment</strong></a>&#8221; animée par Chris Read. Tout d&#8217;abord qu&#8217;est ce que le déploiement continu ? L&#8217;idée est que chaque fois que du code est committé, il est automatiquement déployé en production ! Impossible ? Regardez donc le bas de cette page chez Flickr: <a href="http://code.flickr.com/" target="_blank">http://code.flickr.com/</a>, la dernière fois que j&#8217;y suis allé, on pouvait lire : &#8221;<strong>Flickr was last deployed 25 hours ago, including 3 changes by 1 person. In the last week there were 46 deploys of 967 changes by 17 people.</strong>&#8221; Évidemment les contraintes pour faire du déploiement continu sont énormes, il faut être capable d&#8217;automatiser toute les étapes du commit du code jusqu&#8217;au déploiement en production: compilation, packaging, tests unitaires, d&#8217;intégration, d&#8217;acceptance, de performance et évidemment le retour à une version précédente en cas d&#8217;erreur.</p>
<p style="text-align: justify; ">Nous sommes d&#8217;ores et déjà capable de le faire avec les outils d&#8217;intégration continue, mais pour le faire de façon plus optimale, Chris introduit la notion de build pipeline c&#8217;est-à-dire le découpage en étape du processus de déploiement. Malheureusement cela sert également de support pour une promotion commerciale de Cruise, outil d&#8217;intégration continue de ThoughtWorks qui supporte nativement les pipelines &#8230; Malgré tout la discussion reste intéressante car le concept de déploiement continu permet d&#8217;avoir une vision plus globale du développement d&#8217;une application: on ne construit plus seulement un logiciel mais un environnement complet car les contraintes de la production (OS, patch, &#8230;) sont pris en compte dès le début du processus. nous dépassons alors le concept cher à XP de &#8220;Collective Code Ownership&#8221; pour arriver au &#8220;Collective Environment Ownership&#8221;.</p>
<p style="text-align: center;"><strong>~~~~~~~~</strong></p>
<p style="text-align: justify; ">
<p style="text-align: justify; ">La pause repas est l&#8217;occasion de discuter, notamment avec Remy Sanlanville, qui présentera avec Freddy Mallet de <a href="http://www.sonarsource.com/" target="_blank">SonarSource</a> la session &#8220;Pour passer la crise, remboursez votre dette technique !&#8221; à l&#8217;occasion de l&#8217;agile tour 2009 à <a href="http://www.agiletour.org/fr/grenoble_programme.html" target="_blank">Grenoble</a> le 20 Octobre prochain et très probablement à <a href="http://www.agiletour.org/fr/at2009_geneve.html" target="_blank">Genève</a> le 12 Octobre</p>
<p style="text-align: center;"><strong>~~~~~~~~</strong></p>
<p style="text-align: justify; ">
<p style="text-align: justify; "><a href="http://social.hortis.ch/wp-content/uploads/2009/09/spm_a0037.jpg"><img class="alignright size-full wp-image-1039" style="border: 10px solid white;" title="acceptance testing" src="http://social.hortis.ch/wp-content/uploads/2009/09/spm_a0037.jpg" alt="" width="240" height="320" /></a>14 heures, je commence l&#8217;après-midi par la session &#8220;<a href="http://www.agiletour.org/fr/grenoble_programme.html" target="_blank"><strong>Acceptance Testing</strong></a>&#8221; animée par <a href="http://gojko.net/" target="_blank">Gojko Adzic</a> et <a href="http://skillsmatter.com/expert-profile/agile-testing/antony-marcano" target="_blank">Antony Marcano</a>. L&#8217;objectif de la session est de faire le top 5 (ou plus) des raisons pour lesquelles une équipe échoue à mettre en place des tests d&#8217;acceptance et de donner des pistes pour ne pas tomber dans ces travers. Lors de l&#8217;écriture de son livre &#8220;<a href="http://www.acceptancetesting.info/the-book/" target="_blank">Bridging the Communication Gap, Specification by Example and Agile Acceptance Testing</a>&#8220;, Gojko avait identifié 5 principales raisons:</p>
<ul>
<li>No collaboration</li>
<li>Focusing on &#8220;how&#8221; not on &#8220;what&#8221;</li>
<li>Tests unusable as live documentation</li>
<li>Expecting acceptance tests to be a full regression suite</li>
<li>Focusing on tool</li>
</ul>
<div>Après discussions et différents retours d&#8217;expérience, ce top 5 s&#8217;est transformé en top 10 avec en plus:</div>
<ul>
<li>Acceptance testing is not considered as &#8220;value-adding&#8221; activity</li>
<li>&#8220;test code&#8221; is not maintained with love</li>
<li>Objectives of team members not aligned</li>
<li>No management buy-in</li>
<li>Underestimating the skill required to do this well</li>
</ul>
<p style="text-align: justify; ">Alors que faire pour ne pas tomber dans le panneau:</p>
<p style="text-align: justify; ">
<ol>
<li>Les tests d&#8217;acceptance s&#8217;écrivent en équipe: vous et votre client, ce sont des spécifications !</li>
<li>L&#8217;important n&#8217;est pas &#8220;comment&#8221; faire mais &#8220;quoi&#8221; faire et ce n&#8217;est pas si évident.</li>
<li>Vos tests d&#8217;acceptance doivent être expressifs et exhaustifs car ils seront alors la vraie documentation du projet, n&#8217;oubliez pas ce sont les spécifications !</li>
<li>Ces tests ne sont pas des tests de régression, il y a d&#8217;autres outils pour cela, ce sont des spécifications !</li>
<li>Ne venez pas voir votre client avec un outil, Fitnesse est très bien, mais vous venez écrire des spécifications ! Un tableau blanc et des crayons sont bien plus appropriés, vous aurez tout le temps de traduire ces spécifications dans votre outil préféré après.</li>
<li>L&#8217;écriture des tests d&#8217;acceptance est considérée souvent comme secondaire alors que nous parlons des spécifications !</li>
<li>Le code des tests est considérés comme moins important que le code métier, pourtant si vous n&#8217;êtes pas capable de valider votre code au regard des spécifications &#8230;</li>
<li>L&#8217;objectif des différents membres de l&#8217;équipe doit être le même: délivrer la meilleure application possible pour le client et pas le développeur code et pas plus, le testeur teste et pas plus, &#8230;</li>
<li>Le management doit percevoir les tests différemment car ce sont les spécifications !</li>
<li>Ne sous estimez pas le niveau requis pour écrire ces tests d&#8217;acceptance !</li>
</ol>
<p style="text-align: center;"><strong>~~~~~~~~</strong></p>
<p style="text-align: justify; ">
<p style="text-align: justify; ">15h15, un sujet qui m&#8217;intéresse au plus haut point: &#8220;<strong>CI in the Cloud</strong>&#8221; car j&#8217;avais commencé à écrire un plugin Hudson pour démarrer des esclaves sur EC2, le cloud d&#8217;Amazon. Malheureusement pour moi, un certain kohsuke l&#8217;a développé bien plus vite que moi (voir <a href="http://wiki.hudson-ci.org/display/HUDSON/Amazon+EC2+Plugin" target="_blank">ici</a>) ! Mais revenons au sujet, pourquoi les différents outils d&#8217;intégration continue lorgne du côté du cloud computing ? Les raisons sont multiples et nous les énumérons:</p>
<ul>
<li>réduire les coûts d&#8217;infrastructure et de maintenance</li>
<li>optimiser le coût d&#8217;utilisation par CPU (chez Amazon, la tarification se fait sur le uptime)</li>
<li>absorber facilement les pics de charge.</li>
</ul>
<div>D&#8217;un autre côté les difficultés:</div>
<ul>
<li>le gros point noir: la sécurité, bien que des solutions existent (on peut monter un VPN avec des serveurs chez Amazon), peu de sociétés sont actuellement prêtes à voir leur code source partir en dehors de leur infrastructure propre.</li>
<li>la confiance envers le fournisseur du cloud.  Le <a href="http://www.touilleur-express.fr" target="_blank">touilleur</a> a d&#8217;ailleurs posé une question pertinente: &#8220;à qui faites vous le plus confiance: votre équipe d&#8217;admin système ou celle d&#8217;Amazon ?&#8221;. Personnellement je connais la réponse !</li>
<li>les problèmes réseaux peuvent rendre le système quasi inopérant</li>
<li>la maintenance de système complexe sera aussi difficile</li>
</ul>
<p style="text-align: center;"><strong>~~~~~~~~</strong></p>
<div>16h30, pour la dernière session de la journée, je choisis de suivre &#8220;<strong>Narrative Acceptance Test</strong>&#8220;. Mes espoirs sont grands après la magistrale session de ce début d&#8217;après-midi, malheureusement ce sera le moment le moins intéressant de la conférence. Nous avons droit à une présentation quasi commerciale de <a href="http://studios.thoughtworks.com/agile-test-automation" target="_blank">Twist</a> édité par ThougthWorks, puis un survol de <a href="http://fitnesse.org/" target="_blank">Fitnesse</a> et quelques bouts de code de <a href="http://jnarrate.org/" target="_blank">JNarrate</a> qui permet d&#8217;écrire des tests d&#8217;acceptance en langage naturel. Bref une déception, j&#8217;attendais plus d&#8217;informations sur les techniques de création de <a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language" target="_blank">DSL</a>, mais la fatigue et mon niveau d&#8217;anglais très moyen ne m&#8217;ont pas permis d&#8217;orienter cette session comme je le désirais.</div>
<div>
<p style="text-align: center;"><strong>~~~~~~~~</strong></p>
</div>
<div>Enfin cette conférence s&#8217;est à terminée par un nouveau tour de table pour donner notre &#8220;AA moment of the day&#8221;, autrement dit &#8220;Le truc&#8221; qui nous a scotché, pour ma part je retiendrais la session sur la collaboration autour des tests d&#8217;acceptance de Gojko et Antony qui était véritablement extraordinaire.</div>
<p>Rendez-vous pour la prochaine édition dans l&#8217;une de ces villes: Zürich, Copenhage, Belgrade, Dublin ou Prague. Je vote Dublin !</p>
]]></content:encoded>
			<wfw:commentRss>http://social.hortis.ch/2009/09/24/citcon-paris-2009-le-compte-rendu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile Testing ou Testing Agile</title>
		<link>http://social.hortis.ch/2009/03/10/agile-testing-ou-testing-agile/</link>
		<comments>http://social.hortis.ch/2009/03/10/agile-testing-ou-testing-agile/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 10:49:55 +0000</pubDate>
		<dc:creator>Julien Behr</dc:creator>
				<category><![CDATA[agilité]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mardi gras]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[tendances]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://social.hortis.ch/?p=832</guid>
		<description><![CDATA[Au premier abord on pourrait penser qu&#8217;il ne s&#8217;agit que d&#8217;une interversion probablement due à une traduction (partielle) de l&#8217;anglais au français.  Mais l&#8217;apparente trivialité de ma question vous laisse bien penser que ce n&#8217;est pas dans cette direction que je veux vous emmener.
En effet pour moi il s&#8217;agit de concepts différents. Pour résumer mon [...]]]></description>
			<content:encoded><![CDATA[<p>Au premier abord on pourrait penser qu&#8217;il ne s&#8217;agit que d&#8217;une interversion probablement due à une traduction (partielle) de l&#8217;anglais au français.  Mais l&#8217;apparente trivialité de ma question vous laisse bien penser que ce n&#8217;est pas dans cette direction que je veux vous emmener.<br />
En effet pour moi il s&#8217;agit de concepts différents. Pour résumer mon point de vue :</p>
<ul>
<li>l&#8217;<strong>Agile Testing</strong> regrouperait l&#8217;ensemble des pratiques de test appliquées à une démarche de projet Agile, c&#8217;est à dire l&#8217;implémentation et l&#8217;automatisation de tests unitaires, l&#8217;intégration continue, le Test Driven Development, etc …</li>
</ul>
<ul>
<li>Le <strong>Testing Agile</strong> serait la mise en oeuvre d&#8217;une démarche Agile dans les processus de test, de quelque nature ou de quelque niveau qu&#8217;ils soient.  Et pourquoi pas dans une démarche projet globale en cascade.</li>
</ul>
<p>On voit bien alors qu&#8217;il ne s&#8217;agit plus de la même chose.<br />
J&#8217;ai suivi le cursus de Scrum Master, toutefois la place du test au sein de la démarche n&#8217;a été que survolée. J&#8217;ai donc pris la liberté de réfléchir sur le sujet, à défaut de trouver beaucoup de littérature.<br />
Ainsi si beaucoup de choses ont été dites et écrites sur le premier point, il en reste encore beaucoup à dire sur le second.</p>
<p>Je vais donc programmer un  <strong>Mardi Gras</strong> sur mai ou juin (mars : Intégration continue, avril : présentation ITIL), afin de présenter mes idées sur le sujet et obtenir vos remarques et retours d&#8217;expériences.</p>
<p>Avis aux amateurs !</p>
]]></content:encoded>
			<wfw:commentRss>http://social.hortis.ch/2009/03/10/agile-testing-ou-testing-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
