La raison de l'automatisation des tests est que cela signifie que je peux obtenir des retours cohérents, répétables et opportuns que ce que je viens de faire est correct.
Le test manuel a aussi sa place, mais il est difficile d'être aussi convaincu qu'il couvre tout correctement, et certainement pas aussi rapidement que les tests automatisés.Par exemple, une partie d'un de mes projets est un algorithme d'optimisation qui utilise des heuristiques pour contourner l'espace de recherche à la recherche de bonnes solutions. Il y a maintenant environ 40 heuristiques différentes qui peuvent être utilisées individuellement ou dans diverses combinaisons, et chaque rencontre avec un client semble impliquer l'ajout d'une nouvelle heuristique ou l'extension d'une heuristique existante. Je dois être absolument certain que rien de ce travail pour un client ne provoquera une régression pour un autre client, ce qui implique d'exécuter l'algorithme sur quelques centaines de cas différents et de vérifier que la sortie est (pas pire que). Il ne serait pas pratique de demander à un testeur manuel d'exécuter tous ces tests en chargeant l'interface graphique, en ouvrant le fichier d'entrée et en cliquant sur "Exécuter", au moins pas assez souvent pour être un mécanisme de retour utile. Les tests sont généralement effectués des dizaines de fois par jour pour les tests courts et tous les soirs pour les tests les plus lourds. Avec un processus manuel, un retour d'information complet prendrait probablement quelques jours, et réparer un bug introduit il y a quelques jours est beaucoup plus difficile que de corriger un bug introduit dans la dernière demi-heure.
Il serait également très difficile de s'assurer que tous les contrôles «oculaires» des résultats sont aussi bons qu'ils l'étaient auparavant, de sorte que les vérifications des résultats doivent être automatisées. Mais si vous voulez automatiser cela, vous pouvez tout aussi bien automatiser le tout. C'est pas difficile. Un autre avantage des tests automatisés, de l'expérience de travailler avec un projet qui n'en avait pas, est que si vous avez des tests manuels qui ne sont pas documentés, alors quand le projet est dormant (en mode maintenance apparemment) Pendant un an, puis redémarre le développement actif, personne ne se souvient très bien de la façon de faire les tests ou des résultats attendus, et vous finissez par introduire toute une pile de régressions idiotes qui mettent du temps à se fixer. D'un autre côté, si vous documentez suffisamment vos tests pour qu'ils puissent être récupérés un an plus tard, vous les avez essentiellement automatisés: il suffit de rendre la documentation exécutable.
Dans mon expérience, vous devez commencer à tester environ 2 heures avant le moment où vous réalisez soudainement que vous avez commencé à tester :) il y a 2 heures
son comme vous essayez de trouver un cadre de tests qui permettent d'automatiser ce que vos testeurs QA font (test GUI). Avez-vous déjà des tests de niveau inférieur (unité/intégration)? Il est important d'avoir ceux avant d'avoir l'automatisation de l'interface graphique. –
Merci à tous pour vos réponses. Ils étaient tous très utiles. En ce moment je regarde Selenium et Ruby. Je suis sûr que vous me verrez poster plus de questions bientôt. – onesith
Après avoir regardé ma dernière question, j'ai foiré. Cela devrait être "Quand" au lieu de pourquoi. merci encore. – onesith