design-up::la programmation pilotée par les tests
design-up::la programmation pilotée par les tests
accueil :: a propos :: services :: articles :: ressources
:: contact
accueil articles extreme programming tests unitaires
la programmation pilotée par les tests
dossier réalisé par régis medina et thomas novelle
lorsqu'on s'intéresse
aux tests qu'effectuent les développeurs au quotidien, on constate que
la stratégie la plus répandue consiste à truffer le code
de traces temporaires, lancer l'application, appuyer sur quelques boutons pour
"remuer" la fonctionnalité en cours de développement,
et enfin vérifier dans les traces le bon comportement de l'ensemble. cette
stratégie est malheureusement loin d'être efficace pour au moins
deux raisons :
la mise en place
du contexte de test, l'éxécution proprement dite et l'interprétation
des résultats sont trop coûteux en temps. les développeurs
vont y passer le moins de temps possible, surtout - et c'est paradoxal - à
l'approche des livraisons, quand la nécessité de faire vite
l'emporte sur la nécessité de faire bien.
les tests ne
portent en général que sur la fonctionnalité en cours
de développement, et trop peu de régressions sont ainsi détectées.
l'extreme
programming propose une solution pour améliorer cette situation,
sous la forme des tests unitaires ou de la programmation pilotée
par les tests : pour chaque classe de l'application, les développeurs
écrivent une
classe chargée de la tester et de vérifier le résultat
de ces tests de manière automatique, c'est-à-dire sans
intervention du développeur.
par rapport aux
tests manuels évoqués précédemment, la
granularité des tests unitaires est extrêmement fine - ils portent
en effet sur des portions de quelques lignes de code uniquement. la question
se pose alors de leur validité : comment peuvent-ils garantir le comportement
d'ensemble de l'application ?
en fait, l'intérêt
des tests unitaires n'est pas là. dans un projet xp, ce rôle est
pris en charge par d'autres types de tests, appelés tests fonctionnels
ou tests de recette, qui valident chaque fonctionnalité de l'application
dans son ensemble et permettent ainsi de mesurer l'avancement du projet. le
tableau suivant précise les différences entre ces deux types de
tests :
tests
unitaires
tests
de recette
ecrits
par...
les
développeurs
le
client ou son représentant
portent
sur...
des
méthodes unitaires
l'ensemble
de l'application
approche...
boîte
blanche
boîte
noire
concernent
le client
non
oui
les tests de recette
sont clairement plus intéressants dans l'absolu, mais ils sont généralement
assez coûteux à mettre en oeuvre. a l'inverse, les tests unitaires
sont beaucoup plus légers :
la mise en place
du contexte de test et la vérification du résultat sont le plus
souvent très simples, et le coût d'écriture des tests
est très réduit.
ils peuvent
être exécutés très tôt dans le développement
d'une tâche (les tests de recette ne peuvent être lancés
que lorsque la fonctionnalité complète est implémentée).
ils peuvent
être lancés à chaque compilation de la classe (les tests
de recette ne peuvent être lancés que lorsque toute l'application
est compilée).
les tests unitaires
apportent donc un feedback beaucoup plus rapide que les tests de recette,
pour un coût nettement plus réduit. xp exploite cet avantage
à l'extrême en proposant d'écrire les tests unitaires avant
le code proprement dit. cela permet d'explorer à la fois le problème
et la conception avant de passer à l'implémentation, mais
cela permet surtout de savoir exactement quand s'arrêter : on arrête
de développer une méthode ou une classe lorsque tous ses tests
passent.
en pratique, c'est
surtout ce dernier point qui nous fait apprécier les tests unitaires.
ils apportent un sentiment d'avancement concret, et le fait d'avoir plusieurs
fois par jour l'ensemble des tests unitaires qui passe à 100% nous donne
confiance dans le code et nous permet d'avancer rapidement.
bien sûr,
l'adoption de cette pratique n'est ni gratuite ni immédiate. il faut
d'abord apprendre à utiliser un framework de tests, et surtout
ensuite apprendre à organiser son code pour le rendre testable unitairement.
l'objectif de ce dossier est de faciliter cet apprentissage en montrant :
un exemple simple
de mise en oeuvre de la démarche,
les bases de
l'utilisation d'un framework de tests,
quelques tactiques
habituelles de test.
exemple de test unitaire
tests unitaires
introduction
exemple
junit
tactiques
conclusion
- dernière mise à jour le
18/07/2006 -
Acceuil
suivante
design-up::la programmation pilotée par les tests Le vaccin antisida échoue aux tests Des tests en tous genres pour pièger vos amis ! - VosPassions.com Pc Dossier - Annuaire des tests et dossiers Pc Test Grossesse Tout savoir sur le Test de Grossesse Tests produits, avis, demandes d'avis Jeux Video et jeux PC : actualités, tests, previews, astuces tips ... Tests delirants, tests de personnalité, love test, test sur la ... Quizz et tests gratuits : Psycho-Tests, Test QI, Tests de ... Test gratuit & Quizz gratuit - Psycho-Tests, Test QI, Tests de ... Test your French Usertests.fr - Accueil Nexen.net : portail PHP et MySQL - Skoll : distribution des tests ... Tests de conformité aux CSS 2 Tests et previews de jeux vidéo PsicoActiva: Tests psicológicos Communauté : Tests oldies de la semaine par Jeuxvideo.fr Tests Previews Dossiers - Jeux PC et Console 1001 Tests Queendom.com: Tests, Tests, Tests and more Tests, The biggest ... Code de la route : Codeclic.com - Test du code de la route Yahoo! Jeux - Tests (QI, Q.I., Quotient intellectuel) Test de Matos - PC INpact ÉduSCOL - Préparation ASSR et ASR/Entraînements et tests 01net. : Accueil - Toute l'informatique avec 01Informatique, L ... 01net. : Produits - Toute l'informatique avec 01Informatique, L ... Tests et training de QI www.TestCity.de - "ein Test für alle Fälle" - die ultimative Test ... Test-e-Performance : Expert en solution de monitoring des ... qi, test qi, test de qi, test personnalité, test intelligence Les Culino-tests Action Innocence Filtra - Test de contrôle parental - Bechmarkt de ... ::: tests de connaissances professionnelles en ligne Tests de personnalités rigolos pour mieux se connaître L'annuaire des tests de hardware sur Test-Hardware.net Cyberprof teste vos connaissances linguistiques et littéraires ... Tests de jeux vidéo PC LANGUE FRANCAISE.RU - Tests sur la France mensa-france - admission - test La source mondiale pour des tests comparatifs de qualité - alatest.fr laboratoire de test industriel et essai industriel Permis Bateau- Bateau école Richard Tests statistiques Thot / Le répertoire Thot des tests d’orientation en ligne ... Tests d'anglais en ligne - Testez votre anglais gratuitement Test Driven Development - Wikipédia Simone Veil opposée aux tests ADN Tests - Forum des développeurs Testmoral : Piegez vos amis avec humour! Piege Liste des tests - LiveWii Tests Tests et comparatifs de produits Geek, Gamers, PC, insolites ... Tests médicaux - Service Vie AOL Tests & quiz : mieux se connaître et progresser - Tests : LCD 26 et 27 pouces, Acer et Dell (page 1: 26 pouces Acer ... caraudiovideo autoradio, navigation gps, multimédia - Tests Les Numeriques MEGAPSY vous propose des tests de personnalité a prix reduit, une ... Test-orientation.com : Test d'orientation scolaire - Test d ... Test materiel informatique Tests