<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commentaires sur : Quels sont les types de tests que l’on utilise sur un projet agile ?</title>
	<atom:link href="http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quels-sont-les-types-de-tests-que-l%25e2%2580%2599on-utilise-sur-un-projet-agile</link>
	<description>Le blog d&#039;OCTO Technology, cabinet d&#039;architectes en systèmes d&#039;information</description>
	<lastBuildDate>Thu, 09 Feb 2012 10:02:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Par : OCTO talks ! &#187; J&#8217;ai l&#8217;impression d&#8217;écrire mes tests en double !</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-4347</link>
		<dc:creator>OCTO talks ! &#187; J&#8217;ai l&#8217;impression d&#8217;écrire mes tests en double !</dc:creator>
		<pubDate>Thu, 07 Jul 2011 15:06:43 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-4347</guid>
		<description>[...] projets intègrent plusieurs types de tests. Parmi eux, les tests unitaires et les tests fonctionnels couvrent les mêmes fonctionnalités, il [...]</description>
		<content:encoded><![CDATA[<p>[...] projets intègrent plusieurs types de tests. Parmi eux, les tests unitaires et les tests fonctionnels couvrent les mêmes fonctionnalités, il [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Frédéric Schafer</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-478</link>
		<dc:creator>Frédéric Schafer</dc:creator>
		<pubDate>Wed, 25 Feb 2009 15:52:34 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-478</guid>
		<description>Mathieu, Romain,

Je suis moi aussi gêné par la définition de Feathers.
Un test qui utiliserait 50 classes de mon application, mais pas la BD, pas de fichiers, pas le réseau et pourrait s&#039;exécuter en même temps qu&#039;un autre, rempli les critères de cette définition.

Je comprends son intérêt didactique, et plus particulièrement dans un environnement legacy (code existant sans tests). En effet, sans environnement maitrisé, tester n&#039;est pas possible (unitairement ou pas d&#039;ailleurs) car je ne suis pas sur que mon test aura le même comportement d&#039;une exécution sur l&#039;autre.

Cependant, j&#039;ai tendance à considérer que le granularité de mon test doit être fine (i.e. il ne doit tester si possible qu&#039;une méthode, dont les dépendances sont mockées, donc maitrisées) car :
1. Si je veux tester la combinatoire d&#039;un test impliquant 50 classes, il ne me faudra pas moins de test - je ne gagne rien à impliquer 50 classes si ce n&#039;est l&#039;effort de mock (pas négligeable parfois je l&#039;accorde)
2. Je vois les tests comme un outil pour trouver une erreur, et j&#039;ai envie que les lumières rouges m&#039;indiquent le plus précisément possible ou se trouve mon erreur / la régression.
3. Je documenterai plus précisément mon application (les tests unitaires sont écrits pas les développeurs, pour les développeurs).

Nous sommes d&#039;accord sur le fait qu&#039;il faut bien commencer par un bout, et que la définition de Feathers m&#039;aide à cela (elle indique le bon bout pour commencer). Je vois donc cette définition plus comme un outil que comme un dogme (comme Mathieu je pense).

Nous sommes d&#039;accord également que je pars du principe que la classe String du framework .NET fait ce qui est marqué dans sa documentation (le framework est livré sans ses tests ;-)) et que mon TestRunner ne m&#039;affiche pas une lumière verte lors d&#039;une assertion non vérifiée ;-)

Merci Mathieu pour cet article et merci Romain tes précisions.
Vive les moyens de communication chauds et le code (au 18 mars ?!?).</description>
		<content:encoded><![CDATA[<p>Mathieu, Romain,</p>
<p>Je suis moi aussi gêné par la définition de Feathers.<br />
Un test qui utiliserait 50 classes de mon application, mais pas la BD, pas de fichiers, pas le réseau et pourrait s&#8217;exécuter en même temps qu&#8217;un autre, rempli les critères de cette définition.</p>
<p>Je comprends son intérêt didactique, et plus particulièrement dans un environnement legacy (code existant sans tests). En effet, sans environnement maitrisé, tester n&#8217;est pas possible (unitairement ou pas d&#8217;ailleurs) car je ne suis pas sur que mon test aura le même comportement d&#8217;une exécution sur l&#8217;autre.</p>
<p>Cependant, j&#8217;ai tendance à considérer que le granularité de mon test doit être fine (i.e. il ne doit tester si possible qu&#8217;une méthode, dont les dépendances sont mockées, donc maitrisées) car :<br />
1. Si je veux tester la combinatoire d&#8217;un test impliquant 50 classes, il ne me faudra pas moins de test &#8211; je ne gagne rien à impliquer 50 classes si ce n&#8217;est l&#8217;effort de mock (pas négligeable parfois je l&#8217;accorde)<br />
2. Je vois les tests comme un outil pour trouver une erreur, et j&#8217;ai envie que les lumières rouges m&#8217;indiquent le plus précisément possible ou se trouve mon erreur / la régression.<br />
3. Je documenterai plus précisément mon application (les tests unitaires sont écrits pas les développeurs, pour les développeurs).</p>
<p>Nous sommes d&#8217;accord sur le fait qu&#8217;il faut bien commencer par un bout, et que la définition de Feathers m&#8217;aide à cela (elle indique le bon bout pour commencer). Je vois donc cette définition plus comme un outil que comme un dogme (comme Mathieu je pense).</p>
<p>Nous sommes d&#8217;accord également que je pars du principe que la classe String du framework .NET fait ce qui est marqué dans sa documentation (le framework est livré sans ses tests ;-)) et que mon TestRunner ne m&#8217;affiche pas une lumière verte lors d&#8217;une assertion non vérifiée ;-)</p>
<p>Merci Mathieu pour cet article et merci Romain tes précisions.<br />
Vive les moyens de communication chauds et le code (au 18 mars ?!?).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Romain Verdier</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-477</link>
		<dc:creator>Romain Verdier</dc:creator>
		<pubDate>Wed, 25 Feb 2009 15:52:06 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-477</guid>
		<description>Hey Mathieu,

Le ton de ta réponse me laisse penser que tu as pris mes remarques personnellement :) Ca me désole un peu car il ne me semble pas avoir émit un jugement te concernant, ou concernant tes méthodes de travail.

Ton collègue Djamel Zouaoui, d&#039;Octo, participera à la réunion ALT.NET parisienne du 18 mars pour animer une présentation sur le TDD. Même s&#039;il s&#039;agit de .NET, je t&#039;invite à venir y faire un tour. Nous pourrions ainsi échanger nos points de vue de vive voix, et il est très probable que je parvienne à mieux me faire comprendre ainsi.

Nous sommes apparemment déjà d&#039;accord sur le fait que le testing est une discipline nécessitant une grande pratique. C&#039;est encourageant, non ?

A bientôt j&#039;espère.</description>
		<content:encoded><![CDATA[<p>Hey Mathieu,</p>
<p>Le ton de ta réponse me laisse penser que tu as pris mes remarques personnellement :) Ca me désole un peu car il ne me semble pas avoir émit un jugement te concernant, ou concernant tes méthodes de travail.</p>
<p>Ton collègue Djamel Zouaoui, d&#8217;Octo, participera à la réunion ALT.NET parisienne du 18 mars pour animer une présentation sur le TDD. Même s&#8217;il s&#8217;agit de .NET, je t&#8217;invite à venir y faire un tour. Nous pourrions ainsi échanger nos points de vue de vive voix, et il est très probable que je parvienne à mieux me faire comprendre ainsi.</p>
<p>Nous sommes apparemment déjà d&#8217;accord sur le fait que le testing est une discipline nécessitant une grande pratique. C&#8217;est encourageant, non ?</p>
<p>A bientôt j&#8217;espère.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Mathieu</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-476</link>
		<dc:creator>Mathieu</dc:creator>
		<pubDate>Wed, 25 Feb 2009 15:51:39 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-476</guid>
		<description>Je lis

&gt;&gt; tu as besoin d&#039;une instance de Bar, qui a elle-même besoin d&#039;une instance de &gt;&gt;FooBar. Il est donc impossible de tester Foo en complète isolation

J&#039;espère que tu isoles ton code pour mocker les classes String, Integer, etc car tu vas en avoir besoin pour être en totale isolation.

Puis

&gt;&gt;Attention, je ne suis pas un malade mental qui pense que toutes les classes &gt;&gt;doivent pouvoir être testées en isolation :) Il peut arriver que l&#039;on décide de ne &gt;&gt;tester que la racine d&#039;un aggrégat lorsque l&#039;encapsulation a du sens.

Ca dépend, dans le découpage Commande / Service / Repository, tu dois pouvoir tester unitairement, avec des mocks ou pas. Dans le cas du repository, tu auras le choix, comme dans mon article, entre des tests d&#039;intégration ou unitaire. 

&gt;&gt;Je cherche juste dire que ce qui ressemble à un test unitaire n&#039;est pas forcément &gt;&gt;un test unitaire.

Et la pureté n&#039;existe que dans les laboratoire. Je pense que pour développer et tester, on a besoin de quelques règles simples (j&#039;en expose quelques unes dans l&#039;article, il y en a plein d&#039;autres) et beaucoup, beaucoup de pratiques. Et j&#039;ai souvent utilisé la définition de Feathers lors de mission sur des projets agiles, elle a souvent été bien accepté par les développeurs, et permettait de clarifier de nombreuses choses dans des tests qui commencent à devenir compliquer.

Bref, je pense que l&#039;on parle de cas particulier, qui nécessite d&#039;être tranchés devant du vrai code, dans un IDE, avec un clavier ...</description>
		<content:encoded><![CDATA[<p>Je lis</p>
<p>>> tu as besoin d&#8217;une instance de Bar, qui a elle-même besoin d&#8217;une instance de >>FooBar. Il est donc impossible de tester Foo en complète isolation</p>
<p>J&#8217;espère que tu isoles ton code pour mocker les classes String, Integer, etc car tu vas en avoir besoin pour être en totale isolation.</p>
<p>Puis</p>
<p>>>Attention, je ne suis pas un malade mental qui pense que toutes les classes >>doivent pouvoir être testées en isolation :) Il peut arriver que l&#8217;on décide de ne >>tester que la racine d&#8217;un aggrégat lorsque l&#8217;encapsulation a du sens.</p>
<p>Ca dépend, dans le découpage Commande / Service / Repository, tu dois pouvoir tester unitairement, avec des mocks ou pas. Dans le cas du repository, tu auras le choix, comme dans mon article, entre des tests d&#8217;intégration ou unitaire. </p>
<p>>>Je cherche juste dire que ce qui ressemble à un test unitaire n&#8217;est pas forcément >>un test unitaire.</p>
<p>Et la pureté n&#8217;existe que dans les laboratoire. Je pense que pour développer et tester, on a besoin de quelques règles simples (j&#8217;en expose quelques unes dans l&#8217;article, il y en a plein d&#8217;autres) et beaucoup, beaucoup de pratiques. Et j&#8217;ai souvent utilisé la définition de Feathers lors de mission sur des projets agiles, elle a souvent été bien accepté par les développeurs, et permettait de clarifier de nombreuses choses dans des tests qui commencent à devenir compliquer.</p>
<p>Bref, je pense que l&#8217;on parle de cas particulier, qui nécessite d&#8217;être tranchés devant du vrai code, dans un IDE, avec un clavier &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Romain Verdier</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-475</link>
		<dc:creator>Romain Verdier</dc:creator>
		<pubDate>Wed, 25 Feb 2009 15:51:24 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-475</guid>
		<description>Héhé, oui, pas facile de décider lorsqu&#039;il est question de cheeseburgers, hein.

Mais quel composant la méthode &quot;I_can_haz_cheezburger&quot; teste unitairement ?

Si le teste échoue, est-ce que le problème vient de Foo ? De Bar ? Ou de FooBar ?

Ici le setup est trivial, mais il n&#039;est pas difficile d&#039;imaginer un graphe de dépendances plus complexe, et des types plus complexes. Sans découplage, la granularité du test est compromise, et peut empêcher ce dernier d&#039;être pertinent. 

D&#039;où la nécessité d&#039;un design permettant les tests unitaires, d&#039;où la nécessité d&#039;utiliser des abstractions afin de pouvoir stubber/mocker les dépendances. L&#039;exemple posté est une illustration de ce problème : le design ne permet pas de profiter pleinement de l&#039;intérêt des tests unitaires, puisque pour tester une instance de Foo, tu as besoin d&#039;une instance de Bar, qui a elle-même besoin d&#039;une instance de FooBar. Il est donc impossible de tester Foo en complète isolation. Tu es obligé de tester Foo avec Bar avec FooBar. On est déjà dans quelque chose qui ressemble à un roundtrip, puisqu&#039;on ne teste en réalité qu&#039;un agglomérat de composants, et non pas chaque composant unitairement.

Attention, je ne suis pas un malade mental qui pense que toutes les classes doivent pouvoir être testées en isolation :) Il peut arriver que l&#039;on décide de ne tester que la racine d&#039;un aggrégat lorsque l&#039;encapsulation a du sens. Ici, pour que ça soit plus clair, on peut imaginer que Foo est un controller, que Bar est un service, et que FooBar est un repository. Et dans ce cas, il est évident que pour tester un controller en isolation, je ne veux dépendre d&#039;aucune implémentation concrète de service. De même, si Foo est une vue, Bar un presenter, et FooBar une commande (quel exemple !), on ne peut pas prétendre tester la vue unitairement en gardant un couplage si fort inter-implémentations.

Je cherche juste dire que ce qui ressemble à un test unitaire n&#039;est pas forcément un test unitaire. Et encore une fois, le fait d&#039;être détaché d&#039;une base de données (ou d&#039;une autre dépendance évidente assimilable) ne garantit en rien le caractère unitaire d&#039;un test. Certains designs laissent d&#039;autres dépendances moins visibles compromettre l&#039;atomicité des tests et réduire (voire même annuler) leur intérêt.</description>
		<content:encoded><![CDATA[<p>Héhé, oui, pas facile de décider lorsqu&#8217;il est question de cheeseburgers, hein.</p>
<p>Mais quel composant la méthode &laquo;&nbsp;I_can_haz_cheezburger&nbsp;&raquo; teste unitairement ?</p>
<p>Si le teste échoue, est-ce que le problème vient de Foo ? De Bar ? Ou de FooBar ?</p>
<p>Ici le setup est trivial, mais il n&#8217;est pas difficile d&#8217;imaginer un graphe de dépendances plus complexe, et des types plus complexes. Sans découplage, la granularité du test est compromise, et peut empêcher ce dernier d&#8217;être pertinent. </p>
<p>D&#8217;où la nécessité d&#8217;un design permettant les tests unitaires, d&#8217;où la nécessité d&#8217;utiliser des abstractions afin de pouvoir stubber/mocker les dépendances. L&#8217;exemple posté est une illustration de ce problème : le design ne permet pas de profiter pleinement de l&#8217;intérêt des tests unitaires, puisque pour tester une instance de Foo, tu as besoin d&#8217;une instance de Bar, qui a elle-même besoin d&#8217;une instance de FooBar. Il est donc impossible de tester Foo en complète isolation. Tu es obligé de tester Foo avec Bar avec FooBar. On est déjà dans quelque chose qui ressemble à un roundtrip, puisqu&#8217;on ne teste en réalité qu&#8217;un agglomérat de composants, et non pas chaque composant unitairement.</p>
<p>Attention, je ne suis pas un malade mental qui pense que toutes les classes doivent pouvoir être testées en isolation :) Il peut arriver que l&#8217;on décide de ne tester que la racine d&#8217;un aggrégat lorsque l&#8217;encapsulation a du sens. Ici, pour que ça soit plus clair, on peut imaginer que Foo est un controller, que Bar est un service, et que FooBar est un repository. Et dans ce cas, il est évident que pour tester un controller en isolation, je ne veux dépendre d&#8217;aucune implémentation concrète de service. De même, si Foo est une vue, Bar un presenter, et FooBar une commande (quel exemple !), on ne peut pas prétendre tester la vue unitairement en gardant un couplage si fort inter-implémentations.</p>
<p>Je cherche juste dire que ce qui ressemble à un test unitaire n&#8217;est pas forcément un test unitaire. Et encore une fois, le fait d&#8217;être détaché d&#8217;une base de données (ou d&#8217;une autre dépendance évidente assimilable) ne garantit en rien le caractère unitaire d&#8217;un test. Certains designs laissent d&#8217;autres dépendances moins visibles compromettre l&#8217;atomicité des tests et réduire (voire même annuler) leur intérêt.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Mathieu</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-474</link>
		<dc:creator>Mathieu</dc:creator>
		<pubDate>Wed, 25 Feb 2009 15:50:47 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-474</guid>
		<description>Et bien, je ne vois pas en quoi ton code, bien qu&#039;il ne fasse pas grand chose à part créer des objets, serait différent d&#039;un test unitaire.</description>
		<content:encoded><![CDATA[<p>Et bien, je ne vois pas en quoi ton code, bien qu&#8217;il ne fasse pas grand chose à part créer des objets, serait différent d&#8217;un test unitaire.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Romain Verdier</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-473</link>
		<dc:creator>Romain Verdier</dc:creator>
		<pubDate>Wed, 25 Feb 2009 15:50:19 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-473</guid>
		<description>Un petit exemple idiot : http://gist.github.com/60735

Désolé, c&#039;est du C#.</description>
		<content:encoded><![CDATA[<p>Un petit exemple idiot : <a href="http://gist.github.com/60735" rel="nofollow">http://gist.github.com/60735</a></p>
<p>Désolé, c&#8217;est du C#.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Mathieu</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-472</link>
		<dc:creator>Mathieu</dc:creator>
		<pubDate>Wed, 25 Feb 2009 15:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-472</guid>
		<description>Romain : Je ne considère pas la définition de Michaël Feathers comme un dogme, mais bien comme de l&#039;information que l&#039;on peut en tirer sur l&#039;état des tests d&#039;un projet. J&#039;ai eu l&#039;occasion d&#039;intervenir sur des projets legacy (AKA sans tests), agiles ou pas, ou on me demandait de l&#039;aide sur les tests, et utiliser cette définition m&#039;a aidé à clarifier des choses avec l&#039;équipe de développement, et d&#039;avancer sur la transmission de pratiques de développement autour des tests.

Sur la question de la pratique du développement piloté par les tests, elle est évidement essentielle.

Pour ma gouverne, j&#039;aimerais avoir un exemple parmi les 1001 façons de respecter la définition de M.Featers, sans que ce soit un test unitaire (et je ne parle pas encore de TDD).

Thomas : En terme de bonnes pratiques, j&#039;ai pu voir des confs de tests, identique à celle qui part en prod, mais avec tout l&#039;environnement externe bouchonné (BDD en mémoire, ...). Dans d&#039;autres cas, c&#039;était une configuration dédiée au test, mais évidement éloignée de celle qui part en prod. Et dans d&#039;autre un peu des deux. Et il faudrait que je vois un bout de ton code pour donner un avis plus tranché :)

Pour la question des mocks, il y a en effet un tradeoff sur la réécriture du code de dépendance. Si tu réécris beaucoup de code pour préparer tes mocks, afin de tester, c&#039;est aussi une info sur l&#039;état de ton code ...</description>
		<content:encoded><![CDATA[<p>Romain : Je ne considère pas la définition de Michaël Feathers comme un dogme, mais bien comme de l&#8217;information que l&#8217;on peut en tirer sur l&#8217;état des tests d&#8217;un projet. J&#8217;ai eu l&#8217;occasion d&#8217;intervenir sur des projets legacy (AKA sans tests), agiles ou pas, ou on me demandait de l&#8217;aide sur les tests, et utiliser cette définition m&#8217;a aidé à clarifier des choses avec l&#8217;équipe de développement, et d&#8217;avancer sur la transmission de pratiques de développement autour des tests.</p>
<p>Sur la question de la pratique du développement piloté par les tests, elle est évidement essentielle.</p>
<p>Pour ma gouverne, j&#8217;aimerais avoir un exemple parmi les 1001 façons de respecter la définition de M.Featers, sans que ce soit un test unitaire (et je ne parle pas encore de TDD).</p>
<p>Thomas : En terme de bonnes pratiques, j&#8217;ai pu voir des confs de tests, identique à celle qui part en prod, mais avec tout l&#8217;environnement externe bouchonné (BDD en mémoire, &#8230;). Dans d&#8217;autres cas, c&#8217;était une configuration dédiée au test, mais évidement éloignée de celle qui part en prod. Et dans d&#8217;autre un peu des deux. Et il faudrait que je vois un bout de ton code pour donner un avis plus tranché :)</p>
<p>Pour la question des mocks, il y a en effet un tradeoff sur la réécriture du code de dépendance. Si tu réécris beaucoup de code pour préparer tes mocks, afin de tester, c&#8217;est aussi une info sur l&#8217;état de ton code &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Romain Verdier</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-460</link>
		<dc:creator>Romain Verdier</dc:creator>
		<pubDate>Sun, 08 Feb 2009 09:53:49 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-460</guid>
		<description>@Thomas : Dans la seconde partie de ton commentaire, tu es en train de t&#039;interroger sur les mocks, et plus généralement sur l&#039;interaction-based testing.

Je disais précédemment que tester est compliqué, en voici une des raisons. Il y a des dizaines de questions de ce genre à se poser, et les concepts manipulés sont loin d&#039;être triviaux. 

Quelques pointeurs, toujours au sujet de &quot;interaction-based tests versus state-based tests&quot; :

Martin Fowler, qui explique bien les différences essentielles qu&#039;il faut faire entre les différents types de test-doubles :

&lt;a href=&quot;http://martinfowler.com/articles/mocksArentStubs.html&quot; title=&quot;http://martinfowler.com/articles/mocksArentStubs.html&quot; rel=&quot;nofollow&quot;&gt;martinfowler.com/articles...&lt;/a&gt;

Un article de Ben Pryor sur toute la question :

&lt;a href=&quot;http://benpryor.com/blog/2007/01/16/state-based-vs-interaction-based-unit-testing/&quot; title=&quot;http://benpryor.com/blog/2007/01/16/state-based-vs-interaction-based-unit-testing/&quot; rel=&quot;nofollow&quot;&gt;benpryor.com/blog/2007/01...&lt;/a&gt;

Un post de Jeremy D. Miller, auteur de StructureMap dans le monde .NET :

&lt;a href=&quot;http://codebetter.com/blogs/jeremy.miller/articles/129544.aspx&quot; title=&quot;http://codebetter.com/blogs/jeremy.miller/articles/129544.aspx&quot; rel=&quot;nofollow&quot;&gt;codebetter.com/blogs/jere...&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>@Thomas : Dans la seconde partie de ton commentaire, tu es en train de t&#8217;interroger sur les mocks, et plus généralement sur l&#8217;interaction-based testing.</p>
<p>Je disais précédemment que tester est compliqué, en voici une des raisons. Il y a des dizaines de questions de ce genre à se poser, et les concepts manipulés sont loin d&#8217;être triviaux. </p>
<p>Quelques pointeurs, toujours au sujet de &laquo;&nbsp;interaction-based tests versus state-based tests&nbsp;&raquo; :</p>
<p>Martin Fowler, qui explique bien les différences essentielles qu&#8217;il faut faire entre les différents types de test-doubles :</p>
<p><a href="http://martinfowler.com/articles/mocksArentStubs.html" title="http://martinfowler.com/articles/mocksArentStubs.html" rel="nofollow">martinfowler.com/articles&#8230;</a></p>
<p>Un article de Ben Pryor sur toute la question :</p>
<p><a href="http://benpryor.com/blog/2007/01/16/state-based-vs-interaction-based-unit-testing/" title="http://benpryor.com/blog/2007/01/16/state-based-vs-interaction-based-unit-testing/" rel="nofollow">benpryor.com/blog/2007/01&#8230;</a></p>
<p>Un post de Jeremy D. Miller, auteur de StructureMap dans le monde .NET :</p>
<p><a href="http://codebetter.com/blogs/jeremy.miller/articles/129544.aspx" title="http://codebetter.com/blogs/jeremy.miller/articles/129544.aspx" rel="nofollow">codebetter.com/blogs/jere&#8230;</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Romain Verdier</title>
		<link>http://blog.octo.com/quels-sont-les-types-de-tests-que-l%e2%80%99on-utilise-sur-un-projet-agile/comment-page-1/#comment-459</link>
		<dc:creator>Romain Verdier</dc:creator>
		<pubDate>Sun, 08 Feb 2009 09:53:19 +0000</pubDate>
		<guid isPermaLink="false">http://new-blog.octo.com/?p=656#comment-459</guid>
		<description>Bonjour, et merci pour cet article.

Mes deux centimes au sujet des tests unitaires : la définition qui en est proposée me laisse un peu mal à l&#039;aise... Il y a 1001 façons d&#039;écrire un test qui respecte les 5 critères listés sans pour autant que ce dernier soit unitaire. Si on considère un vrai système - et non pas l&#039;exemple bateau consistant à tester un ICalculator - écrire un test unitaire pertinent est souvent une tâche dont la complexité est sous-estimée. A mon sens, la seule façon d&#039;y parvenir est de pratiquer massivement, et surtout, d&#039;en comprendre profondément l&#039;intérêt. Les commandements de M. Feathers sont à considérer comme la description de quelques conséquences évidentes de l&#039;isolation. Mais les contre-exemples sont trop nombreux (1001) pour qu&#039;on parle de définition.

Suivre quelques guidelines, se baser aveuglément sur les rapports de coverage, ou le nombre de tests est selon moi le meilleur moyen de s&#039;égarer. Il n&#039;y a pas de balle-en-argent, hein.

Programmer c&#039;est compliqué, tester c&#039;est compliqué, donc let&#039;s go shopping !</description>
		<content:encoded><![CDATA[<p>Bonjour, et merci pour cet article.</p>
<p>Mes deux centimes au sujet des tests unitaires : la définition qui en est proposée me laisse un peu mal à l&#8217;aise&#8230; Il y a 1001 façons d&#8217;écrire un test qui respecte les 5 critères listés sans pour autant que ce dernier soit unitaire. Si on considère un vrai système &#8211; et non pas l&#8217;exemple bateau consistant à tester un ICalculator &#8211; écrire un test unitaire pertinent est souvent une tâche dont la complexité est sous-estimée. A mon sens, la seule façon d&#8217;y parvenir est de pratiquer massivement, et surtout, d&#8217;en comprendre profondément l&#8217;intérêt. Les commandements de M. Feathers sont à considérer comme la description de quelques conséquences évidentes de l&#8217;isolation. Mais les contre-exemples sont trop nombreux (1001) pour qu&#8217;on parle de définition.</p>
<p>Suivre quelques guidelines, se baser aveuglément sur les rapports de coverage, ou le nombre de tests est selon moi le meilleur moyen de s&#8217;égarer. Il n&#8217;y a pas de balle-en-argent, hein.</p>
<p>Programmer c&#8217;est compliqué, tester c&#8217;est compliqué, donc let&#8217;s go shopping !</p>
]]></content:encoded>
	</item>
</channel>
</rss>

