<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-17256797.post114650567924933903..comments</id><updated>2008-12-19T19:28:48.309+01:00</updated><title type='text'>Comments on 5h du matin: Comment j'en suis venu aux tests unitaires</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://5hdumatin.blogspot.com/feeds/114650567924933903/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17256797/114650567924933903/comments/default'/><link rel='alternate' type='text/html' href='http://5hdumatin.blogspot.com/2006/05/comment-jen-suis-venu-aux-tests.html'/><author><name>Carl Seleborg</name><uri>http://www.blogger.com/profile/01901167627044872421</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17256797.post-114904999767195060</id><published>2006-05-31T06:33:00.000+02:00</published><updated>2006-05-31T06:33:00.000+02:00</updated><title type='text'>Je relisais tout le code qu'écrivait la stagiaire,...</title><content type='html'>Je relisais tout le code qu'écrivait la stagiaire, c'est comme cela que j'ai vu le "piège". La fonction devait valider la forme d'une chaîne de caractères ; pour rendre les tests plus complets, j'ai donc testé avec une plus grande gamme de chaînes de caractères valides (et non valides).&lt;BR/&gt;&lt;BR/&gt;Votre seconde question est assez pertinente : si nous n'avions pas écrit les tests avant, nous aurions dû faire autrement pour nous assurer qu'ils fonctionnent. Le moyen équivalent aurait été d'écrire exactement les même tests, mais après les fonctions testées. Dans ce cas, le code aurait sans aucun doute été plus complexe. Rappelez-vous : la consigne était aussi de s'arrêter dès que les tests étaient bons. Cela signifie qu'on fait au plus simple.&lt;BR/&gt;&lt;BR/&gt;Il faut bien choisir ses tests, afin de valider chaque fonction et chaque objet avec un ensemble pertinent de valeurs. C'est vraiment la qualité de ces valeurs qui importe, pas leur quantité. Et la bonne surprise, c'est que pendant qu'on réfléchit à toutes ces valeurs importantes qu'il faut essayer, avec toutes leurs variations pertinentes, on découvre en général beaucoup de cas auxquels on n'avait pas pensé spontanément!&lt;BR/&gt;&lt;BR/&gt;Enfin, les tests unitaires permettent de choisir le degré d'assurance qu'on souhaite avoir quant au bon fonctionnement d'une partie de code. Pour peu que vos valeurs de test soient bien choisies, plus vous ajoutez de tests, plus vous êtes sûr du code produit. Et dans bien des cas, vous pouvez finir par couvrir 100% des cas ; c'est alors que les tests sont complets.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17256797/114650567924933903/comments/default/114904999767195060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17256797/114650567924933903/comments/default/114904999767195060'/><link rel='alternate' type='text/html' href='http://5hdumatin.blogspot.com/2006/05/comment-jen-suis-venu-aux-tests.html?showComment=1149049980000#c114904999767195060' title=''/><author><name>Carl Seleborg</name><uri>http://www.blogger.com/profile/01901167627044872421</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16816868557167092411'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://5hdumatin.blogspot.com/2006/05/comment-jen-suis-venu-aux-tests.html' ref='tag:blogger.com,1999:blog-17256797.post-114650567924933903' source='http://www.blogger.com/feeds/17256797/posts/default/114650567924933903' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-17256797.post-114901528630303591</id><published>2006-05-30T20:54:00.000+02:00</published><updated>2006-05-30T20:54:00.000+02:00</updated><title type='text'>"Bien sûr, je me suis fait avoir. Pour l'une des f...</title><content type='html'>"Bien sûr, je me suis fait avoir. Pour l'une des fonctions, j'avais écrit un test un peu trop simpliste, et la fonction qui en résulta fut très simpliste aussi."&lt;BR/&gt;&lt;BR/&gt;La partie intéressante, c'est de savoir comment a été découvert que le test était trop simpliste et ce qu'ont apporté les tests supplémentaires qui, je suppose, ont été rajoutés.&lt;BR/&gt;&lt;BR/&gt;Si le développement n'avait pas été dirigé par les tests (si les tests avaient été écrits après le code), le code produit aurait-il été suffisamment simple pour se rendre compte qu'il manquait des tests ?&lt;BR/&gt;&lt;BR/&gt;Si des tests plus précis n'avaient pas été rajoutés, le résultat final aurait-il été aussi bon ?&lt;BR/&gt;&lt;BR/&gt;Finalement, est-ce que le fait d'écrire, dans un premier temps, un test "trop" simple n'a pu être une force dans le sens où cela a peut être permis de rajouter les tests nécessaires pour arriver à un code plus robuste ?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17256797/114650567924933903/comments/default/114901528630303591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17256797/114650567924933903/comments/default/114901528630303591'/><link rel='alternate' type='text/html' href='http://5hdumatin.blogspot.com/2006/05/comment-jen-suis-venu-aux-tests.html?showComment=1149015240000#c114901528630303591' title=''/><author><name>Oaz</name><uri>http://agilitateur.azeau.com/</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://5hdumatin.blogspot.com/2006/05/comment-jen-suis-venu-aux-tests.html' ref='tag:blogger.com,1999:blog-17256797.post-114650567924933903' source='http://www.blogger.com/feeds/17256797/posts/default/114650567924933903' type='text/html'/></entry></feed>