Question

Mon lieu de travail se compose d'un grand nombre de codeurs cow-boy. Beaucoup d'entre eux sont junior. Ce qui contribue à beaucoup par hasard des problèmes de qualité de code.

Je cherche des suggestions sur la façon de mieux décliner mon équipe en utilisant TDD (nous pouvons commencer avec les tests unitaires et passer à des tests de régression et les tests automatisés plus tard).

En fin de compte, je veux que nous apprenons plus rapidement de nos erreurs, et de produire un meilleur code et élevons meilleurs développeurs.

J'espère qu'il ya des suggestions pratiques sur la façon de présenter TDD à une équipe. Plus précisément, quels sont les meilleurs outils pour choisir dans la lampe (php) pile.

Désolé si cette question est trop ouverte.

Était-ce utile?

La solution

Après avoir traversé ce processus quatre fois maintenant, j'ai trouvé que l'introduction éventuelle de TDD échouera sans un certain niveau d'application. Les programmeurs ne veulent pas changer de style et n'écrire leur premier test de l'unité et de voir tout à coup la lumière.

Vous pouvez appliquer à un niveau de gestion, mais cela prend du temps pour toutes les parties concernées. Un certain niveau de cela est nécessaire au début de toute façon, mais en fin de compte vous aurez besoin l'application automatique. La réponse à cette question est d'introduire l'intégration continue.

J'ai trouvé qu'un serveur CI est la clé de voûte ultime à tout environnement TDD. À moins que les développeurs savent que quelque chose de mauvais va se passer si elles n'écrivent pas les tests, vous aurez toujours des cow-boys qui se sentent il est en dessous.

Autres conseils

Faire des tests d'écriture facile et les résultats visible .

  • Utilisez un TestFrameWork avec une bonne documentation. comme SimpleTest
  • Si le test dépendent contenu de base de données, créer une base de données de référence qui sera abandonné et créé au début d'un script.
  • un script qui exécute tous les tests et affiche les résultats sur un moniteur autonome ou quelque chose qui fera le test visible / facilement accessible. (Exécution d'une invite de commande n'est pas une option)

Personnellement, je ne pas écrire test pour chaque morceau de code dans l'application.
Focus sur les objets de domaine dans l'application. Dans mon cas, ce sont des « prix-calcul » et « inventaire des changements »

Rappelez-leur qu'ils écrivent probablement déjà des tests, mais ils suppriment leur travail juste après la création. Exemple: Lors du développement d'une fonction, vous aurez une page / TestScript avec un echo ou var_dump () le résultat. Après une validation manuelle du résultat que vous allez modifier les paramètres de la fonction et de vérifier à nouveau.

Avec un effort supplémentaire de ces tests pourraient être automatisés dans une UnitTest. Et que programmeur n'aime pas automatiser des choses?

En ce qui concerne la question de l'équipe ainsi que des idées universelles sur le développement de logiciels et de test, je vous suggère le site web de Joel Spolski et livres: http : //joelonsoftware.com/ Je suis arrivé de nombreuses idées de lui.

SimpleTest - excellente documentation et des explications de test pour php

Une autre façon de commencer TDD est d'essayer d'utiliser framework PHP. Sans cadre, il est difficile de mettre en œuvre efficacement test unitaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top