Je travaille avec une équipe de développement Python qui a de l'expérience avec la programmation en Python, mais qui essaie maintenant de ramasser TDD. Comme j'ai déjà travaillé avec TDD, on m'a demandé de faire un exposé à ce sujet. Essentiellement, je veux juste voir des articles à ce sujet afin de pouvoir voir comment d'autres personnes enseignent le TDD et obtenir des idées de matériel à mettre dans ma présentation. Je préférerais que l'intro soit pour Python, mais n'importe quel langage le fera aussi longtemps que les exemples sont faciles à lire et que les concepts sont facilement transférés vers Python.Y a-t-il de bons tutoriels en ligne à TDD pour un programmeur expérimenté débutant?
Répondre
Une suggestion que je ferais est de commencer un groupe coding Dojo. Il permet de démarrer TDD à partir de zéro avec un groupe, avec la plupart des meilleures pratiques recommandées et se concentrer sur TDD. Son idée de base est de relever un défi simple (comme un programme qui transforme les chaînes d'algarismes romains en ints), et de commencer à le coder, en commençant par de simples entrées, et en codant seulement quand un test échoue. Ce n'est pas le but de tout ceci de mettre fin au problème, mais de commencer à le faire correctement.
Voici une autre link à ce sujet, dont je récupérai la partie suivante:
- Il y a un problème de codage qui est annoncée à l'avance.
- Il y a une pièce avec un ordinateur relié à l'écran vidéo.
- Le présentateur explique le défi de codage et commence le codage. Le présentateur peut ou non choisir d'avoir un copilote. S'il s'agit d'une session Randori, un copilote est généralement assigné de sorte que lorsque le changement se produit, le copilote prend la relève du codeur.
- Une moitié de la paire est changée toutes les 5 minutes si la session est Randori.
- Le codeur doit continuellement expliquer ce qu'il fait.
- Le codeur doit s'arrêter lorsque quelqu'un du public tombe du chariot (il a une question sur la compréhension de ce que la paire est en train de faire) - et ne continue que lorsque cette personne est de nouveau sur la bonne voie.
- Tous les codeurs utilisent TDD (Test Driven Development).
- Tout le code produit sera rendu public en utilisant la licence publique commune Eclipse.
- Le langage de programmation à utiliser est annoncé à l'avance par session.
J'aime vraiment cette idée. Je vais l'essayer. –
+1, j'aurais aimé être au courant de cela plus tôt dans mon voyage TDD. Voici un livre que j'utilise pour m'aider à exécuter des dojos: https://leanpub.com/codingdojohandbook –
Pas en python, mais cela est une bonne introduction par jp Boodhoo
Kent Beck « s book donne quelques exemples en Java et certains en Python (pour être honnête, Kent ne me frappe pas comme une superstar dans les deux langues, à en juger à partir du code exemple dans ce livre ... mais il certainement apparaît comme une superstar dans TDD & c - aussi bien qu'il devrait, étant donné qu'il est fondamentalement inventé ainsi que la programmation extrême, voir son entrée wikipedia).
Je dois dire que j'étais un peu déçu par ce livre. Beaucoup de choses qu'il a suggéré de faire me semblent carrément nuisibles. Par exemple, il préconise que le code renvoie exactement ce que le test attendait (c.-à-d. Mentir au test), puis appelle l'acte de corriger le code afin qu'il fonctionne réellement dans d'autres cas de refactorisation. C'est tellement faux à tellement de niveaux que j'ai eu du mal à prendre le reste du livre au sérieux. –
Je pense que les chapitres traitant des tests dans Dive Into Python sont plutôt bons. Ils couvrent la construction d'un programme de base à partir de zéro en utilisant TDD.
J'ai été très satisfait de l'article "Test Driven Development en Python" en deux parties sur le site de O'Reilly:
http://www.onlamp.com/pub/a/python/2004/12/02/tdd_pyunit.html
http://www.onlamp.com/pub/a/python/2005/02/03/tdd_pyunit2.html
Ces vraiment éclairci comment utiliser Python unittest module pour TDD, ainsi que me donner une bonne dose de l'état d'esprit TDD.
Getting Started with Tdd in Java using Eclipse by Brett L. Schuchert
est un ensemble de screencasts sur TDD en Java et en C#. Il commence à partir de la base de grattage et d'enseignement.
J'ai commencé les tests unitaires il y a quelques années, et j'en ai lu pas mal depuis mon livre initial. Cependant, mon initiale était "Test Driven" par Lasse. Pour moi, l'auteur l'a rendu simple à comprendre. Peut-être que vous pourriez en tirer quelques informations pour votre enseignement.
Et btw, j'ai enseigné aussi TDD. J'ai trouvé que s'assurer que le public comprend comment utiliser les tests unitaires avant d'entrer dans TDD est très pratique.
Bonne chance! :-)
Je pense que votre meilleur pari est de faire équipe avec les membres de l'équipe, en disant: "Aujourd'hui, nous allons essayer le premier problème pour résoudre le problème d'aujourd'hui, afin que vous ayez une idée de TDD." Ensuite, dans la présentation, il suffit de travailler un exemple modeste. L'expérience est la meilleure; le voir, deuxième meilleur. Entendre à ce sujet, pas si bon. –