« Less - Développement piloté par les tests » : différence entre les versions
De Wiki Agile
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 10 : | Ligne 10 : | ||
[[LeSS - Portail Excellence technique]] | [[LeSS - Portail Excellence technique]] | ||
= Qu’est-ce que le Développement piloté par les tests ? = | |||
Test-driven development is a development style that drives the design by tests developed in short cycles of: | Test-driven development is a development style that drives the design by tests developed in short cycles of: | ||
| Ligne 36 : | Ligne 34 : | ||
Est-ce que le développement piloté par les tests est différent dans le cadre du développement de produits de taille importante ? Non, car il s’agit d’une pratique individuelle de développeur peu importe le nombre de personnes impliquées dans le développement. La quantité de code historique, les anciennes technologies et les développements dans l’embarqué ont un impact sur le test unitaire et sur le développement piloté par les tests. En conséquence, la plupart des expérimentations de la présente section sont en lien avec ces sujets. | Est-ce que le développement piloté par les tests est différent dans le cadre du développement de produits de taille importante ? Non, car il s’agit d’une pratique individuelle de développeur peu importe le nombre de personnes impliquées dans le développement. La quantité de code historique, les anciennes technologies et les développements dans l’embarqué ont un impact sur le test unitaire et sur le développement piloté par les tests. En conséquence, la plupart des expérimentations de la présente section sont en lien avec ces sujets. | ||
== A TDD cycle Should Be … == | |||
== Un cycle TDD type devrait être … == | |||
'''Short''' The turnaround time for passing each test is short. It could take 5 mins per cycle. '''Rhythmic''' You’ll feel the rhythm distinctly - “red, green, refactor… red, green refactor…” '''Incremental''' You’ll know that as you write and pass more tests, working functionalities are being build up incrementally. '''Design-focused''' With good knowledge of software design principles, you’ll discover TDD is not a testing technique but a method of designing software. '''Disciplined''' TDD is a different way of developing software. To break the old habit of “code and fix” and to adopt a new habit will require discipline and persistence. | '''Short''' The turnaround time for passing each test is short. It could take 5 mins per cycle. '''Rhythmic''' You’ll feel the rhythm distinctly - “red, green, refactor… red, green refactor…” '''Incremental''' You’ll know that as you write and pass more tests, working functionalities are being build up incrementally. '''Design-focused''' With good knowledge of software design principles, you’ll discover TDD is not a testing technique but a method of designing software. '''Disciplined''' TDD is a different way of developing software. To break the old habit of “code and fix” and to adopt a new habit will require discipline and persistence. | ||
| Ligne 44 : | Ligne 42 : | ||
'''Court''' Le temps de traitement pour passer chaque test est court. Cela devrait prendre 5 minutes par cycle. '''Rhythmique''' Vous sentirez le rythme très distinctement - « rouge, vert, refactorer … rouge, vert, refactorer … » '''Incrémental''' Vous saurez au fur et à mesure que vous écrirez et ferez passer de plus en plus de tests, que des fonctionnalités sont construites de manière incrémentale '''Focalisé sur la conception''' Avec une bonne connaissance des principes de conception logicielle, vous découvrirez que le développement piloté par les tests n’est pas une technique de tests mais une méthode pour concevoir du logiciel. '''Discipliné''' Le TDD est une autre façon de développer du logiciel. Casser les vieilles habitudes « coder et corriger » pour adopter une nouvelle habitude exigera de la discipline et de la persévérance | '''Court''' Le temps de traitement pour passer chaque test est court. Cela devrait prendre 5 minutes par cycle. '''Rhythmique''' Vous sentirez le rythme très distinctement - « rouge, vert, refactorer … rouge, vert, refactorer … » '''Incrémental''' Vous saurez au fur et à mesure que vous écrirez et ferez passer de plus en plus de tests, que des fonctionnalités sont construites de manière incrémentale '''Focalisé sur la conception''' Avec une bonne connaissance des principes de conception logicielle, vous découvrirez que le développement piloté par les tests n’est pas une technique de tests mais une méthode pour concevoir du logiciel. '''Discipliné''' Le TDD est une autre façon de développer du logiciel. Casser les vieilles habitudes « coder et corriger » pour adopter une nouvelle habitude exigera de la discipline et de la persévérance | ||
= Pourquoi le TDD ? = | |||
= | = Accompagner le TDD = | ||
== Recourir à des coachs en TDD == | |||
When a client of ours reviewed a draft of the companion book, he mentioned that we ought to stress coaching more. “One of our mistakes is that we didn’t provide enough coaching,” he said. Though we agreed with him, we pointed out that since we are both consultants and provide such coaching, this advice would not be very credible. We might as well add an experiment “Try…Hire us.” Thus, we minimized the advice related to hiring coaches. | When a client of ours reviewed a draft of the companion book, he mentioned that we ought to stress coaching more. “One of our mistakes is that we didn’t provide enough coaching,” he said. Though we agreed with him, we pointed out that since we are both consultants and provide such coaching, this advice would not be very credible. We might as well add an experiment “Try…Hire us.” Thus, we minimized the advice related to hiring coaches. | ||
| Ligne 68 : | Ligne 60 : | ||
Le développement piloté par les tests pourrait bien être la pratique agile la plus difficile à adopter, mais il s’agit aussi de l’une des plus grosses opportunités pour améliorer la qualité de la conception et du code. Engagez des coachs ! | Le développement piloté par les tests pourrait bien être la pratique agile la plus difficile à adopter, mais il s’agit aussi de l’une des plus grosses opportunités pour améliorer la qualité de la conception et du code. Engagez des coachs ! | ||
== Coachs internes et externes == | |||
External coaches are needed when adopting TDD because the com- petence does not yet exist inside the company. But, over time, growing internal coaches reduces the dependence on externals and the cost of coaching. | External coaches are needed when adopting TDD because the com- petence does not yet exist inside the company. But, over time, growing internal coaches reduces the dependence on externals and the cost of coaching. | ||
| Ligne 94 : | Ligne 84 : | ||
Choisissez les deux, du coaching interne et du coaching externe. Dépendre de l’un des deux uniquement est risqué mais les combiner peut conduire à de bons résultats. | Choisissez les deux, du coaching interne et du coaching externe. Dépendre de l’un des deux uniquement est risqué mais les combiner peut conduire à de bons résultats. | ||
= Développement piloté par les tests pour une meilleure architecture = | |||
TDD can help improve the architecture of a system. How? | TDD can help improve the architecture of a system. How? | ||