Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le TDD nécessite plus de qualifications techniques et de discipline de la part des développeurs pour son succès
Selon un adepte d'agile

Le , par Arsene Newman

23PARTAGES

3  0 
Le développement piloté par le test est-il réellement mort ? La réponse est un non catégorique, pour Scott Ambler consultant pour le compte d’une entreprise spécialisée dans l’adoption des stratégies et du développement agile.

Pour le consultant senior, le développement piloté par le test (TDD) a encore de beaux jours devant lui, mais il demande plus de qualifications techniques, d’expérience et de discipline, aussi il semblerait qu’il soit l’une des pratiques adoptées par les adeptes du développement agile.

Ces constats se fondent sur les résultats d’une étude menée par Ambler sur 247 équipes ayant adopté le TDD, ces mêmes résultats révèlent que 40% des sondés ont une expérience moyenne de 16 ans dans le développement logiciel.

Mais l’étude ne s’arrête pas en si bon chemin, elle se concentre sur les autres pratiques et méthodes qui ont lieu en plus du TDD, mais aussi sur d’autres aspects comme sa capacité à exprimer les exigences et les besoins ou l’efficacité et la nature des tests effectués dans le cadre du TDD.

En effet, le TDD peut être utilisé pour exprimer des exigences de manière détaillée, à la volée au fur et à mesure de l’avancement du projet, cette pratique est appelée ATDD (Acceptante Test-Driven Development ) ou BDD (Behavior Driven Developement).

Bien qu’offrant plusieurs avantages, l’ATDD ne permet pas d’exprimer les exigences dans la plupart des cas, ce qui pousse les développeurs à suppléer l’ATDD de différentes manières : en dessinant des croquis sur des tableaux ou sur papier (76% des cas), en exprimant les exigences de manière écrite via des logiciels de traitement de texte (54%) ou sur papier (46%) ou encore en recourant à des diagrammes et à des outils de modélisation (18%).

L’étude se focalise aussi sur un aspect très important du TDD : les tests logiciels, ainsi dans 62% des cas les testeurs sont membres de l’équipe de développement, alors que dans 33% des cas l’équipe de test travaille en parallèle à l’équipe de développement.

Plus encore, l’étude met l’accent sur les lacunes des tests de confirmation qui tendent à vérifier uniquement les exigences préalablement exprimées, les équipes expérimentées pallient ses lacunes en effectuant des tests exploratoires qui permettent généralement de découvrir des vulnérabilités ou d’identifier des exigences non exprimées par les parties prenantes, sans oublier les tests d’intégration qui vérifient et consolident l’intégration du logiciel dans des environnements complexes.

Au final, même si le TDD n’est pas aussi commun que ce que souhaitent ces protagonistes, il apparaît clairement que le TDD est loin d’avoir dit son dernier mot et que face à ses lacunes, les développeurs pallient en le suppléant par de nombreuses pratiques de développement logiciel.

Source : Objective View magazine - The Life and Times of TDD

Et vous ?
Qu’en pensez-vous ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Carhiboux
Expert éminent sénior https://www.developpez.com
Le 15/09/2014 à 14:00
Citation Envoyé par Arsene Newman Voir le message
ces mêmes résultats révèlent que 40% des sondés ont une expérience moyenne de 16 ans dans le développement logiciel
(quasi) impossible en France. Quand tu as plus de 15 ans de dev, c'est soit que tu es dans le plus profond des placards et que tu attends sagement une hypothétique retraite, soit que tu es indépendant.
4  0 
Avatar de souviron34
Expert éminent sénior https://www.developpez.com
Le 17/09/2014 à 20:05
Citation Envoyé par Traroth2 Voir le message
C'est une approche différente de l'approche traditionnelle, où on écrit les tests après avoir codé.
Je ne sais pas de quelle tradition tu parles
3  0 
Avatar de abriotde
Membre expérimenté https://www.developpez.com
Le 15/09/2014 à 9:32
Mais tu n'a jamais travaillé dans une entreprise informatique? Le test est toujours présent quelques soit la méthode. Le TDD est simplement une méthode de développement qui le met en avant et en principal fil directeur.

J'en pense que c'est une solution efficace qui certes demande des compétences mais que ce n'est pas la seul possible tout dépends du niveau de qualité exigé, de la taille du projet, des délais impartis, des financements et enfin pour une part importante de l'habitude des développeurs (qui est un mixte de leurs compétences/préférences).
2  0 
Avatar de Angelsafrania
Membre confirmé https://www.developpez.com
Le 15/09/2014 à 10:36
Citation Envoyé par abriotde Voir le message
Mais tu n'a jamais travaillé dans une entreprise informatique? Le test est toujours présent quelques soit la méthode.
Je suis désolé mais dans certaine entreprise il n'y a pas de test, en SSII y'en a toujours un peu. Mais les clients final qui font leur propre logiciel ça arrive que se soit l'utilisateur qui test en prod.
1  0 
Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 15/09/2014 à 10:51
Citation Envoyé par deusyss Voir le message
J'en pense que les équipes pensant pouvoir se passer de test se trompe totalement. Comment peux t on espérer créer du code de qualité sans un minimum de test afin de vérifier que ce qu'on a écrit est fonctionnel et répond aux attentes?

C'est le genre de question que l'on ne devrait meme pas se poser. Quel que soit le niveau de test, il doit y en avoir un minimum. Sinon, on se retrouve avec des logiciels totalement buggé, comme on en voit passer de temps en temps.

Dommage que l'étude n'effectue pas un comparatif avec les équipes n'effectuant aucuns tests, car je pense que les indices de qualité de code résultant auraient été significatifs.

Après sur la question se rapportant au fait de disposer de dev effectuant les tests, ou d'avoir une equipe de test dédié, on trouvera toujours des avis partagé. Certes, si les devs écrivent eux même leurs tests, ils peuvent être influencés par le code écrit, d'ou l'intérêt d'une equipe dédiée test. Cependant, s'il prenne le temps d'écrire leur test avant, en se basant sur les documentations techniques et fonctionnelles, aucun risque d'influence; et donc l'utilité d'une equipe dédiée test est remise en question. De même, si les devs s'occupent eux-même des tests, ils ont moins de temps pour développer.

Bref sur ce dernier point, il s'agit avant d'ou de compromis en fonction des contraintes client.

Quoiqu'il en soit cette étude met en évidence l'utilité et l'importance des tests pour avoir un développement de qualité.
Ce n'est pas de ça qu'il s'agit. TDD est une méthodologie qui propose d'écrire les tests avant d'écrire le code, c'est à dire d'écrire des tests qui couvrent toutes les fonctionnalités, de manière à ne plus avoir qu'à écrire du code capable à satisfaire ces tests pour avoir fini son travail. C'est une approche différente de l'approche traditionnelle, où on écrit les tests après avoir codé.
1  0 
Avatar de benjani13
Membre extrêmement actif https://www.developpez.com
Le 15/09/2014 à 11:59
Citation Envoyé par abriotde Voir le message
Mais tu n'a jamais travaillé dans une entreprise informatique? Le test est toujours présent quelques soit la méthode. Le TDD est simplement une méthode de développement qui le met en avant et en principal fil directeur.
Eu... j'ai bossé un an dans une SSI (très grosse, internationale), on ne m'a pas appris a faire les tests sur la plateforme utilisé (un ERP), on ne m'a pas demandé de faire des tests (en gros le chef passait pour dire "Ça marche? ok on livre au client", sans rien vérifier), et une fois livré j'ai jamais eu de nouvelles.

Donc ça existe...
1  0 
Avatar de Marco46
Expert éminent sénior https://www.developpez.com
Le 15/09/2014 à 13:48
Citation Envoyé par valkirys Voir le message

Lacunes? Enfin la base des tests c'est de valider le cahier des charges plus les "problèmes" d'implémentations.
Faut peut-être pas voir dans le TDD la fin de tous les problèmes du développement logiciel.
De quels tests tu parles ?

La base des tests automatisés (TU TI e2e) c'est de donner de la visibilité sur la qualité du code après une modification.

Le TDD est peut être une pratique extrême, mais l'absence de tests automatisés à notre époque c'est clairement de l'amateurisme.
1  0 
Avatar de b_free
Membre à l'essai https://www.developpez.com
Le 20/09/2014 à 20:41
Le TDD est une bonne pratique qui se met en place sur des applications à fort "traffic" (utilisation très courante) et faible complexité fonctionnelle lors de leur création. Je ne l'ai pas vue ailleurs. Sauf peut-être son reflet ou son frère jumeaux: les tests de non régression automatisés qui procèdent de la même démarche mais après le développement (et souvent sur un périmètre partiel, genre les fonctions cœurs de l'application qui sont à la fois critiques et stables).
Bref, une bonne idée de développeur qui coûte (toujours trop ?) cher dans le développement pour se généraliser.
1  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 22/09/2014 à 16:49
Citation Envoyé par deusyss Voir le message
J'en pense que les équipes pensant pouvoir se passer de test se trompe totalement. Comment peux t on espérer créer du code de qualité sans un minimum de test afin de vérifier que ce qu'on a écrit est fonctionnel et répond aux attentes?
Qui t'as dit que les gens cherchent toujours à faire du code de qualité ? Si tu prends les dév qui font dans la qualité, tu aura surement l'unanimité : les tests sont obligatoires, et se doivent eux-même d'être de qualité. C'est bien parce qu'on fait surtout dans la quantité et la rentabilité qu'on arrive à programmer à moindre test.

Cela dit, le sans test n'existe pas :

Citation Envoyé par benjani13 Voir le message
Eu... j'ai bossé un an dans une SSI (très grosse, internationale), on ne m'a pas appris a faire les tests sur la plateforme utilisé (un ERP), on ne m'a pas demandé de faire des tests (en gros le chef passait pour dire "Ça marche? ok on livre au client", sans rien vérifier), et une fois livré j'ai jamais eu de nouvelles.

Donc ça existe...
Il t'a demandé si ça marchait non ? C'est le minimum, ça veut dire que tu es censé avoir testé un tant soit peu, sinon tu n'es pas censé pouvoir répondre à la question. T'es censé être un minimum responsable de ton travail. Une équipe, c'est pas un ensemble de personnes qui passent leur temps à vérifier que leur voisin a fait son boulot. C'est justement un groupe de gens qui peuvent faire confiance à leurs collègues pour faire leur propre boulot correctement, ce qui leur permet de se concentrer sur leur propre tâche pour la faire aussi correctement. Le chef est pas là pour contrôler ton travail et te mettre une note comme à l'école, il est là pour te donner du travail et compter sur toi pour l'obtenir ou l'informer en cas de soucis, qu'il puisse synchroniser l'équipe (autrement dit faire son boulot) correctement lui aussi.
1  0 
Avatar de deusyss
Expert éminent https://www.developpez.com
Le 15/09/2014 à 7:53
Citation Envoyé par Arsene Newman Voir le message

Et vous ?
Qu’en pensez-vous ?
J'en pense que les équipes pensant pouvoir se passer de test se trompe totalement. Comment peux t on espérer créer du code de qualité sans un minimum de test afin de vérifier que ce qu'on a écrit est fonctionnel et répond aux attentes?

C'est le genre de question que l'on ne devrait meme pas se poser. Quel que soit le niveau de test, il doit y en avoir un minimum. Sinon, on se retrouve avec des logiciels totalement buggé, comme on en voit passer de temps en temps.

Dommage que l'étude n'effectue pas un comparatif avec les équipes n'effectuant aucuns tests, car je pense que les indices de qualité de code résultant auraient été significatifs.

Après sur la question se rapportant au fait de disposer de dev effectuant les tests, ou d'avoir une equipe de test dédié, on trouvera toujours des avis partagé. Certes, si les devs écrivent eux même leurs tests, ils peuvent être influencés par le code écrit, d'ou l'intérêt d'une equipe dédiée test. Cependant, s'il prenne le temps d'écrire leur test avant, en se basant sur les documentations techniques et fonctionnelles, aucun risque d'influence; et donc l'utilité d'une equipe dédiée test est remise en question. De même, si les devs s'occupent eux-même des tests, ils ont moins de temps pour développer.

Bref sur ce dernier point, il s'agit avant d'ou de compromis en fonction des contraintes client.

Quoiqu'il en soit cette étude met en évidence l'utilité et l'importance des tests pour avoir un développement de qualité.
0  0