TDD et ATDD

contenu
  1. Assurance qualité équilibrée
  2. l'automatisation des tests
  3. TDD et ATDD
  4. conclusion
  5. lire sur un côté

Avec des outils d'analyse de code statique comme FindBugs souvent, FXCop ou CheckStyle être utilisés pour vérifier le code contre le défaut d'application indépendante. exceptions non couvertes références de pointeurs nuls et évidents fragments de code inutilisés peuvent ainsi trouver spécifiques. En général, cependant, ne devrait pas être limitée à l'analyse statique de code, mais compléter les paramètres par programmation de paire. Ce partage des connaissances est également soutenu à long l'équipe et propriété collective du code permet. Si tout programmeur dans l'équipe est capable de changer tout autre code, la création d'une nouvelle façon de travailler, parce qu'aucun ne le code Peters vont plus à la fois, mais il est le code de tous les membres de l'équipe.

Comme avec tous les paramètres, cependant, de garder à l'esprit qu'il ne soit pas sur le point de mesurer la performance individuelle des membres de l'équipe ou à utiliser, par exemple, les mesures de couverture comme cible pour l'équipe de développement de logiciels. Cem Kaner et Walter P. Bond plomb "Logiciel Mesures d'ingénierie - mesurent-ils et comment savons-nous?" [3] que ce comportement à la falsification et les résultats outsmarting métriques. Par exemple, les tests unitaires peut créer de manière ciblée afin que le taux de couverture est atteint. Ils sont alors généralement fortement liés à la logique de l'application, il est donc difficile rétrospectivement pour changer le code sans casser le test. Au lieu de cela, les auteurs proposent d'investir dans la formation des développeurs et de travailler directement avec eux au code.

Assez ne suffit pas

Une fois qu'un réseau de tests automatisés est positionné le long de l'intégration continue, il est seulement une petite étape pour tester le développement piloté par (TDD). Le cycle de développement commence par un petit test de défaut: Exécute un test non seulement autant le code de production doit être écrit afin qu'il puisse être avec succès complet. , Sont ensuite redondance dans le code de réduction par refactoring (Fig. 3). La plupart des équipes ne se rendent pas compte que cela est aussi dans l'automatisation des tests pour le développement de logiciels où le code de test est propre, car il est par ailleurs rapidement faire face au problème des mauvais essais maintenable.

Avec le développement piloté par les tests dans le maintenable à long terme, code testé à créer (fig. 3).Avec le développement piloté par les tests dans le maintenable à long terme, code testé à créer (fig. 3).


Cette approche apparaît d'abord dogmatique, mais pour apprendre le développement piloté par les tests, il a délibérément choisi cette voie. Lorsque la sécurité se produit après un certain temps dans certains domaines peuvent aussi mettre en œuvre par incréments plus importants. Cependant, il devrait être clair qu'une trop grande étape implique le risque de s'enliser, et le test ne sera pas revenir rapidement et en cours d'exécution. Dans ce cas, le problème doit être décomposé en unités plus petites et être résolu de cette façon.

Spécification des exemples

Une nouvelle tendance dans le développement de méthodes va actuellement vers le développement axé sur Acceptancetest (ATDD) et le développement axé sur le comportement (BDD). À la base, BDD est l'association des TDD, ATDD, conception pilotée par le domaine, le développement extérieur-et à l'utilisation d'une langue omniprésente que des ateliers de spécification créés par des instruments. Dans la pratique ATDD malheureusement, est souvent confondu avec BDD.

ATDD est conçu pour aider les bonnes fonctions pour développer (fig. 4).ATDD est conçu pour aider les bonnes fonctions pour développer (fig. 4).

En ATDD (voir [4].) Il est une mesure de mettre en œuvre les exigences correctement que possible dans le code (Fig. 4). Le travail commence ici au début, alors même que les besoins réels sont définis. Des représentants du développement et de l'équipe de test se réuniront avec le client et d'identifier les critères d'acceptation pour les fonctions futures (fig. 5). Ici, les testeurs et programmeurs ([5] voir.) Une compréhension commune des besoins du client, avec une salle suffisamment grande pour différentes décisions de conception reste ouverte. Ainsi, les programmeurs et les testeurs peuvent trouver une solution au problème du client, avec lequel il peut être satisfait à long terme.

Toute l'équipe des clients, des programmeurs et testeurs devrait être une compréhension commune des fonctions résultantes ont (fig. 5).Toute l'équipe des clients, des programmeurs et testeurs devrait être une compréhension commune des fonctions résultantes ont (fig. 5).


Sur la base des critères d'acceptation ci-dessus, l'équipe de développement travaillant d'abord sur des exemples descriptifs ils avant de la fonction, cependant, continuer à affiner. Des exemples poussent de façon succincte et précise ce qui doit être réalisé dans les fonctions. Ils se déplacent sur un niveau avec les exigences commerciales et devraient avoir rien à voir avec les détails de mise en œuvre tels que la position des éléments de l'interface graphique.

Parallèlement à la mise en œuvre des fonctions de l'équipe travaille ensuite pour automatiser les exemples. Certains groupes de développeurs sont encore en mesure d'intégrer la logique métier des cas d'affaires en fonction de leur code de domaine. La littérature parle de hors-dans le développement: Le développement est entraîné de l'extérieur vers l'intérieur. Dans ce cas, seul le code autant de domaine et la logique application est conçue et écrit est absolument nécessaire. En pratique, il y a quelques équipes qui ont atteint un tel niveau de maturité. Les avantages de cette approche, cependant, ne doivent pas être rejetés à la main: Peut-être avant le spectacle de développement que l'application proposée exécutera ce qu'ils veulent, alors la flexibilité à l'évolution des besoins à long terme.

Total des TDD et ATDD forment une symbiose avec laquelle un haut degré peut être réalisé sur l'automatisation des tests. Ainsi, il est possible par ATDD un couvercle de demande près de 100 pour cent, alors que TDD 100 pour cent de couverture de code est possible. Combiné TDD assure ainsi que le code est correct, alors que ATDD assure qu'il est le bon code.