<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Interlude - conformité de base - Historique des versions</title>
		<link>https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;action=history</link>
		<description>Historique des versions pour cette page sur le wiki</description>
		<language>fr</language>
		<generator>MediaWiki 1.44.5</generator>
		<lastBuildDate>Tue, 05 May 2026 15:04:25 GMT</lastBuildDate>
		<item>
			<title>Fabrice Aimetti le 17 août 2018 à 21:18</title>
			<link>https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=8694&amp;oldid=prev</link>
			<guid isPermaLink="false">https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=8694&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 17 août 2018 à 21:18&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Ligne 2 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 2 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: J. B. Rainsberger]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: J. B. Rainsberger]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Tests]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Tests]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div id=&quot;content_view&quot; class=&quot;wiki&quot; style=&quot;display: block&quot;&amp;gt; &lt;/del&gt;Auteur : J. B. Rainsberger&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;Date : 2009&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Auteur : J. B. Rainsberger&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Date : 2009&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;Traducteur : Fabrice Aimetti&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;Date : 07/09/2011&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Traducteur : Fabrice Aimetti&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Date : 07/09/2011&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/del&gt;Traduction :&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/del&gt;&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;J&#039;ai essayé de répondre à un commentaire de James Bach, mais j&#039;ai dépassé la limite des 3000 caractères, donc j&#039;ai décidé de publier ce long commentaire sous la forme d&#039;un court article.&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Je ne comprends pas pourquoi vous baptisez de &quot;injustifiable&quot; un échec découvert lors de l&#039;exécution d&#039;un test. Je vous donne une raison très simple : JE VEUX TROUVER DES BUGS. :)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; S&#039;il vous plaît, changer la définition que j&#039;ai donné pour un mot n&#039;est pas très fair-play. Arrêtez ça ! :)&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Quand vous énoncez &quot;Nous aurons vraisemblablement des tests dont le but est de tester l&#039;étape 2, et qui échoueront bien sûr de façon justifiée&quot; (NdT : article [[3%C3%A8me%20partie%20-%20Les%20risques%20associ%C3%A9s%20aux%20tests%20trop%20longs|3ème partie - Les risques associés aux tests trop longs]]), cela me semble être une dangereuse supposition. Ce n&#039;est pas parce que nous écrivons un test, et que ce test a un but, que cela signifie que le test atteint son but. En fait, pour autant que je sache, un test n&#039;atteint JAMAIS son but le plus profond à savoir de trouver tous les bugs possibles et intéressants dans le bout de code qu&#039;il est train de tester. Bien sûr, quand je teste, je veux trouver tous les bugs intéressants, et bien sûr, je ne saurai jamais si j&#039;ai trouvé tous ceux qui valaient le coup.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; Je pense que vous avez repris ma définition spécifique de &quot;l&#039;échec justifiable&quot; et que vous l&#039;avez étendue bien au-delà de la manière dont j&#039;avais choisi de l&#039;utiliser. Quand j&#039;écris un test qui échoue en raison d&#039;une anomalie dans le code pour lequel le test était dédié, alors je baptise cet échec justifiable. Tous les autres échecs ne sont pas justifiables. Par conséquent, l&#039;énoncé que vous avez mis en avant est implicite pour moi ... mis à part mon usage imprécis du mot &quot;vraisemblablement&quot;. Permettez-moi de clarifier ce que je n&#039;ai pas exprimé. Supposons que nous avons utilisé des tests d&#039;intégration pour tester globalement ce processus en cinq étapes (en d&#039;autres termes, nous avons écrit des tests pour trouver au minimum toutes les anomalies de conformité de base). Cela signifie que nous avons écrit certains tests pour vérifier plus particulièrement l&#039;étape 2. Supposons maintenant l&#039;existence d&#039;une anomalie uniquement à l&#039;étape 2. Quand notre test échoue à l&#039;étape 4 en raison d&#039;une anomalie à l&#039;étape 2, les tests de l&#039;étape 2 échouent de façon justifiée, alors que les tests de l&#039;étape 4 échouent de façon injustifiée. Je n&#039;ai pas encore tourné mon attention sur les anomalies latentes et cachées, pour la raison que je fournirai à la fin de ce commentaire.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; ... C&#039;est pourquoi j&#039;utilise une stratégie de test différente. Il me semble que des tests d&#039;intégration complexes qui couvrent un maximum du code - également couvert par d&#039;autres tests - constitue une stratégie raisonnable, aussi longtemps que ce n&#039;est pas trop coûteux à produire ou à maintenir. Il y a un rapport coût/bénéfice qui doit être évalué par rapport au coût d&#039;opportunité, bien entendu.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; Je suis d&#039;accord, mais je vois trop souvent des développeurs (en particulier) utiliser les tests d&#039;intégration pour les aider à trouver ou éviter des anomalies alors que des tests isolés sur des objets, qui sont beaucoup moins coûteux, les aideraient justement mieux à trouver ou éviter ces anomalies. Je fonde mon entière argumentation sur l&#039;hypothèse que beaucoup de développeurs utilisent ces tests d&#039;une manière qui mène à un considérable gaspillage en efforts de maintenance.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Donc, peut-être que vous parlez d&#039;un contexte restreint où cela ne vaut pas le coup de tester une fonction particulière indirectement. Peut-être que ce n&#039;est pas le cas, mais je parie qu&#039;il est utile de prendre en considération ce type de tests. Personnellement, j&#039;aime bien les tests automatisés qui touchent beaucoup de choses à beaucoup d&#039;endroits, tant que je peux les créer et les maintenir sans perturber la sagacité de mes testeurs humains.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J. B. Rainsberger :&#039;&#039;&#039; Effectivement ! J&#039;ai voulu révéler ces différents points de façon graduelle afin d&#039;éviter de pondre 20000 mots d&#039;un coup, mais j&#039;ai limité les arguments de cette série d&#039;articles à un contexte spécifique : les développeurs écrivent des tests pour montrer la conformité de base de leur code. Par &#039;&#039;conformité de base&#039;&#039; je me réfère au mythe de la technologie parfaite : si je lance le système sur une technologie parfaite, calculera-t-il (finalement) la bonne réponse à chaque fois ? Je baptiserais un tel système de &#039;&#039;fondamentalement et totalement conforme&#039;&#039;. Alors que les tests d&#039;intégration ont une réelle valeur dans d&#039;autres contextes, les développeurs les utilisent trop souvent pour démontrer la conformité de base, et quand ils font cela ils gaspillent une quantité énorme de temps et d&#039;effort.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Traduction :&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;J&#039;ai essayé de répondre à un commentaire de James Bach, mais j&#039;ai dépassé la limite des 3000 caractères, donc j&#039;ai décidé de publier ce long commentaire sous la forme d&#039;un court article.&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Je ne comprends pas pourquoi vous baptisez de &quot;injustifiable&quot; un échec découvert lors de l&#039;exécution d&#039;un test. Je vous donne une raison très simple : JE VEUX TROUVER DES BUGS. :)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; S&#039;il vous plaît, changer la définition que j&#039;ai donné pour un mot n&#039;est pas très fair-play. Arrêtez ça ! :)&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Quand vous énoncez &quot;Nous aurons vraisemblablement des tests dont le but est de tester l&#039;étape 2, et qui échoueront bien sûr de façon justifiée&quot; (NdT : article [[3%C3%A8me%20partie%20-%20Les%20risques%20associ%C3%A9s%20aux%20tests%20trop%20longs|3ème partie - Les risques associés aux tests trop longs]]), cela me semble être une dangereuse supposition. Ce n&#039;est pas parce que nous écrivons un test, et que ce test a un but, que cela signifie que le test atteint son but. En fait, pour autant que je sache, un test n&#039;atteint JAMAIS son but le plus profond à savoir de trouver tous les bugs possibles et intéressants dans le bout de code qu&#039;il est train de tester. Bien sûr, quand je teste, je veux trouver tous les bugs intéressants, et bien sûr, je ne saurai jamais si j&#039;ai trouvé tous ceux qui valaient le coup.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; Je pense que vous avez repris ma définition spécifique de &quot;l&#039;échec justifiable&quot; et que vous l&#039;avez étendue bien au-delà de la manière dont j&#039;avais choisi de l&#039;utiliser. Quand j&#039;écris un test qui échoue en raison d&#039;une anomalie dans le code pour lequel le test était dédié, alors je baptise cet échec justifiable. Tous les autres échecs ne sont pas justifiables. Par conséquent, l&#039;énoncé que vous avez mis en avant est implicite pour moi ... mis à part mon usage imprécis du mot &quot;vraisemblablement&quot;. Permettez-moi de clarifier ce que je n&#039;ai pas exprimé. Supposons que nous avons utilisé des tests d&#039;intégration pour tester globalement ce processus en cinq étapes (en d&#039;autres termes, nous avons écrit des tests pour trouver au minimum toutes les anomalies de conformité de base). Cela signifie que nous avons écrit certains tests pour vérifier plus particulièrement l&#039;étape 2. Supposons maintenant l&#039;existence d&#039;une anomalie uniquement à l&#039;étape 2. Quand notre test échoue à l&#039;étape 4 en raison d&#039;une anomalie à l&#039;étape 2, les tests de l&#039;étape 2 échouent de façon justifiée, alors que les tests de l&#039;étape 4 échouent de façon injustifiée. Je n&#039;ai pas encore tourné mon attention sur les anomalies latentes et cachées, pour la raison que je fournirai à la fin de ce commentaire.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; ... C&#039;est pourquoi j&#039;utilise une stratégie de test différente. Il me semble que des tests d&#039;intégration complexes qui couvrent un maximum du code - également couvert par d&#039;autres tests - constitue une stratégie raisonnable, aussi longtemps que ce n&#039;est pas trop coûteux à produire ou à maintenir. Il y a un rapport coût/bénéfice qui doit être évalué par rapport au coût d&#039;opportunité, bien entendu.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; Je suis d&#039;accord, mais je vois trop souvent des développeurs (en particulier) utiliser les tests d&#039;intégration pour les aider à trouver ou éviter des anomalies alors que des tests isolés sur des objets, qui sont beaucoup moins coûteux, les aideraient justement mieux à trouver ou éviter ces anomalies. Je fonde mon entière argumentation sur l&#039;hypothèse que beaucoup de développeurs utilisent ces tests d&#039;une manière qui mène à un considérable gaspillage en efforts de maintenance.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Donc, peut-être que vous parlez d&#039;un contexte restreint où cela ne vaut pas le coup de tester une fonction particulière indirectement. Peut-être que ce n&#039;est pas le cas, mais je parie qu&#039;il est utile de prendre en considération ce type de tests. Personnellement, j&#039;aime bien les tests automatisés qui touchent beaucoup de choses à beaucoup d&#039;endroits, tant que je peux les créer et les maintenir sans perturber la sagacité de mes testeurs humains.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J. B. Rainsberger :&#039;&#039;&#039; Effectivement ! J&#039;ai voulu révéler ces différents points de façon graduelle afin d&#039;éviter de pondre 20000 mots d&#039;un coup, mais j&#039;ai limité les arguments de cette série d&#039;articles à un contexte spécifique : les développeurs écrivent des tests pour montrer la conformité de base de leur code. Par &#039;&#039;conformité de base&#039;&#039; je me réfère au mythe de la technologie parfaite : si je lance le système sur une technologie parfaite, calculera-t-il (finalement) la bonne réponse à chaque fois ? Je baptiserais un tel système de &#039;&#039;fondamentalement et totalement conforme&#039;&#039;. Alors que les tests d&#039;intégration ont une réelle valeur dans d&#039;autres contextes, les développeurs les utilisent trop souvent pour démontrer la conformité de base, et quand ils font cela ils gaspillent une quantité énorme de temps et d&#039;effort.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikiagile:diff:1.41:old-2971:rev-8694:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 17 Aug 2018 21:18:57 GMT</pubDate>
			<dc:creator>Fabrice Aimetti</dc:creator>
			<comments>https://wikiagile.coach/Discussion:Interlude_-_conformit%C3%A9_de_base</comments>
		</item>
		<item>
			<title>Fabrice Aimetti le 14 juillet 2018 à 06:44</title>
			<link>https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2971&amp;oldid=prev</link>
			<guid isPermaLink="false">https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2971&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 14 juillet 2018 à 06:44&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;Ligne 6 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 6 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Traducteur : Fabrice Aimetti&amp;lt;br /&amp;gt;  Date : 07/09/2011&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Traducteur : Fabrice Aimetti&amp;lt;br /&amp;gt;  Date : 07/09/2011&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;Traduction :&#039;&#039;&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;J&#039;ai essayé de répondre à un commentaire de James Bach, mais j&#039;ai dépassé la limite des 3000 caractères, donc j&#039;ai décidé de publier ce long commentaire sous la forme d&#039;un court article.&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Je ne comprends pas pourquoi vous baptisez de &quot;injustifiable&quot; un échec découvert lors de l&#039;exécution d&#039;un test. Je vous donne une raison très simple : JE VEUX TROUVER DES BUGS. :)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; S&#039;il vous plaît, changer la définition que j&#039;ai donné pour un mot n&#039;est pas très fair-play. Arrêtez ça ! :)&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Quand vous énoncez &quot;Nous aurons vraisemblablement des tests dont le but est de tester l&#039;étape 2, et qui échoueront bien sûr de façon justifiée&quot; (NdT : article [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/del&gt;3%C3%A8me%20partie%20-%20Les%20risques%20associ%C3%A9s%20aux%20tests%20trop%20longs 3ème partie - Les risques associés aux tests trop longs]), cela me semble être une dangereuse supposition. Ce n&#039;est pas parce que nous écrivons un test, et que ce test a un but, que cela signifie que le test atteint son but. En fait, pour autant que je sache, un test n&#039;atteint JAMAIS son but le plus profond à savoir de trouver tous les bugs possibles et intéressants dans le bout de code qu&#039;il est train de tester. Bien sûr, quand je teste, je veux trouver tous les bugs intéressants, et bien sûr, je ne saurai jamais si j&#039;ai trouvé tous ceux qui valaient le coup.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; Je pense que vous avez repris ma définition spécifique de &quot;l&#039;échec justifiable&quot; et que vous l&#039;avez étendue bien au-delà de la manière dont j&#039;avais choisi de l&#039;utiliser. Quand j&#039;écris un test qui échoue en raison d&#039;une anomalie dans le code pour lequel le test était dédié, alors je baptise cet échec justifiable. Tous les autres échecs ne sont pas justifiables. Par conséquent, l&#039;énoncé que vous avez mis en avant est implicite pour moi ... mis à part mon usage imprécis du mot &quot;vraisemblablement&quot;. Permettez-moi de clarifier ce que je n&#039;ai pas exprimé. Supposons que nous avons utilisé des tests d&#039;intégration pour tester globalement ce processus en cinq étapes (en d&#039;autres termes, nous avons écrit des tests pour trouver au minimum toutes les anomalies de conformité de base). Cela signifie que nous avons écrit certains tests pour vérifier plus particulièrement l&#039;étape 2. Supposons maintenant l&#039;existence d&#039;une anomalie uniquement à l&#039;étape 2. Quand notre test échoue à l&#039;étape 4 en raison d&#039;une anomalie à l&#039;étape 2, les tests de l&#039;étape 2 échouent de façon justifiée, alors que les tests de l&#039;étape 4 échouent de façon injustifiée. Je n&#039;ai pas encore tourné mon attention sur les anomalies latentes et cachées, pour la raison que je fournirai à la fin de ce commentaire.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; ... C&#039;est pourquoi j&#039;utilise une stratégie de test différente. Il me semble que des tests d&#039;intégration complexes qui couvrent un maximum du code - également couvert par d&#039;autres tests - constitue une stratégie raisonnable, aussi longtemps que ce n&#039;est pas trop coûteux à produire ou à maintenir. Il y a un rapport coût/bénéfice qui doit être évalué par rapport au coût d&#039;opportunité, bien entendu.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; Je suis d&#039;accord, mais je vois trop souvent des développeurs (en particulier) utiliser les tests d&#039;intégration pour les aider à trouver ou éviter des anomalies alors que des tests isolés sur des objets, qui sont beaucoup moins coûteux, les aideraient justement mieux à trouver ou éviter ces anomalies. Je fonde mon entière argumentation sur l&#039;hypothèse que beaucoup de développeurs utilisent ces tests d&#039;une manière qui mène à un considérable gaspillage en efforts de maintenance.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Donc, peut-être que vous parlez d&#039;un contexte restreint où cela ne vaut pas le coup de tester une fonction particulière indirectement. Peut-être que ce n&#039;est pas le cas, mais je parie qu&#039;il est utile de prendre en considération ce type de tests. Personnellement, j&#039;aime bien les tests automatisés qui touchent beaucoup de choses à beaucoup d&#039;endroits, tant que je peux les créer et les maintenir sans perturber la sagacité de mes testeurs humains.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J. B. Rainsberger :&#039;&#039;&#039; Effectivement ! J&#039;ai voulu révéler ces différents points de façon graduelle afin d&#039;éviter de pondre 20000 mots d&#039;un coup, mais j&#039;ai limité les arguments de cette série d&#039;articles à un contexte spécifique : les développeurs écrivent des tests pour montrer la conformité de base de leur code. Par &#039;&#039;conformité de base&#039;&#039; je me réfère au mythe de la technologie parfaite : si je lance le système sur une technologie parfaite, calculera-t-il (finalement) la bonne réponse à chaque fois ? Je baptiserais un tel système de &#039;&#039;fondamentalement et totalement conforme&#039;&#039;. Alors que les tests d&#039;intégration ont une réelle valeur dans d&#039;autres contextes, les développeurs les utilisent trop souvent pour démontrer la conformité de base, et quand ils font cela ils gaspillent une quantité énorme de temps et d&#039;effort.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;Traduction :&#039;&#039;&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;J&#039;ai essayé de répondre à un commentaire de James Bach, mais j&#039;ai dépassé la limite des 3000 caractères, donc j&#039;ai décidé de publier ce long commentaire sous la forme d&#039;un court article.&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Je ne comprends pas pourquoi vous baptisez de &quot;injustifiable&quot; un échec découvert lors de l&#039;exécution d&#039;un test. Je vous donne une raison très simple : JE VEUX TROUVER DES BUGS. :)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; S&#039;il vous plaît, changer la définition que j&#039;ai donné pour un mot n&#039;est pas très fair-play. Arrêtez ça ! :)&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Quand vous énoncez &quot;Nous aurons vraisemblablement des tests dont le but est de tester l&#039;étape 2, et qui échoueront bien sûr de façon justifiée&quot; (NdT : article [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/ins&gt;3%C3%A8me%20partie%20-%20Les%20risques%20associ%C3%A9s%20aux%20tests%20trop%20longs&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/ins&gt;3ème partie - Les risques associés aux tests trop longs&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;]), cela me semble être une dangereuse supposition. Ce n&#039;est pas parce que nous écrivons un test, et que ce test a un but, que cela signifie que le test atteint son but. En fait, pour autant que je sache, un test n&#039;atteint JAMAIS son but le plus profond à savoir de trouver tous les bugs possibles et intéressants dans le bout de code qu&#039;il est train de tester. Bien sûr, quand je teste, je veux trouver tous les bugs intéressants, et bien sûr, je ne saurai jamais si j&#039;ai trouvé tous ceux qui valaient le coup.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; Je pense que vous avez repris ma définition spécifique de &quot;l&#039;échec justifiable&quot; et que vous l&#039;avez étendue bien au-delà de la manière dont j&#039;avais choisi de l&#039;utiliser. Quand j&#039;écris un test qui échoue en raison d&#039;une anomalie dans le code pour lequel le test était dédié, alors je baptise cet échec justifiable. Tous les autres échecs ne sont pas justifiables. Par conséquent, l&#039;énoncé que vous avez mis en avant est implicite pour moi ... mis à part mon usage imprécis du mot &quot;vraisemblablement&quot;. Permettez-moi de clarifier ce que je n&#039;ai pas exprimé. Supposons que nous avons utilisé des tests d&#039;intégration pour tester globalement ce processus en cinq étapes (en d&#039;autres termes, nous avons écrit des tests pour trouver au minimum toutes les anomalies de conformité de base). Cela signifie que nous avons écrit certains tests pour vérifier plus particulièrement l&#039;étape 2. Supposons maintenant l&#039;existence d&#039;une anomalie uniquement à l&#039;étape 2. Quand notre test échoue à l&#039;étape 4 en raison d&#039;une anomalie à l&#039;étape 2, les tests de l&#039;étape 2 échouent de façon justifiée, alors que les tests de l&#039;étape 4 échouent de façon injustifiée. Je n&#039;ai pas encore tourné mon attention sur les anomalies latentes et cachées, pour la raison que je fournirai à la fin de ce commentaire.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; ... C&#039;est pourquoi j&#039;utilise une stratégie de test différente. Il me semble que des tests d&#039;intégration complexes qui couvrent un maximum du code - également couvert par d&#039;autres tests - constitue une stratégie raisonnable, aussi longtemps que ce n&#039;est pas trop coûteux à produire ou à maintenir. Il y a un rapport coût/bénéfice qui doit être évalué par rapport au coût d&#039;opportunité, bien entendu.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J.B. Rainsberger :&#039;&#039;&#039; Je suis d&#039;accord, mais je vois trop souvent des développeurs (en particulier) utiliser les tests d&#039;intégration pour les aider à trouver ou éviter des anomalies alors que des tests isolés sur des objets, qui sont beaucoup moins coûteux, les aideraient justement mieux à trouver ou éviter ces anomalies. Je fonde mon entière argumentation sur l&#039;hypothèse que beaucoup de développeurs utilisent ces tests d&#039;une manière qui mène à un considérable gaspillage en efforts de maintenance.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;James Bach :&#039;&#039;&#039; Donc, peut-être que vous parlez d&#039;un contexte restreint où cela ne vaut pas le coup de tester une fonction particulière indirectement. Peut-être que ce n&#039;est pas le cas, mais je parie qu&#039;il est utile de prendre en considération ce type de tests. Personnellement, j&#039;aime bien les tests automatisés qui touchent beaucoup de choses à beaucoup d&#039;endroits, tant que je peux les créer et les maintenir sans perturber la sagacité de mes testeurs humains.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&quot;display: block; text-align: justify&quot;&amp;gt;&#039;&#039;&#039;J. B. Rainsberger :&#039;&#039;&#039; Effectivement ! J&#039;ai voulu révéler ces différents points de façon graduelle afin d&#039;éviter de pondre 20000 mots d&#039;un coup, mais j&#039;ai limité les arguments de cette série d&#039;articles à un contexte spécifique : les développeurs écrivent des tests pour montrer la conformité de base de leur code. Par &#039;&#039;conformité de base&#039;&#039; je me réfère au mythe de la technologie parfaite : si je lance le système sur une technologie parfaite, calculera-t-il (finalement) la bonne réponse à chaque fois ? Je baptiserais un tel système de &#039;&#039;fondamentalement et totalement conforme&#039;&#039;. Alors que les tests d&#039;intégration ont une réelle valeur dans d&#039;autres contextes, les développeurs les utilisent trop souvent pour démontrer la conformité de base, et quand ils font cela ils gaspillent une quantité énorme de temps et d&#039;effort.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikiagile:diff:1.41:old-2970:rev-2971:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 14 Jul 2018 06:44:52 GMT</pubDate>
			<dc:creator>Fabrice Aimetti</dc:creator>
			<comments>https://wikiagile.coach/Discussion:Interlude_-_conformit%C3%A9_de_base</comments>
		</item>
		<item>
			<title>Fabrice Aimetti le 14 juillet 2018 à 06:44</title>
			<link>https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2970&amp;oldid=prev</link>
			<guid isPermaLink="false">https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2970&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 14 juillet 2018 à 06:44&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Portail Equipe de développement]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Portail Equipe de développement]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: J. B. Rainsberger]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: J. B. Rainsberger]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category: Tests]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div id=&amp;quot;content_view&amp;quot; class=&amp;quot;wiki&amp;quot; style=&amp;quot;display: block&amp;quot;&amp;gt; Auteur : J. B. Rainsberger&amp;lt;br /&amp;gt;  Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt;  Date : 2009&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div id=&amp;quot;content_view&amp;quot; class=&amp;quot;wiki&amp;quot; style=&amp;quot;display: block&amp;quot;&amp;gt; Auteur : J. B. Rainsberger&amp;lt;br /&amp;gt;  Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt;  Date : 2009&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikiagile:diff:1.41:old-2103:rev-2970:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 14 Jul 2018 06:44:24 GMT</pubDate>
			<dc:creator>Fabrice Aimetti</dc:creator>
			<comments>https://wikiagile.coach/Discussion:Interlude_-_conformit%C3%A9_de_base</comments>
		</item>
		<item>
			<title>Fabrice Aimetti le 6 juillet 2018 à 08:05</title>
			<link>https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2103&amp;oldid=prev</link>
			<guid isPermaLink="false">https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2103&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 6 juillet 2018 à 08:05&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Portail Equipe de développement]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Portail Equipe de développement]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: J.B. Rainsberger]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: J. B. Rainsberger]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div id=&amp;quot;content_view&amp;quot; class=&amp;quot;wiki&amp;quot; style=&amp;quot;display: block&amp;quot;&amp;gt; Auteur : J. B. Rainsberger&amp;lt;br /&amp;gt;  Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt;  Date : 2009&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div id=&amp;quot;content_view&amp;quot; class=&amp;quot;wiki&amp;quot; style=&amp;quot;display: block&amp;quot;&amp;gt; Auteur : J. B. Rainsberger&amp;lt;br /&amp;gt;  Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt;  Date : 2009&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikiagile:diff:1.41:old-2102:rev-2103:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 06 Jul 2018 08:05:54 GMT</pubDate>
			<dc:creator>Fabrice Aimetti</dc:creator>
			<comments>https://wikiagile.coach/Discussion:Interlude_-_conformit%C3%A9_de_base</comments>
		</item>
		<item>
			<title>Fabrice Aimetti le 6 juillet 2018 à 08:05</title>
			<link>https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2102&amp;oldid=prev</link>
			<guid isPermaLink="false">https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2102&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 6 juillet 2018 à 08:05&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Portail Equipe de développement]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Portail Equipe de développement]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: J.B. Rainsberger]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: J.B. Rainsberger]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div id=&quot;content_view&quot; class=&quot;wiki&quot; style=&quot;display: block&quot;&amp;gt; Auteur : &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[/J.%20B.%20Rainsberger &lt;/del&gt;J. B. Rainsberger&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;&amp;lt;br /&amp;gt;  Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt;  Date : 2009&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div id=&quot;content_view&quot; class=&quot;wiki&quot; style=&quot;display: block&quot;&amp;gt; Auteur : J. B. Rainsberger&amp;lt;br /&amp;gt;  Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt;  Date : 2009&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Traducteur : Fabrice Aimetti&amp;lt;br /&amp;gt;  Date : 07/09/2011&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Traducteur : Fabrice Aimetti&amp;lt;br /&amp;gt;  Date : 07/09/2011&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Traduction :&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;J&amp;#039;ai essayé de répondre à un commentaire de James Bach, mais j&amp;#039;ai dépassé la limite des 3000 caractères, donc j&amp;#039;ai décidé de publier ce long commentaire sous la forme d&amp;#039;un court article.&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Je ne comprends pas pourquoi vous baptisez de &amp;quot;injustifiable&amp;quot; un échec découvert lors de l&amp;#039;exécution d&amp;#039;un test. Je vous donne une raison très simple : JE VEUX TROUVER DES BUGS. :)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; S&amp;#039;il vous plaît, changer la définition que j&amp;#039;ai donné pour un mot n&amp;#039;est pas très fair-play. Arrêtez ça ! :)&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Quand vous énoncez &amp;quot;Nous aurons vraisemblablement des tests dont le but est de tester l&amp;#039;étape 2, et qui échoueront bien sûr de façon justifiée&amp;quot; (NdT : article [/3%C3%A8me%20partie%20-%20Les%20risques%20associ%C3%A9s%20aux%20tests%20trop%20longs 3ème partie - Les risques associés aux tests trop longs]), cela me semble être une dangereuse supposition. Ce n&amp;#039;est pas parce que nous écrivons un test, et que ce test a un but, que cela signifie que le test atteint son but. En fait, pour autant que je sache, un test n&amp;#039;atteint JAMAIS son but le plus profond à savoir de trouver tous les bugs possibles et intéressants dans le bout de code qu&amp;#039;il est train de tester. Bien sûr, quand je teste, je veux trouver tous les bugs intéressants, et bien sûr, je ne saurai jamais si j&amp;#039;ai trouvé tous ceux qui valaient le coup.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Je pense que vous avez repris ma définition spécifique de &amp;quot;l&amp;#039;échec justifiable&amp;quot; et que vous l&amp;#039;avez étendue bien au-delà de la manière dont j&amp;#039;avais choisi de l&amp;#039;utiliser. Quand j&amp;#039;écris un test qui échoue en raison d&amp;#039;une anomalie dans le code pour lequel le test était dédié, alors je baptise cet échec justifiable. Tous les autres échecs ne sont pas justifiables. Par conséquent, l&amp;#039;énoncé que vous avez mis en avant est implicite pour moi ... mis à part mon usage imprécis du mot &amp;quot;vraisemblablement&amp;quot;. Permettez-moi de clarifier ce que je n&amp;#039;ai pas exprimé. Supposons que nous avons utilisé des tests d&amp;#039;intégration pour tester globalement ce processus en cinq étapes (en d&amp;#039;autres termes, nous avons écrit des tests pour trouver au minimum toutes les anomalies de conformité de base). Cela signifie que nous avons écrit certains tests pour vérifier plus particulièrement l&amp;#039;étape 2. Supposons maintenant l&amp;#039;existence d&amp;#039;une anomalie uniquement à l&amp;#039;étape 2. Quand notre test échoue à l&amp;#039;étape 4 en raison d&amp;#039;une anomalie à l&amp;#039;étape 2, les tests de l&amp;#039;étape 2 échouent de façon justifiée, alors que les tests de l&amp;#039;étape 4 échouent de façon injustifiée. Je n&amp;#039;ai pas encore tourné mon attention sur les anomalies latentes et cachées, pour la raison que je fournirai à la fin de ce commentaire.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; ... C&amp;#039;est pourquoi j&amp;#039;utilise une stratégie de test différente. Il me semble que des tests d&amp;#039;intégration complexes qui couvrent un maximum du code - également couvert par d&amp;#039;autres tests - constitue une stratégie raisonnable, aussi longtemps que ce n&amp;#039;est pas trop coûteux à produire ou à maintenir. Il y a un rapport coût/bénéfice qui doit être évalué par rapport au coût d&amp;#039;opportunité, bien entendu.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Je suis d&amp;#039;accord, mais je vois trop souvent des développeurs (en particulier) utiliser les tests d&amp;#039;intégration pour les aider à trouver ou éviter des anomalies alors que des tests isolés sur des objets, qui sont beaucoup moins coûteux, les aideraient justement mieux à trouver ou éviter ces anomalies. Je fonde mon entière argumentation sur l&amp;#039;hypothèse que beaucoup de développeurs utilisent ces tests d&amp;#039;une manière qui mène à un considérable gaspillage en efforts de maintenance.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Donc, peut-être que vous parlez d&amp;#039;un contexte restreint où cela ne vaut pas le coup de tester une fonction particulière indirectement. Peut-être que ce n&amp;#039;est pas le cas, mais je parie qu&amp;#039;il est utile de prendre en considération ce type de tests. Personnellement, j&amp;#039;aime bien les tests automatisés qui touchent beaucoup de choses à beaucoup d&amp;#039;endroits, tant que je peux les créer et les maintenir sans perturber la sagacité de mes testeurs humains.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J. B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Effectivement ! J&amp;#039;ai voulu révéler ces différents points de façon graduelle afin d&amp;#039;éviter de pondre 20000 mots d&amp;#039;un coup, mais j&amp;#039;ai limité les arguments de cette série d&amp;#039;articles à un contexte spécifique : les développeurs écrivent des tests pour montrer la conformité de base de leur code. Par &amp;#039;&amp;#039;conformité de base&amp;#039;&amp;#039; je me réfère au mythe de la technologie parfaite : si je lance le système sur une technologie parfaite, calculera-t-il (finalement) la bonne réponse à chaque fois ? Je baptiserais un tel système de &amp;#039;&amp;#039;fondamentalement et totalement conforme&amp;#039;&amp;#039;. Alors que les tests d&amp;#039;intégration ont une réelle valeur dans d&amp;#039;autres contextes, les développeurs les utilisent trop souvent pour démontrer la conformité de base, et quand ils font cela ils gaspillent une quantité énorme de temps et d&amp;#039;effort.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Traduction :&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;J&amp;#039;ai essayé de répondre à un commentaire de James Bach, mais j&amp;#039;ai dépassé la limite des 3000 caractères, donc j&amp;#039;ai décidé de publier ce long commentaire sous la forme d&amp;#039;un court article.&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Je ne comprends pas pourquoi vous baptisez de &amp;quot;injustifiable&amp;quot; un échec découvert lors de l&amp;#039;exécution d&amp;#039;un test. Je vous donne une raison très simple : JE VEUX TROUVER DES BUGS. :)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; S&amp;#039;il vous plaît, changer la définition que j&amp;#039;ai donné pour un mot n&amp;#039;est pas très fair-play. Arrêtez ça ! :)&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Quand vous énoncez &amp;quot;Nous aurons vraisemblablement des tests dont le but est de tester l&amp;#039;étape 2, et qui échoueront bien sûr de façon justifiée&amp;quot; (NdT : article [/3%C3%A8me%20partie%20-%20Les%20risques%20associ%C3%A9s%20aux%20tests%20trop%20longs 3ème partie - Les risques associés aux tests trop longs]), cela me semble être une dangereuse supposition. Ce n&amp;#039;est pas parce que nous écrivons un test, et que ce test a un but, que cela signifie que le test atteint son but. En fait, pour autant que je sache, un test n&amp;#039;atteint JAMAIS son but le plus profond à savoir de trouver tous les bugs possibles et intéressants dans le bout de code qu&amp;#039;il est train de tester. Bien sûr, quand je teste, je veux trouver tous les bugs intéressants, et bien sûr, je ne saurai jamais si j&amp;#039;ai trouvé tous ceux qui valaient le coup.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Je pense que vous avez repris ma définition spécifique de &amp;quot;l&amp;#039;échec justifiable&amp;quot; et que vous l&amp;#039;avez étendue bien au-delà de la manière dont j&amp;#039;avais choisi de l&amp;#039;utiliser. Quand j&amp;#039;écris un test qui échoue en raison d&amp;#039;une anomalie dans le code pour lequel le test était dédié, alors je baptise cet échec justifiable. Tous les autres échecs ne sont pas justifiables. Par conséquent, l&amp;#039;énoncé que vous avez mis en avant est implicite pour moi ... mis à part mon usage imprécis du mot &amp;quot;vraisemblablement&amp;quot;. Permettez-moi de clarifier ce que je n&amp;#039;ai pas exprimé. Supposons que nous avons utilisé des tests d&amp;#039;intégration pour tester globalement ce processus en cinq étapes (en d&amp;#039;autres termes, nous avons écrit des tests pour trouver au minimum toutes les anomalies de conformité de base). Cela signifie que nous avons écrit certains tests pour vérifier plus particulièrement l&amp;#039;étape 2. Supposons maintenant l&amp;#039;existence d&amp;#039;une anomalie uniquement à l&amp;#039;étape 2. Quand notre test échoue à l&amp;#039;étape 4 en raison d&amp;#039;une anomalie à l&amp;#039;étape 2, les tests de l&amp;#039;étape 2 échouent de façon justifiée, alors que les tests de l&amp;#039;étape 4 échouent de façon injustifiée. Je n&amp;#039;ai pas encore tourné mon attention sur les anomalies latentes et cachées, pour la raison que je fournirai à la fin de ce commentaire.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; ... C&amp;#039;est pourquoi j&amp;#039;utilise une stratégie de test différente. Il me semble que des tests d&amp;#039;intégration complexes qui couvrent un maximum du code - également couvert par d&amp;#039;autres tests - constitue une stratégie raisonnable, aussi longtemps que ce n&amp;#039;est pas trop coûteux à produire ou à maintenir. Il y a un rapport coût/bénéfice qui doit être évalué par rapport au coût d&amp;#039;opportunité, bien entendu.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Je suis d&amp;#039;accord, mais je vois trop souvent des développeurs (en particulier) utiliser les tests d&amp;#039;intégration pour les aider à trouver ou éviter des anomalies alors que des tests isolés sur des objets, qui sont beaucoup moins coûteux, les aideraient justement mieux à trouver ou éviter ces anomalies. Je fonde mon entière argumentation sur l&amp;#039;hypothèse que beaucoup de développeurs utilisent ces tests d&amp;#039;une manière qui mène à un considérable gaspillage en efforts de maintenance.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Donc, peut-être que vous parlez d&amp;#039;un contexte restreint où cela ne vaut pas le coup de tester une fonction particulière indirectement. Peut-être que ce n&amp;#039;est pas le cas, mais je parie qu&amp;#039;il est utile de prendre en considération ce type de tests. Personnellement, j&amp;#039;aime bien les tests automatisés qui touchent beaucoup de choses à beaucoup d&amp;#039;endroits, tant que je peux les créer et les maintenir sans perturber la sagacité de mes testeurs humains.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J. B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Effectivement ! J&amp;#039;ai voulu révéler ces différents points de façon graduelle afin d&amp;#039;éviter de pondre 20000 mots d&amp;#039;un coup, mais j&amp;#039;ai limité les arguments de cette série d&amp;#039;articles à un contexte spécifique : les développeurs écrivent des tests pour montrer la conformité de base de leur code. Par &amp;#039;&amp;#039;conformité de base&amp;#039;&amp;#039; je me réfère au mythe de la technologie parfaite : si je lance le système sur une technologie parfaite, calculera-t-il (finalement) la bonne réponse à chaque fois ? Je baptiserais un tel système de &amp;#039;&amp;#039;fondamentalement et totalement conforme&amp;#039;&amp;#039;. Alors que les tests d&amp;#039;intégration ont une réelle valeur dans d&amp;#039;autres contextes, les développeurs les utilisent trop souvent pour démontrer la conformité de base, et quand ils font cela ils gaspillent une quantité énorme de temps et d&amp;#039;effort.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikiagile:diff:1.41:old-2101:rev-2102:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 06 Jul 2018 08:05:43 GMT</pubDate>
			<dc:creator>Fabrice Aimetti</dc:creator>
			<comments>https://wikiagile.coach/Discussion:Interlude_-_conformit%C3%A9_de_base</comments>
		</item>
		<item>
			<title>Fabrice Aimetti : Page créée avec « Category: Portail Equipe de développement Category: J.B. Rainsberger &lt;div id=&quot;content_view&quot; class=&quot;wiki&quot; style=&quot;display: block&quot;&gt; Auteur : [/J.%20B.%20Rainsberger... »</title>
			<link>https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2101&amp;oldid=prev</link>
			<guid isPermaLink="false">https://wikiagile.coach/index.php?title=Interlude_-_conformit%C3%A9_de_base&amp;diff=2101&amp;oldid=prev</guid>
			<description>&lt;p&gt;Page créée avec « &lt;a href=&quot;/Cat%C3%A9gorie:Portail_Equipe_de_d%C3%A9veloppement&quot; title=&quot;Catégorie:Portail Equipe de développement&quot;&gt;Category: Portail Equipe de développement&lt;/a&gt; &lt;a href=&quot;/index.php?title=Cat%C3%A9gorie:J.B._Rainsberger&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Catégorie:J.B. Rainsberger (page inexistante)&quot;&gt;Category: J.B. Rainsberger&lt;/a&gt; &amp;lt;div id=&amp;quot;content_view&amp;quot; class=&amp;quot;wiki&amp;quot; style=&amp;quot;display: block&amp;quot;&amp;gt; Auteur : [/J.%20B.%20Rainsberger... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category: Portail Equipe de développement]]&lt;br /&gt;
[[Category: J.B. Rainsberger]]&lt;br /&gt;
&amp;lt;div id=&amp;quot;content_view&amp;quot; class=&amp;quot;wiki&amp;quot; style=&amp;quot;display: block&amp;quot;&amp;gt; Auteur : [/J.%20B.%20Rainsberger J. B. Rainsberger]&amp;lt;br /&amp;gt;  Source : [http://www.jbrains.ca/permalink/interlude-basic-correctness Interlude: Basic Correctness]&amp;lt;br /&amp;gt;  Date : 2009&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
 Traducteur : Fabrice Aimetti&amp;lt;br /&amp;gt;  Date : 07/09/2011&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;Traduction :&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;J&amp;#039;ai essayé de répondre à un commentaire de James Bach, mais j&amp;#039;ai dépassé la limite des 3000 caractères, donc j&amp;#039;ai décidé de publier ce long commentaire sous la forme d&amp;#039;un court article.&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Je ne comprends pas pourquoi vous baptisez de &amp;quot;injustifiable&amp;quot; un échec découvert lors de l&amp;#039;exécution d&amp;#039;un test. Je vous donne une raison très simple : JE VEUX TROUVER DES BUGS. :)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; S&amp;#039;il vous plaît, changer la définition que j&amp;#039;ai donné pour un mot n&amp;#039;est pas très fair-play. Arrêtez ça ! :)&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Quand vous énoncez &amp;quot;Nous aurons vraisemblablement des tests dont le but est de tester l&amp;#039;étape 2, et qui échoueront bien sûr de façon justifiée&amp;quot; (NdT : article [/3%C3%A8me%20partie%20-%20Les%20risques%20associ%C3%A9s%20aux%20tests%20trop%20longs 3ème partie - Les risques associés aux tests trop longs]), cela me semble être une dangereuse supposition. Ce n&amp;#039;est pas parce que nous écrivons un test, et que ce test a un but, que cela signifie que le test atteint son but. En fait, pour autant que je sache, un test n&amp;#039;atteint JAMAIS son but le plus profond à savoir de trouver tous les bugs possibles et intéressants dans le bout de code qu&amp;#039;il est train de tester. Bien sûr, quand je teste, je veux trouver tous les bugs intéressants, et bien sûr, je ne saurai jamais si j&amp;#039;ai trouvé tous ceux qui valaient le coup.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Je pense que vous avez repris ma définition spécifique de &amp;quot;l&amp;#039;échec justifiable&amp;quot; et que vous l&amp;#039;avez étendue bien au-delà de la manière dont j&amp;#039;avais choisi de l&amp;#039;utiliser. Quand j&amp;#039;écris un test qui échoue en raison d&amp;#039;une anomalie dans le code pour lequel le test était dédié, alors je baptise cet échec justifiable. Tous les autres échecs ne sont pas justifiables. Par conséquent, l&amp;#039;énoncé que vous avez mis en avant est implicite pour moi ... mis à part mon usage imprécis du mot &amp;quot;vraisemblablement&amp;quot;. Permettez-moi de clarifier ce que je n&amp;#039;ai pas exprimé. Supposons que nous avons utilisé des tests d&amp;#039;intégration pour tester globalement ce processus en cinq étapes (en d&amp;#039;autres termes, nous avons écrit des tests pour trouver au minimum toutes les anomalies de conformité de base). Cela signifie que nous avons écrit certains tests pour vérifier plus particulièrement l&amp;#039;étape 2. Supposons maintenant l&amp;#039;existence d&amp;#039;une anomalie uniquement à l&amp;#039;étape 2. Quand notre test échoue à l&amp;#039;étape 4 en raison d&amp;#039;une anomalie à l&amp;#039;étape 2, les tests de l&amp;#039;étape 2 échouent de façon justifiée, alors que les tests de l&amp;#039;étape 4 échouent de façon injustifiée. Je n&amp;#039;ai pas encore tourné mon attention sur les anomalies latentes et cachées, pour la raison que je fournirai à la fin de ce commentaire.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; ... C&amp;#039;est pourquoi j&amp;#039;utilise une stratégie de test différente. Il me semble que des tests d&amp;#039;intégration complexes qui couvrent un maximum du code - également couvert par d&amp;#039;autres tests - constitue une stratégie raisonnable, aussi longtemps que ce n&amp;#039;est pas trop coûteux à produire ou à maintenir. Il y a un rapport coût/bénéfice qui doit être évalué par rapport au coût d&amp;#039;opportunité, bien entendu.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J.B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Je suis d&amp;#039;accord, mais je vois trop souvent des développeurs (en particulier) utiliser les tests d&amp;#039;intégration pour les aider à trouver ou éviter des anomalies alors que des tests isolés sur des objets, qui sont beaucoup moins coûteux, les aideraient justement mieux à trouver ou éviter ces anomalies. Je fonde mon entière argumentation sur l&amp;#039;hypothèse que beaucoup de développeurs utilisent ces tests d&amp;#039;une manière qui mène à un considérable gaspillage en efforts de maintenance.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;James Bach :&amp;#039;&amp;#039;&amp;#039; Donc, peut-être que vous parlez d&amp;#039;un contexte restreint où cela ne vaut pas le coup de tester une fonction particulière indirectement. Peut-être que ce n&amp;#039;est pas le cas, mais je parie qu&amp;#039;il est utile de prendre en considération ce type de tests. Personnellement, j&amp;#039;aime bien les tests automatisés qui touchent beaucoup de choses à beaucoup d&amp;#039;endroits, tant que je peux les créer et les maintenir sans perturber la sagacité de mes testeurs humains.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;display: block; text-align: justify&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;J. B. Rainsberger :&amp;#039;&amp;#039;&amp;#039; Effectivement ! J&amp;#039;ai voulu révéler ces différents points de façon graduelle afin d&amp;#039;éviter de pondre 20000 mots d&amp;#039;un coup, mais j&amp;#039;ai limité les arguments de cette série d&amp;#039;articles à un contexte spécifique : les développeurs écrivent des tests pour montrer la conformité de base de leur code. Par &amp;#039;&amp;#039;conformité de base&amp;#039;&amp;#039; je me réfère au mythe de la technologie parfaite : si je lance le système sur une technologie parfaite, calculera-t-il (finalement) la bonne réponse à chaque fois ? Je baptiserais un tel système de &amp;#039;&amp;#039;fondamentalement et totalement conforme&amp;#039;&amp;#039;. Alors que les tests d&amp;#039;intégration ont une réelle valeur dans d&amp;#039;autres contextes, les développeurs les utilisent trop souvent pour démontrer la conformité de base, et quand ils font cela ils gaspillent une quantité énorme de temps et d&amp;#039;effort.&amp;lt;/span&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 06 Jul 2018 08:05:32 GMT</pubDate>
			<dc:creator>Fabrice Aimetti</dc:creator>
			<comments>https://wikiagile.coach/Discussion:Interlude_-_conformit%C3%A9_de_base</comments>
		</item>
</channel></rss>