Quelle est l'approche la plus couramment utilisée utilisée pour tester des projets Java (développement itératif)? P>
7 Réponses :
J'ai déjà travaillé avec TDD (développement axé sur les tests) et mes sentiments vers elle sont mélangés. Essentiellement, vous écrivez vos tests avant d'écrire votre code et d'écrire votre code pour satisfaire les exigences du test. TDD vous oblige à avoir une idée extrêmement claire sur vos besoins avant de commencer. Un avantage supplémentaire est que, une fois que vous avez terminé le développement, vous supposez-vous suivre de près les procédures TDD, vous aurez un ensemble complet de suites de test pour accéder au code. Le côté bas est que cela prend une période extrêmement longue et, parfois, vous voudrez simplement sauter quelques étapes (par exemple, un code d'écriture avant que des tests comme une personne sane préfère faire). P>
plus peut être lu ici (wiki link) p>
test unitaire? p>
Programmation basée sur les contrats, une la Eiffel? P>
Modèle de cascade? P>
Différents magasins font différentes choses. S'il y avait une méthode pour les gouverner tous, vous ne poserez pas cette question. P>
Expérience personnelle suggérerait que l'approche la plus populaire n'est pas du tout. P>
... ou du moins, aussi peu que vous pouvez vous échapper ;-)
Quelles sont les principales chutes des tests?
@James P. Je pense que l'hésitation d'écrire des tests automatisés est liée à la première fois pouvant être consacrée à faire "travail réel". Bien que je ne sois pas d'accord avec cette notion, je pense que l'une des choses importantes à faire est de concentrer l'énergie sur la rédaction des tests les plus rentables afin que la valeur soit plus facile à voir et à prouver. C'est le truc et il est difficile de prescrire car tant de temps dépend de l'environnement dans lequel vous travaillez.
Sur le principe de faire des tests du tout, je dirais que les tests avec Junit sont l'approche commune de tester en Java. P>
Bien que la plupart des tests soient écrits avec Junit, des tests surtout ont tendance à être plus de tests d'intégration que des tests unitaires. (ce qui signifie ne pas tester une chose de manière isolée, mais certaines choses ensemble) p>
Les tests supplémentaires ne sont principalement pas écrits dans une première approche test, mais en parallèle ou après une fonctionnalité spécifique a été mise en œuvre. P>
Si vous allez à une équipe qui utilise une utilisation plus avancée des tests, vous pouvez probablement trouver un serveur CI (Croisière Control, Hudson) exécutant les tests au moins une fois par jour pendant une construction nocturne. P>
Dans l'ordre de l'approche la plus couramment utilisée: p>
du côté théorique, il existe des charges de façons de tester correctement le code. Si vous cherchez quelque chose de pratique, jetez un coup d'œil à Nettoyer le code Talk . Jetez un coup d'œil à toute la série, environ 5 discussions (ne peut pas publier plus d'un lien). P>
Ma suggestion est que vous devriez avoir un mélange sain de tests automatisés et manuels. P>
test automatisé fort> p>
test unitaire fort> Test fonctionnel automatisé fort> test manuel fort>
Utilisez Nunit pour tester vos cours, vos fonctions et vos interactions entre eux.
http://www.nunit.org/index.php p> li>
S'il est possible, vous devez automatiser beaucoup de tests fonctionnels. Certaines œuvres de cadre ont des tests fonctionnels intégrés à eux. Sinon, vous devez utiliser un outil pour cela. Si vous développez des sites Web / des applications, vous voudrez peut-être regarder Selenium.
http://www.peterkrantz.com/2005/selenium-for-aspnet/ a> p> li>
Utilisez CI pour vous assurer que tous vos tests automatisés fonctionnent à chaque fois que quelqu'un de votre équipe s'engage dans le projet.
http://martinfowler.com/articles/continuerintegration.html p> Li>
ul>
Autant que j'aime les tests automatisés, IMHO, pas un substitut des tests manuels. La raison principale étant qu'un automatisé ne peut faire que ce à quoi il est dit et ne vérifie que ce qu'il a été informé de voir comme Pass / échec. Un humain peut utiliser son intelligence pour trouver des défauts et soulever des questions qui apparaissent tout en testant autre chose. P>
ET est un moyen très faible et efficace de trouver des défauts dans un projet. Il profite de l'intelligence d'un être humain et d'un apprentissage des testeurs / développeurs plus sur le projet que toute autre technique de test que je connaisse. Faire une session et une session visée à chaque caractéristique déployée dans l'environnement de test n'est pas seulement un moyen efficace de trouver des problèmes rapidement, mais aussi un bon moyen d'apprendre et de s'amuser!
http://www.satisfice.com/articles/et-article.pdf li>
ul>
Merci pour une réponse détaillée Jonas. Cela servira de bonne référence.
Pas de soucis, seulement heureux d'aider. Les tests peuvent être tellement amusants si vous le laissez.
Ma suggestion de test du projet Java est de le garder simple. P>
Étapes: -
Tests manuels: -Chasiez un produit stable.
Test d'automatisation: - Maintenir la qualité du produit.
Rapport génération et rapport: - laissez les gens connaître la qualité du produit.
Intégration continue: -Maisez-la un outil complet automatisé et continu. Strong> p>
Lorsque le développeur va commettre la fonctionnalité, commencez à tester le module informatique par module.try Pour comparer la sortie réelle avec la sortie attendue et contre ce journal des problèmes. P>
Lorsque le développeur a résolu avec les problèmes, commencez par le test d'intégration et commencez également à tester les problèmes d'état résolus et vérifiez si une régression se produise en raison de la fixation d'émission. P>
Enfin, lorsque le produit devient stable, alors commencez à automatiser les modules.
Vous pouvez également suivre l'automatisation étape par étape comme: -
1.Auomer les modules.
2. Rapport génération et envoyez un courrier pour le produit HealthCheck.
3. Test d'intégration et d'automatisation contenus sur le serveur privé sur la machine locale. P>