Ressources pour le développement piloté par les tests dans les applications Web? [fermé]


15

Je voudrais essayer d'implémenter du TDD dans nos applications Web pour réduire les régressions et améliorer la qualité des versions, mais je ne suis pas convaincu de l'efficacité des tests automatisés avec quelque chose d'aussi moelleux que les applications Web.

J'ai lu et essayé TDD et les tests unitaires, mais les exemples sont des fonctionnalités «solides» et plutôt simples comme les convertisseurs de devises, etc.

Existe-t-il des ressources pouvant aider à tester les systèmes de gestion de contenu et de publication unitaire? Que diriez-vous de tester un panier / magasin (produits physiques et en ligne)? AJAX?

Googler pour "Web Test Driven Development" me donne juste d'anciens articles d'il y a plusieurs années couvrant les mêmes exemples de fonction de calculatrice ou des discussions sur pourquoi TDD est meilleur que tout (sans aucun exemple).


1
les outils disponibles dépendront de la langue. quelle (s) langue (s) utilisez-vous?
Alb

Je m'en rends compte - mais je cherchais plus d'articles de discussion et d'essais que d'outils spécifiques. Je connais les outils disponibles, mais j'aimerais savoir comment les utiliser au mieux pour les applications frontales.
HorusKol

Réponses:


2

Gros avertissement: je n'ai pas créé d'applications Web et je n'ai testé aucune application Web. Ce qui suit ne sont que des bribes d'informations que j'ai absorbées dans mes promenades aléatoires dans la sphère de l'information.

Construisez votre application Web de manière à pouvoir tester les règles métier isolément. Si vous vous retrouvez à tester des règles métier via l'interface utilisateur, il est peut-être temps de réfléchir à une refonte.

Quand il s'agit de tester l'interface utilisateur, remplacez vos règles métier par des implémentations simulées qui répondent de manière prévisible.

Les deux règles ci-dessus sont extraites de la conférence de Bob Martin à RailsConf 2010 . Le discours ne porte pas sur TDD et la section où il mentionne les tests est courte et quelque part au milieu.

Il existe des outils tels que JsUnit , JSSpec , YUI Test pour tester JavaScript et Selenium et Watir pour tester l'interface utilisateur.

La bibliothèque pragmatique a quelques livres couvrant les tests d'applications Web. Une liste de livres étiquetés avec Testing est disponible sur http://www.pragprog.com/categories/design . Les livres de test de l'application Web Pragmatic Bookshelf sont principalement axés sur Ruby et Rails, mais devraient être applicables de manière générique.


Un problème majeur avec la conception web est le test CSS - une nouvelle règle CSS peut avoir des conséquences inattendues, mais uniquement sur une page avec un contenu spécifique ... Pouvez-vous tester cela de manière unitaire?
HorusKol

Bonne question. Je dirais que cela fait partie de vos tests d'interface utilisateur. Vous développez vos tests pour inclure les divers contenus de page que vous attendez (et quelques-uns auxquels vous ne vous attendez pas) et rédigez vos acceptations de manière appropriée. Ensuite, lorsque vous introduisez de nouvelles règles CSS, vos tests d'interface utilisateur doivent mettre en évidence toutes les régressions. Il se peut que ce processus prenne trop de temps et que vous feriez mieux de simplement demander à quelqu'un de faire des tests d'assurance qualité sur le site et de signaler les problèmes.
Anthony Cramp

3

Test-Driven JavaScript Development est un très bon livre de Christian Johansen, le développeur derrière Sinon.js et Buster.js , qui couvre des sujets tels que (tirés du site Web):

  • Comprendre les tests unitaires et TDD
  • Choisir le bon cadre de tests unitaires
  • Construire des API plus propres, JavaScript modulaire et robuste
  • Amélioration continue du code grâce au refactoring
  • Cinq sessions TDD pratiques: Ajax, manipulation DOM, Node.js et plus
  • Visite guidée par test de JavaScript pour les développeurs qui ne connaissent pas le langage

Actuellement, nous utilisons Sinon.js avec Mocha, mais prêt à passer à Buster.js, car ses fonctionnalités sont vraiment bien!


1

Sur un projet sur lequel j'ai travaillé récemment, le développeur principal avait décidé d'utiliser Unity afin que la simulation et le TDD soient simplifiés dans une grande application Web - je pense que l'utilisation de Unity sera souvent accompagnée de TDD est une application Web.

Enquêter sur les tests unitaires de CMS est susceptible de conduire à une impasse car il n'y a tout simplement pas de raison raisonnable de se moquer. Je ne vois pas ce qui peut être testé sans se moquer du trafic http vers les pages - et à ce stade, le test a peu de valeur.

Je pense qu'une règle d'or utile avec les applications Web est que si elle peut utiliser une maquette pour réduire la complexité, elle peut probablement être testée unitaire.

Ainsi, dans une application Web, vous pouvez simuler votre base de données pour tester de manière unitaire différentes parties de votre couche ou modèle d'accès aux données; vous pouvez vous moquer de l'entrée utilisateur pour tester uniquement la vue ou l'interface utilisateur, etc.


0

J'ai écrit un livre sur TDD pour le développement web avec Python + Django. il couvre TDD, à la fois avec des tests de bout en bout / fonctionnels (sélénium) et des tests "unitaires" de niveau inférieur. Je couvre également les pratiques de développement modernes telles que la façon d'intégrer git dans votre flux de travail, comment déployer sur un serveur et automatiser et tester cela, l'intégration continue, les simulations et tester l'isolement, et bien plus encore:

http://www.obeythetestinggoat.com/

(ou http://shop.oreilly.com/product/0636920051091.do )


Le lien est rompu
Keldon Alleyne
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.