Question

Je ne peux pas croire que je suis la première personne à passer par ce processus de pensée, alors je me demande si quelqu'un peut me aider avec.

Situation actuelle: les développeurs à écrire un site Web, les opérations déployer. Une fois déployé, un développeur Tests de fumer, pour se assurer le déploiement est bien passé.

Pour moi, cela se sent mal, cela signifie essentiellement, il faut deux personnes pour déployer une application; dans notre cas ces deux personnes sont sur les côtés opposés de la planète et les fuseaux horaires entrent en jeu, ce qui provoque des ravages. Mais les restes de fait que les développeurs savent ce que l'ensemble minimal de tests est et qui peut changer au fil du temps (en particulier pour la partie de service Web de notre application). Opérations, avec tout le respect qui leur est dû (et ils disent eux-mêmes cela), sont boutons-poussoirs qui ont besoin d'un ensemble d'instructions à suivre.

La solution manuelle est que nous documentons les cas de test et les opérations suivre ce document chaque fois qu'ils déploient. Cela semble douloureux, plus ils peuvent déploieront différentes versions à différents environnements (en particulier UAT et production) et peuvent avoir besoin d'un ensemble d'instructions différentes pour chacun.

En plus de cela, l'un de nos plans dans un futur proche est d'avoir un environnement de déploiement quotidien automatisé, donc nous allons devoir demander à un ordinateur à la façon de déployer une version donnée de notre application. Je voudrais très cher à ajouter à ce que les instructions sur la façon de fumer tester l'application.

Les développeurs sont mieux à la documentation des instructions pour les ordinateurs qu'ils ne le sont pour les gens, donc la solution la plus évidente semble être d'utiliser une combinaison de nUnit (je sais que ce ne sont pas des tests unitaires en soi, mais il est intégré pour coureur de test à usage multiple) et soit les API Watin ou sélénium pour exécuter les étapes de navigateur évidentes et appel au service Web et expliquer aux gars opérations comment exécuter les tests unitaires. Je peux le faire; Je l'ai déjà fait la plupart du temps.

Mais ça ne serait pas bien si je pouvais rendre ce processus plus simple encore?

À ce stade, les opérations gars et l'ordinateur vont devoir savoir quel ensemble de tests qui se rapportent à la version de l'application et de dire le coureur nUnit l'URL de base, il doit pointer (par exemple, www.example.com = v3.2 ou test.example.com = v3.3).

Ce ne serait pas plus agréable si le coureur de test lui-même avait une façon de lui donner une URL de base et de le laisser télécharger dire un fichier zip, décompressez-le et modifier un fichier de configuration automatiquement avant d'exécuter des montages d'essai, il a trouvé là-dedans?

Y at-il une application open source qui ferait cela? Y at-il besoin d'un? Y at-il une solution utilisant autre chose que nUnit, peut-être Fitnesse?

Pour mémoire, je suis à la recherche à des outils basés sur .NET d'abord parce que la plupart des développeurs sont principalement des développeurs .NET, mais nous ne sommes pas mariés à elle. Si un tel outil existe en utilisant d'autres langues pour écrire les tests, nous nous adapterons avec plaisir, tant qu'il est un coureur de test qui fonctionne sur Windows.

Était-ce utile?

La solution 7

Après beaucoup de temps perdu à essayer de compenser une solution plus facile, nous Tought finalement l'équipe ops comment utiliser le coureur de NUnit Gui. Ce fut plus facile que prévu et fonctionne très bien.

Autres conseils

Je travaille dans un écrivain de test de fumée pour une application asp.net. Nous avons utilisé QuickTest Pro , l'automatisation des pistes de test a été fait avec Quality Center (il était appelé test Director.). Ce centaines d'écriture impliqué des scripts de test qui automatisent un navigateur web d'interagir avec l'application Web. Ces tests où ont utilisé une construction validate avant de le déployer sur nos serveurs de production. Quality Center vous permet de définir un « pool » des machines d'essai pour vous permettre d'exécuter une grande liste de scripts de test de manière multithread.

Un test de fumée plus simpliste serait de consigner toutes les erreurs / exceptions que l'application produit et exécuter une araignée contre le système. Ce ne sera pas obtenir une couverture de code très « profond », mais les tests de fumée ne sont pas destinés à la couverture de code en profondeur. Cette journalisation des erreurs doit être en dehors de l'application de production pour traiter les erreurs comme ils se présentent. Bugs toujours glisser les mailles du filet et malheureusement assez les meilleurs testeurs seront vos utilisateurs.

Je l'ai utilisé Sélénium dans le passé pour faire ce genre de tests de fumée pour les déploiements Web. Vous pouvez écrire une suite de scripts de test, puis exécutez ensuite sur le même site dans des environnements différents.

J'ai mis aussi une pensée dans cette séquence et ont proposé une approche déclarative pour le déploiement et la vérification, voir ici pour mes pensées,

http://jimblogdog.blogspot.co.uk/2010/ 10 / introducingdeclarative-deployment.html

J'ai aussi créé des plugins pour mon projet open source Wolfpack pour automatiser ce processus. Essentiellement, vous emballez vos « tests de fumée déploiement » comme un paquet NuGet et le publier à votre flux NuGet privé. Wolfpack détecte automatiquement la nouvelle version du package et le télécharger, ainsi que le paquet NUnit.Runner NuGet et décompresser tous les fichiers. Il sera ensuite exécuter silencieusement vos tests en utilisant le coureur de la console NUnit et analyser les résultats en alerte que vous pouvez recevoir par courriel, grognement, HipChat etc.

http://wolfpack.codeplex.com/

http://wolfpackcontrib.codeplex.com/wikipage?title=NUnitDeploymentPublisher

Telerik a des outils de test de l'interface utilisateur libre et non-libres qui peuvent être RAN de façon automatisée par quelqu'un qui pourrait aider à cela aussi.

Je ne sais pas qui VCS que vous utilisez, mais vous pouvez écrire une solution qui tire un fichier de configuration spécifique version du VCS par un service intermédiaire.

Vous pouvez écrire un script Powershell ou une application qui télécharger le fichier de configuration à partir d'une application de service ou web web, en passant l'URL de test en tant que paramètre. Les serveurs ou l'application seraient en cours d'exécution sur une machine avec un accès à VCS, il pourrait retourner le contenu du fichier. Une fois récupéré, le script ou l'application pourrait alors lancer les tests.

En règle générale, vos tests NUnit suffisent que si elles passent tous, la base de code devrait fonctionner très bien. Si vous déployez le code, avec le passage des tests NUnit et rencontrez un échec sur le site, alors vous devez ajouter un nUnit supplémentaire qui échoue également, pour la même raison. Ensuite, lorsque vous fixez votre code tel que le nUnit passe, vous savez que vous avez résolu le problème que le code a déployé. Pour cette raison, les systèmes de construction les plus automatiques peuvent être configurés pour exécuter automatiquement toutes les nUnit teste d'abord, puis « échec » de la construction si l'un des tests échoue.

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