5 raisons à connaître avant de créer votre projet d'automatisation des tests

5 raisons à connaître avant de créer votre projet d'automatisation des tests

En théorie, les programmes ou outils d'automatisation des tests sont censés faciliter les choses pour les testeurs, le temps libre et nous fournir une couverture de relaxation supplémentaire pour notre couverture d'évaluation.

Et tant d'organisations ne parviennent pas à mettre en œuvre une infrastructure d'automatisation de test évolutive, solide et performante qui restitue les ressources investies et pourrait les économiser. Certaines tâches d'automatisation de test écrites «jetées» et d'autres se sont poursuivies dans une lutte permanente avec leurs objectifs pour gagner une suite d'automatisation stable.

Au fil des ans, j'ai observé de nombreuses entreprises qui tentaient d'exécuter leurs efforts d'automatisation, j'ai observé des projets écrits rejetés, des cadres changés et des gestionnaires licenciés parce qu'ils n'avaient pas réussi à fournir ce qui avait été promis ou fixé comme objectif.

Il y a de nombreuses raisons à l'échec, bien que l'automatisation soit parfaitement logique à long terme, nous devons comprendre que c'est beaucoup plus difficile qu'il n'y paraît.

Voici quelques-unes des raisons que vous devez connaître avant de vous lancer et de commencer à construire votre projet d'automatisation des tests:

Analyser et poser des questions: un travail d'automatisation de test est un travail comme tout autre projet d'application et doit être traité comme un autre; Comment traiteriez-vous la planification d'un projet logiciel? Laissez cette idée vous guider lorsque vous pensez à mettre en œuvre votre projet d'automatisation des tests. Qui choisiriez-vous pour le poste? Qui utilisera le produit fabriqué? Quelle langue ou quel cadre est le plus adapté à l'emploi? Comprendriez-vous les défis et leurs lignes directrices et y jeter un coup d'œil? Réagiriez-vous par vous-même à une architecture dont vous ne savez rien ou appeleriez-vous un conseiller pour vous conseiller avec quelques réflexions?

Toutes ces questions ne sont que la pointe de cet iceberg de ce que vous devriez vous poser avant d'écrire une ligne de code ou même de tester une situation.

Compétences inadéquates: Permettez-moi de vous poser une question. Autoriseriez-vous un programmeur moins expérimenté ou non expérimenté, quelqu'un qui ne comprend pas comment composer un excellent code propre à rechercher, styliser la conception de votre application et l'écrire à partir de zéro? Je pense que la réponse est non. Alors pourquoi tant d'entreprises pensent-elles que la qualité pourrait être mise en œuvre par une infrastructure d'automatisation d'évaluation sans l'expérience et les compétences? Si le personnel dédié n'a pas l'expérience et les connaissances et que vous ne prévoyez pas d'embaucher quelqu'un qui le fait, vous devez penser à utiliser des outils d'automatisation sans code.

Attentes / approche irréalistes: Je vais diviser celle-ci en deux parties. Le premier est une compréhension erronée du retour sur investissement (retour sur investissement) de l'automatisation des tests et le deuxième composant est un cadre d'anticipations irréalistes par temps. Il y a un travail aussi bon qu'il est fait par vous, et vous ne pouvez pas vous attendre à quelque chose sans investir du temps, pour offrir de la valeur. J'ai parlé à un ingénieur QA qui m'a dit qu'il obtenait 6 heures par semaine pour composer une infrastructure d'infiltration. Que devez-vous vous attendre à ce qu'il atteigne 6 heures?

Afin de faire ce travail, vous devez vous renseigner:

  • Quels sont exactement les objectifs que vous souhaitez atteindre avec votre automatisation de test?
  • Qu'est-ce qui serait considéré comme une valeur fantastique pour les efforts / le temps?
  • Quels sont les critères de réussite?
  • Combien de temps / d'argent êtes-vous prêt à consacrer pour y parvenir?

L'automatisation n'est pas une mission «Lancer et oublier». Vous voulez reconnaître qu'il s'agit d'un processus continu qui nécessite un entretien, un effort de groupe et de l'avancement.

Je dois reconnaître que, malheureusement, d'après ce que j'ai vu, certaines entreprises perçoivent le fait de fournir à un ingénieur d'assurance qualité un travail d'infiltration comme un moyen de préserver un travailleur ou de mettre un peu de « piquant » dans sa routine hebdomadaire. Ne vous méprenez pas, je ne dis pas que nous ne devrions pas conserver nos travailleurs ou leur donner le temps d'apprendre et de progresser, je dis seulement que cela devrait être aligné sur des attentes réalistes et de la transparence envers le travailleur, cela même. .

Planification insuffisante: Un projet d'automatisation fantastique doit commencer par un plan et un plan de haut niveau, qui se développeront en un style technique complet. Même la stratégie «taille unique» peut être catastrophique pour votre succès. Ce qui a bien fonctionné pour une seule entreprise n'indique pas nécessairement qu'elle ferait le travail à votre place. Cette annonce peut être vraie sur un choix d'instrument. Chaque fois que vous n'avez pas à utiliser la technologie en question, cela devient un mot à la mode. Ceci est extrêmement important à noter. Il existe un grand nombre d'outils open source et commerciaux qui peuvent offrir un rapport qualité-prix élevé et sans même considérer les alternatives et les avantages / alternatives que ces outils peuvent offrir. Choisissez un outil qui répondra à vos besoins. Voici mes deux cents - il est de loin préférable de payer pour une solution plutôt que de perdre beaucoup de temps (cela augmentera pour être beaucoup plus cher que le coût du programme).

Maintenant, alors que nous continuons à discuter de la manière de planifier notre conception, nous devrons réfléchir à notre architecture technique globale et à nos exigences commerciales. Voici quelques-uns des aspects à prendre en compte:

  • Imaginez des emplois, des modules, des flux commerciaux que les gens examineraient?
  • Quelle est la politique prévue pour chaque phase d'exécution? (Sanity, Regression, package dédié CI / CD?)
  • Quels sont les principaux flux / fonctionnalités partagés / communs / répétitifs?
  • Comment planifier chaque test pour un bref artefact autonome? (SetUp et TearDown, dépendance à des données externes au lieu des données d'évaluation générées, que faut-il exécuter avant chaque test, classe de suite?)
  • Comment éviter qu'une évaluation n'en "casse" une autre si elle s'exécute en simultanéité?
  • Comment produire une bonne atmosphère évolutive, propre et appropriée? (Serveurs simulés, cas de base de données, script de nettoyage, préférences du navigateur, configurations de grille / serveur, installation et nettoyage, environnements virtuels ou conteneurs de docker).
  • Quels outils de construction exactement si nous utilisons?
  • Comment gérer exactement nos dépendances?
  • Où est stocké notre projet?
  • Combien d'ingénieurs travaillent sur le projet et la façon dont la gestion des variantes serait gérée?
  • Quels outils CI sont les meilleurs pour effectuer nos builds?
  • Implémenterez-vous le flux de travail CI / CD?
  • Où allez-vous exécuter vos tests et ressources pouvez-vous utiliser pour concevoir votre propre plate-forme d'exécution? (Avez-vous les fonds nécessaires pour acheter des permis de solution cloud? Avez-vous les outils ou le soutien nécessaires pour créer votre propre infrastructure Selenium Server?)
  • Quels types de tests seront bientôt automatiques? (API, concepts visuels, processus serveur, automatisation Web / UI, mobile - Android / IOS).
  • Existe-t-il des collectes de données volumineuses, des flux longs, des processus compliqués, des intégrations qui appelleraient une évaluation supplémentaire?
  • Que devons-nous tester via l'interface graphique et ce qui pourrait être plus sûr à vérifier via l'API?
  • Quels sont exactement les journaux, mécanismes de rapport, gestionnaires et écouteurs que nous devrons implémenter afin de simplifier l'évaluation et le débogage de la cause première? (Qu'est-ce qu'une suite d'automatisation d'une heure si vous consacrez une journée à comprendre le résultat?)
  • Quelles métriques / rapport / sortie les analyses doivent-elles fournir?
  • Quelles intégrations voulons-nous vraiment? (Programmes de reporting, outils ALM, Bug Trackers, programmes de gestion d'évaluation).
  • Qui peut composer l'infrastructure et qui est censé mettre en œuvre les tests? (Peut-il même y avoir une branche entre les deux?)
  • Qui est chargé de proposer aux ingénieurs en automatisation les flux métier / cas de test / logique métier censée être automatique?
  • Y a-t-il des étapes POC (Proof of Concept) définies pour déterminer les objectifs futurs?

Ce ne sont là que quelques-unes des questions en bref et ce que vous devriez en retirer, c'est que

Une option d'outil appropriée, une planification / conception supérieure est susceptible de faire la différence entre l'échec et le succès.

Automatiser tout : un point important à noter est que ce n'est pas ce qui peut ou doit être automatique. Parfois, perception ou mauvaises décisions de gestion, nous automatisons tout ce qui vient à la tête du testeur ou convertissons aveuglément les cas de test en scripts. Tout d'abord, toutes les évaluations ne sont pas appropriées pour être automatisées. Deuxièmement, les cas de test eux-mêmes ne sont pas acceptables pour le travail. Cela se termine par un tas de tests automatiques non maintenables qu'il est impossible de garder et malheureusement la plupart des occasions cela va conduire à baliser une grande partie de notre travail écrit. Il n'y a aucune valeur supplémentaire à automatiser si votre entreprise ne dispose pas des fonds nécessaires pour maintenir des équipes d'automatisation des dizaines de milliers d'instances de test qui vérifient parfois la même logique métier.

Nous devrons également produire un plan clair sur ce qui doit maintenir chaque build d'automatisation. Qu'est-ce qui est inclus dans notre régression? Qu'est-ce qui est décrit comme notre santé mentale? Qu'est-ce qui est suffisamment sûr et fiable pour entrer dans notre pipeline CI / CD?

Test-Automation a besoin d'une planification, d'une compréhension, d'un engagement et d'un dévouement solides pour offrir une valeur appropriée.

Manque de compétences / instruction appropriée, choix d'outils incorrect, ressources insuffisantes, manque de préparation appropriée, anticipation irréaliste, tout cela peut faire échouer un projet.

J'espère que ce rapport aura un impact positif et aidera quelques-uns d'entre vous à adopter un état d'esprit productif.