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

<channel>
	<title>Pyxis blog &#187; GreenPepper</title>
	<atom:link href="http://pyxis-tech.com/blog/category/produits/greenpepper/feed/" rel="self" type="application/rss+xml" />
	<link>http://pyxis-tech.com/blog</link>
	<description>agilité, coaching, formation, développement logiciel</description>
	<lastBuildDate>Tue, 07 Feb 2012 14:11:12 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Agile in a Command-and-Control Organization : What to do when upper management forces overtime?</title>
		<link>http://pyxis-tech.com/blog/2010/08/23/agile-in-a-command-and-control-organization-what-to-do-when-upper-management-forces-overtime/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-in-a-command-and-control-organization-what-to-do-when-upper-management-forces-overtime</link>
		<comments>http://pyxis-tech.com/blog/2010/08/23/agile-in-a-command-and-control-organization-what-to-do-when-upper-management-forces-overtime/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 02:22:29 +0000</pubDate>
		<dc:creator>martin proulx</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[GreenPepper]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Nouvelles et événements]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Vie @ Pyxis]]></category>

		<guid isPermaLink="false">http://6.9</guid>
		<description><![CDATA[My colleague François Perron launched a very interesting discussion on our private wiki &#8211; &#8220;As a coach, what to do when executives and upper management force the project team to do over time in order to meet deadlines?&#8221;. As you can probably guess, this initiated very interesting discussions and an obvious reaction to such an [...]

<h3>
You might be interested in these related posts:</h3><ol><li><a href="http://analytical-mind.com/2010/08/12/mommy-i-dont-feel-so-good-im-a-people-manager-in-an-agile-organization/" rel="bookmark" title="Permanent Link: I don’t feel so good – I’m a people manager in an Agile organization">I don&#8217;t feel so good &#8211; I&#8217;m a people manager in an Agile organization</a></li>
<li><a href="http://analytical-mind.com/2010/01/03/does-your-organization-support-prostitution/" rel="bookmark" title="Permanent Link: Does your organization support prostitution?">Does your organization support prostitution?</a></li>
<li><a href="http://analytical-mind.com/2009/08/10/defining-agile-management-part-1/" rel="bookmark" title="Permanent Link: Defining Agile Management – part 1">Defining Agile Management &#8211; part 1</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 12px;"><a href="http://api.tweetmeme.com/share?url=http://analytical-mind.com/2010/08/22/agile-in-a-command-and-control-organization-what-to-do-when-upper-management-forces-overtime/">

<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://analytical-mind.com/2010/08/22/agile-in-a-command-and-control-organization-what-to-do-when-upper-management-forces-overtime/&amp;source=analytical_mind&amp;style=normal&amp;service=bit.ly&amp;b=2" alt="" width="50" height="61" />

</a></div>
<a href="http://www.flickr.com/photos/mylifestory/3005052536/sizes/z/in/photostream/"><img class="alignright size-full wp-image-1515" title="Working Over Time" src="http://analytical-mind.com/wp-content/uploads/2010/08/Working-Over-Time.jpg" alt="Image by MyLifeStory" width="410" height="273" /></a>My colleague <a href="http://ca.linkedin.com/in/fperron">François Perron</a> launched a very interesting discussion on our private wiki – “As a coach, what to do when executives and upper management force the project team to do over time in order to meet deadlines?”.

As you can probably guess, this initiated very interesting discussions and an obvious reaction to such an approach.

Everyone agreed that due to the project visibility and the position of the organization within its market, the project launch date was critical. Everyone also understood that the organization had very few options so nobody debated the need to achieve results. The discussion was strictly around which measures to use in an Agile context.

I’ll admit up front that I am biased toward intrinsic motivation (I really loved <a href="http://analytical-mind.com/2010/06/07/the-surprising-truth-about-what-motivates-us/">Drive by Dan Pink</a>) and the fact that it is well suited for an agile environment.

As such, my first impression to the conversation that was going on were:
<ul>
	<li>Does the organization wish that employees spend more hours at the office (attendance) or would they prefer more engagement (commitment)?</li>
	<li>If their choice is to increase the hours of attendance, imposing overtime will achieve this goal while giving them a false sense of increased performance. People will show they are working longer hours but the real throughput is unlikely to be much higher. In addition, software development is a brain intensive activity and reducing the amount of rest people get is likely to increase the number of mistakes they make.</li>
	<li>On the contrary, if the organization wanted more involvement, the inclusion of team members in determining the best way to achieve the results would probably come to a better decision – even possibly leading the willingness to do over time</li>
</ul>
<span style="font-size: 13.2px;">It appears to me that by forcing overtime, the executives and senior managers will probably collect their bonus and congratulate each others in the short term only to realize in the longer term that they have simply pushed the problem forward for others to deal with – and possibly request more over time in the long run.</span>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://analytical-mind.com/wp-content/plugins/add-to-any/share_save_171_16.png" alt="Share" width="171" height="16" /></a>

You might be interested in these related posts:
<ol>
	<li><a title="Permanent Link: I don’t feel so good – I’m a people manager in an Agile organization" href="http://analytical-mind.com/2010/08/12/mommy-i-dont-feel-so-good-im-a-people-manager-in-an-agile-organization/" rel="bookmark">I don’t feel so good – I’m a people manager in an Agile organization</a></li>
	<li><a title="Permanent Link: Does your organization support prostitution?" href="http://analytical-mind.com/2010/01/03/does-your-organization-support-prostitution/" rel="bookmark">Does your organization support prostitution?</a></li>
	<li><a title="Permanent Link: Defining Agile Management – part 1" href="http://analytical-mind.com/2009/08/10/defining-agile-management-part-1/" rel="bookmark">Defining Agile Management – part 1</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://pyxis-tech.com/blog/2010/08/23/agile-in-a-command-and-control-organization-what-to-do-when-upper-management-forces-overtime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GreenPepper 2.7 now available</title>
		<link>http://pyxis-tech.com/blog/2010/03/08/greenpepper-2-7-now-available/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=greenpepper-2-7-now-available</link>
		<comments>http://pyxis-tech.com/blog/2010/03/08/greenpepper-2-7-now-available/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:19:28 +0000</pubDate>
		<dc:creator>pyxis</dc:creator>
				<category><![CDATA[GreenPepper]]></category>

		<guid isPermaLink="false">http://13.6</guid>
		<description><![CDATA[This new release includes a new plugin for Hudson (a continuous integration server), support for Jira4, a better use of accented characters in specifications, many improvements to the core and much more…
See the release notes for more details&#8230;
]]></description>
			<content:encoded><![CDATA[This new release includes a new plugin for Hudson (a continuous integration server), support for Jira<strong>4</strong>, a better use of accented characters in specifications, many improvements to the core and much more…

See the <a title="Release notes" href="http://www.greenpeppersoftware.com/confluence/display/GPW/GreenPepper+2.7+release+notes">release notes</a> for more details…]]></content:encoded>
			<wfw:commentRss>http://pyxis-tech.com/blog/2010/03/08/greenpepper-2-7-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Green is good!</title>
		<link>http://pyxis-tech.com/blog/2010/02/05/green-is-good/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=green-is-good</link>
		<comments>http://pyxis-tech.com/blog/2010/02/05/green-is-good/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 00:54:36 +0000</pubDate>
		<dc:creator>pyxis</dc:creator>
				<category><![CDATA[GreenPepper]]></category>

		<guid isPermaLink="false">http://13.7</guid>
		<description><![CDATA[<p>Éric Laramée, a colleague at Pyxis the other day was recalling the Greed is good scene from the movie Wall Street</p>
<p>The point is, ladies and gentleman, that greed, for lack of a better word, is good. Greed is right, greed works. Greed clarifies, cuts through, and captures the essence of the evolutionary spirit. Greed, in [...] ]]></description>
			<content:encoded><![CDATA[<a href="http://pyxis-tech.com/blog/author/elaramee/">Éric Laramée</a>, a colleague at Pyxis the other day was recalling the Greed is good scene from the movie <a href="http://en.wikipedia.org/wiki/Wall_Street_(1987_film)">Wall Street</a>
<blockquote>The point is, ladies and gentleman, that greed, for lack of a better word, is good. Greed is right, greed works. Greed clarifies, cuts through, and captures the essence of the evolutionary spirit. Greed, in all of its forms; greed for life, for money, for love, knowledge has marked the upward surge of mankind. And greed, you mark my words, will not only save Teldar Paper, but that other malfunctioning corporation called the USA.

Thank you very much.</blockquote>
We the started to play with that quote and here is the result:
<blockquote>The point is, ladies and gentleman, that <strong>green</strong>, for lack of a better word, is good. <strong>Green</strong> is right, <strong>green</strong> works. <strong>Green</strong> clarifies, cuts through, and captures the essence of the evolutionary <strong>design</strong>. <strong>Green</strong>, in all of its forms; <strong>green</strong> for life, for money, for love, knowledge has marked the upward surge of mankind. And <strong>green</strong>, you mark my words, will not only save <strong>your project</strong>, but that malfunctioning <strong>industry</strong> called <strong>IT</strong>.

Thank you very much.</blockquote>
We had a good laugh and thought it was very cool!]]></content:encoded>
			<wfw:commentRss>http://pyxis-tech.com/blog/2010/02/05/green-is-good/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Executable Specification and build integration</title>
		<link>http://pyxis-tech.com/blog/2010/02/05/executable-specification-and-build-integration/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=executable-specification-and-build-integration</link>
		<comments>http://pyxis-tech.com/blog/2010/02/05/executable-specification-and-build-integration/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 00:41:33 +0000</pubDate>
		<dc:creator>pyxis</dc:creator>
				<category><![CDATA[Développement logiciel]]></category>
		<category><![CDATA[GreenPepper]]></category>

		<guid isPermaLink="false">http://13.10</guid>
		<description><![CDATA[<p>It is usually not long after adopting the Executable Specification practice (aka Example Driven Development, Acceptance Test Driven Development – ATDD, Story Test Driven Development – STDD) that good software teams want to integrate GreenPepper in their build process. This is an area where we think GreenPepper shines.
GreenPepper allows for a smooth process of adding [...] ]]></description>
			<content:encoded><![CDATA[It is usually not long after adopting the Executable Specification practice (aka Example Driven Development, Acceptance Test Driven Development – ATDD, Story Test Driven Development – STDD) that good software teams want to integrate GreenPepper in their build process. This is an area where we think GreenPepper shines.

GreenPepper allows for a smooth process of adding / modifiying specifications -&gt; implementing in TDD style -&gt; committing code and specification –&gt; automated continuous build.

Let me walk you through what happens.

At the beginning (and during) of an iteration or sprint some specification pages are modified or added. GreenPepper keeps track of the implemented vs working copy.

<a href="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/implemented-version-working2.png"><img class="aligncenter size-full wp-image-85" title="implemented-version-working" src="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/implemented-version-working2.png" alt="" width="500" height="58" /></a>

The various build tool integration we have (Maven, MSBuild, Nant …) will continue to use the implemented version therefore your build is not broken and you do not need to move the modified or added pages in a temporary area. Great!

At some point a developer will assign himself to the implementation. In his favorite IDE (Eclipse or Visual Studio) he can easily locate the modified specification page and switch to the working copy

<a href="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/eclipse-swith-to-working-version1.png"><img class="aligncenter size-full wp-image-86" title="eclipse-swith-to-working-version" src="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/eclipse-swith-to-working-version1.png" alt="" width="533" height="167" /></a>

Then he executes the page and should see the page not passing

<a href="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/eclipse-fail-spec1.png"><img class="aligncenter size-full wp-image-87" title="eclipse-fail-spec" src="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/eclipse-fail-spec1.png" alt="" width="812" height="274" /></a>

Then he goes and develop the code TDD style with his favorite unit testing tool integrated in his IDE (JUnit, TestNG, Visual Studio, Nunit, etc.) He can frequently re-execute the page and see it slowly turn from red to green!

Once it is all green, he commits his code in the source control and from the IDE he sets the specification page as implemented.

<a href="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/eclipse-tag-as-implemented1.png"><img class="aligncenter size-full wp-image-88" title="eclipse-tag-as-implemented" src="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/eclipse-tag-as-implemented1.png" alt="" width="548" height="360" /></a>

The next build will use the committed code and page and life will be <span style="color: #000000;"><strong>Green</strong></span>!]]></content:encoded>
			<wfw:commentRss>http://pyxis-tech.com/blog/2010/02/05/executable-specification-and-build-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exemple “Behavior Driven Developpement” (BDD) avec GreenPepper</title>
		<link>http://pyxis-tech.com/blog/2010/02/02/exemple-%e2%80%9cbehavior-driven-developpement%e2%80%9d-bdd-avec-greenpepper/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=exemple-%25e2%2580%259cbehavior-driven-developpement%25e2%2580%259d-bdd-avec-greenpepper</link>
		<comments>http://pyxis-tech.com/blog/2010/02/02/exemple-%e2%80%9cbehavior-driven-developpement%e2%80%9d-bdd-avec-greenpepper/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 18:58:18 +0000</pubDate>
		<dc:creator>pyxis</dc:creator>
				<category><![CDATA[Développement logiciel]]></category>
		<category><![CDATA[GreenPepper]]></category>

		<guid isPermaLink="false">http://13.11</guid>
		<description><![CDATA[<p>En découvrant les nouvelles fonctionnalités de GreenPepper 2.6 j’ai eu envie de les partager au plus vite ! GreenPepper autorise maintenant une syntaxe très flexible pour exprimer des scénarios (ou cas d’utilisation) dans un formalisme qui peut être défini en collaboration entre les experts métiers et développeurs. Le mot–clef associé à cette syntaxe est « scenario ». [...] ]]></description>
			<content:encoded><![CDATA[En découvrant les nouvelles fonctionnalités de GreenPepper 2.6 j’ai eu envie de les partager au plus vite ! GreenPepper autorise maintenant une <strong>syntaxe très flexible</strong> pour exprimer des scénarios (ou cas d’utilisation) dans un formalisme qui peut être défini en collaboration entre les experts métiers et développeurs. Le mot–clef associé à cette syntaxe est « <strong>scenario </strong>». Je vais vous montrer dans ce billet comment utiliser GreenPepper pour exprimer des exigences sous la forme « <strong>Given, When, Then </strong>», formalisme recommandé par le courant « Behaviour Driven Developpement ».
<h3>Un cas concret à spécifier</h3>
Prenons un cas concret d’exigences fonctionnelles. Spécifions le comportement d’un <strong>agent virtuel d’assistance</strong>, dont le rôle est  de répondre à des demandes d’aide en trouvant des interlocuteurs pouvant satisfaire les demandes d’aide.

Les principales « user stories » seraient les suivantes :
<ul>
	<li>En tant qu’utilisateur ayant besoin d’aide, afin de trouver une personne qui pourrait m’aider, j’interpelle l’agent virtuel afin de lui décrire mon problème.</li>
	<li>En tant qu’utilisateur ayant besoin d’aide, afin de trouver une personne qui pourrait m’aider, je souhaite contacter une personne disponible et disposée à m’aider.</li>
	<li>En tant qu’utilisateur pouvant apporter mon aide, je souhaite être contacté par l’agent virtuel afin de proposer mon aide.</li>
</ul>
Reformulons maintenant sous la forme d’exemples certains cas d’utilisation :
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="614">Etant donné que Marc n’a jamais contacté l’agent virtuel</td>
</tr>
<tr>
<td valign="top" width="614">Quand Marc dit à l’agent virtuel « Hello »,</td>
</tr>
<tr>
<td valign="top" width="614">Alors l’agent virtuel lui répond « Que puis-je faire pour t’aider ? »</td>
</tr>
<tr>
<td valign="top" width="614">Quand Marc dit à l’agent virtuel « Je n’arrive pas à installer Credanse+ sur MacOS »</td>
</tr>
<tr>
<td valign="top" width="614">Alors l’agent virtuel lui répond « J’ai bien pris note de ta demande d’aide et te contacte dès que possible »</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="614">Etant donné que Marc a déjà formulé la demande d’aide « Je n’arrive pas à installer Credanse+ sur MacOS »</td>
</tr>
<tr>
<td valign="top" width="614">Etant donné que Steve est disponible</td>
</tr>
<tr>
<td valign="top" width="614">Etant donné que Marc n’est pas disponible</td>
</tr>
<tr>
<td valign="top" width="614">Quand l’agent virtuel contacte Steve pour lui dire « Marc a besoin d’aide, il m’a dit : Je n’arrive pas à installer Credanse+ sur MacOS . Acceptes-tu de l’aider ?»</td>
</tr>
<tr>
<td valign="top" width="614">Quand Steve dit à l’agent virtuel « Oui »</td>
</tr>
<tr>
<td valign="top" width="614">Alors l’agent virtuel lui répond « Merci, je vais en faire part à Marc et il te contactera dès que possible »</td>
</tr>
</tbody>
</table>
<h3>Spécifier dans GreenPepper</h3>
Voyons comment écrire le premier scenario avec GreenPepper :

Dans notre espace collaboratif d’édition de spécifications (Confluence ou XWiki), nous saisissons le tableau suivant :

<a href="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/gp_bdd_scenario_raw.png"><img class="alignnone size-full wp-image-37" title="gp_bdd_scenario_raw" src="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/gp_bdd_scenario_raw.png" alt="" width="582" height="224" /></a>

Mettons un peu de <strong>couleur </strong>pour faire mettre en relief ce qui relève de la syntaxe et ce qui est en rapport avec les données du scénario.

<a href="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/gp_bdd_scenario_colors.png"><img class="alignnone size-full wp-image-36" title="gp_bdd_scenario_colors" src="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/gp_bdd_scenario_colors.png" alt="" width="630" height="224" /></a>
<h3>Coder la classe de test</h3>
Maintenant, nous devons écrire la <strong>classe de test </strong>(ou fixture). Une première implémentation naïve de cette classe pour faire passer le test est :
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px; text-indent: 20px;"><span style="color: blue;"> public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">AgentVirtuel</span></p>
<p style="margin: 0px; text-indent: 20px;">{</p>
<p style="margin: 0px; text-indent: 40px;"><span style="color: blue;"> private</span> <span style="color: blue;">string</span> lastwords = <span style="color: #a31515;">“”</span>;</p>
<p style="margin: 0px; text-indent: 40px;"><span style="color: blue;"> private</span> <span style="color: blue;">string</span> lastuser = <span style="color: #a31515;">“”</span>;</p>
<p style="margin: 0px; text-indent: 40px;"><span style="color: blue;">public</span> AgentVirtuel()</p>
<p style="margin: 0px; text-indent: 40px;">{</p>
<p style="margin: 0px; text-indent: 40px;">}</p>
<p style="margin: 0px; text-indent: 40px;">[<span style="color: #2b91af;">Given</span>(<span style="color: #a31515;">"Quand (\w+) dit à l'agent virtuel ([\w|\s|\'|\-|\?]*)”</span>)]</p>
<p style="margin: 0px; text-indent: 40px;"><span style="color: blue;">public</span> <span style="color: blue;">void</span> WhenUserTellsTheAgent(<span style="color: blue;">string</span> userName, <span style="color: blue;">string</span> words)</p>
<p style="margin: 0px; text-indent: 40px;">{</p>
<p style="margin: 0px; text-indent: 60px;">lastwords = words;</p>
<p style="margin: 0px; text-indent: 60px;">lastuser = userName;</p>
<p style="margin: 0px; text-indent: 40px;">}</p>
<p style="margin: 0px; text-indent: 40px;">[<span style="color: #2b91af;">Then</span>(<span style="color: #a31515;">"Alors l'agent virtuel répond ([\w|\s|\'|\-|\?]*)”</span>)]</p>
<p style="margin: 0px; text-indent: 40px;"><span style="color: blue;">public</span> <span style="color: blue;">void</span> ThenTheAgentAnswers(<span style="color: #2b91af;">Expectation</span> answer)</p>
<p style="margin: 0px; text-indent: 40px;">{</p>
<p style="margin: 0px; text-indent: 60px;"><span style="color: blue;">if</span> (lastwords==<span style="color: #a31515;">“Hello”</span>)</p>
<p style="margin: 0px; text-indent: 60px;">{</p>
<p style="margin: 0px; text-indent: 80px;">answer.Actual = <span style="color: #a31515;">“Que puis-je faire pour t’aider?”</span>;</p>
<p style="margin: 0px; text-indent: 60px;">}</p>
<p style="margin: 0px; text-indent: 60px;"><span style="color: blue;">else</span></p>
<p style="margin: 0px; text-indent: 60px;">{</p>
<p style="margin: 0px; text-indent: 80px;">answer.Actual = <span style="color: #a31515;">“J’ai bien pris note de ta demande d’aide et te contacte dès que possible”</span>;</p>
<p style="margin: 0px; text-indent: 60px;">}</p>
<p style="margin: 0px; text-indent: 40px;">}</p>
<p style="margin: 0px; text-indent: 20px;">}</p>

</div>
Dans cet exemple <strong>C#</strong> (il est possible d’écrire la même fixture en <strong>Java </strong>avec GreenPepper), nous voyons des attributs en charge de gérer la correspondance entre chaque « phrase » du scénario et une méthode de la classe de test.

Le mot-clef « Given » permet de définir ou d’initialiser un comportement qui ne sera pas testé. Par contre, le mot-clef « Then » permet de déclarer des attentes et de les tester. Dans cet exemple, nous testons la réponse de l’agent virtuel.
<h3>Exécuter la spécification</h3>
Exécutons notre spécification avec GreenPepper et observons le résultat :

<a href="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/gp_bdd_scenario_results.png"><img class="alignnone size-full wp-image-35" title="gp_bdd_scenario_results" src="http://www.greenpeppersoftware.com/blog/wp-content/uploads/2010/02/gp_bdd_scenario_results.png" alt="" width="588" height="260" /></a>

Après exécution, une confirmation visuelle affiche automatiquement <strong>en vert </strong>les parties de texte qui ont été vérifiées positivement par GreenPepper. En cas de confirmation négative, la couleur rouge sera utilisée.
<h3>En conclusion…</h3>
Nous voyons à travers cet exemple, que l’utilisation d’expressions régulières associées à des méthodes de la classe de test, permet une grande souplesse ! Aux équipes de jouer et de trouver une syntaxe qui facilitera une <strong>compréhension partagée</strong> entre toutes les parties prenantes du projet ! Cette compréhension partagée sera de plus<strong> testable en continue!</strong>]]></content:encoded>
			<wfw:commentRss>http://pyxis-tech.com/blog/2010/02/02/exemple-%e2%80%9cbehavior-driven-developpement%e2%80%9d-bdd-avec-greenpepper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GreenPepper 2.6 now available</title>
		<link>http://pyxis-tech.com/blog/2009/11/19/greenpepper-2-6-now-available/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=greenpepper-2-6-now-available</link>
		<comments>http://pyxis-tech.com/blog/2009/11/19/greenpepper-2-6-now-available/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 01:45:11 +0000</pubDate>
		<dc:creator>pyxis</dc:creator>
				<category><![CDATA[GreenPepper]]></category>

		<guid isPermaLink="false">http://13.12</guid>
		<description><![CDATA[This new release includes a new Scenario interpreter that have a BDD style, XWiki integration (use XWiki to write your executable specifications), a plugin for Grails, a better compatibility with Confluence 3.0 and up, many improvements to the PHP exte...]]></description>
			<content:encoded><![CDATA[This new release includes a new <strong>Scenario</strong> interpreter that have a <em>BDD</em> style, <a title="XWiki" href="http://www.xwiki.org">XWiki</a> integration (use XWiki to write your executable specifications), a plugin for <a title="Grails" href="http://www.grails.org">Grails</a>, a better compatibility with Confluence 3.0 and up, many improvements to the PHP extensions (Thanks to folks at Astria) and bug fixes.

See the <a title="Release notes" href="http://www.greenpeppersoftware.com/confluence/display/GPW/GreenPepper+2.6+release+notes">release notes</a> for more details…]]></content:encoded>
			<wfw:commentRss>http://pyxis-tech.com/blog/2009/11/19/greenpepper-2-6-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

