Retour sur mon parcours en matière d'assurance de la qualité (QA)
Le titre de cet article doit sembler très excentrique pour ceux qui travaillent dans un secteur qui fait appel à des ingénieurs, des analystes compétents en matière de technologie, etc. Ces personnes ont appris à compter sur de solides suites d'automatisation basées sur la programmation pour s'assurer que leurs code soient sans bug, en particulier dans un secteur qui exige des améliorations constantes et le moins d'interruptions possible pour les utilisateurs.
Lorsque l'humanité est passée du vol en avion à l'atterrissage sur la lune en un laps de temps relativement court, nous étions absolument stupéfaits des possibilités qui s'offraient à nous. N'ayant pas de formation en programmation, j'ai vu la transformation vers l’automatisation des tests dans le commerce électronique de la même manière - un pas de géant pour un secteur qui nécessitait un changement majeur dans la façon dont nous nous y prenons pour rendre le secteur des sites web/logiciels plus facile à perfectionner.
Je comprends que la comparaison entre l'atterrissage sur la lune et l'automatisation sans code n'est pas de la même ampleur. Toutefois, le secteur des sites web et du commerce électronique n'existe que depuis une trentaine d'années, soit un laps de temps relativement court pour passer d'une approche basée sur du code, qui consiste à s'assurer que votre site fonctionne lorsqu'il est mis en ligne à un outil d'automatisation des tests sans code que n’importe qui peut utiliser pour réaliser la même chose à des coûts bien moindres pour l'entreprise.
Avant d'entrer dans le monde du commerce électronique, j'ai occupé de nombreux postes sans aucun lien avec celui-ci: commerce de détail, banque et enseignement. Les seuls « tests » que j'ai effectués jusqu'alors l'ont été pour le secteur bancaire, et ils ont été minimes. Dans ma vie privée, je suis un gamer, ce qui, en ce qui me concerne, constitue une expérience informatique valable. J'ai aussi rarement fait des achats en ligne - je fais encore principalement mes achats en personne, même si cela évolue avec le temps.
En tant que membre de la génération X, j'ai grandi à l'ère de l'informatique. J'ai connu DOS, puis je suis passé à la première version de Windows, et enfin, je suis devenu un utilisateur de macOS tout en travaillant dans l'industrie. Je n'aurais jamais imaginé travailler dans ce domaine en raison de mon manque de connaissances en matière de programmation. J'ai toujours pensé que les testeurs n'existaient que dans l'industrie du jeu vidéo.
Lorsque j'ai commencé mon parcours en tant que coordinateur de l'assurance de la qualité (QA), le travail semblait très simple:
- Le client demande à notre agence de développer/créer une page de son site web ou un site web complet.
- Notre équipe examine les exigences, telles que la conception, la fonctionnalité et l'intégration avec d'autres composantes.
- L'équipe développe ce que le client souhaite et « teste » le produit localement avant de le diffuser dans un environnement de développement de test.
C'est là que j'interviens. Je dispose d'une liste simple de scénarios de test à vérifier:
- Est-ce que cela ressemble à ce qui est prévu dans la maquette?
- Cela fonctionne-t-il comme prévu?
- Avons-nous brisé quelque chose?
- La checkout fonctionne-t-elle toujours?
- Comment cela se présente-t-il sur les différents appareils/navigateurs?
Tant de questions, si peu de temps!
J'ai rapidement découvert que les développeurs détestent tester leur code presque autant qu'ils détestent les QA - « Quel bug ? C'est très bien ! » Ne vous trompez pas, nous nous entendons très bien et, au fil des ans, ils sont devenus un peu plus habiles à tester leur propre travail.
Comme vous le devinez probablement, j'ai commencé par tester les sites manuellement. Pour éviter les coûts élevés liés à la variété d'appareils physiques à tester - qui sont de toute façon en constante évolution - nous avons choisi d'utiliser BrowserStack, un outil de test de navigateurs. Cela a permis à notre petite agence d'augmenter assez rapidement le nombre de tests que nous pouvions faire pour notre clientèle et m'a permis d'approfondir mes connaissances du commerce électronique dans le processus.
Au début, j'ai dû m'habituer à tester le Front-End (FE) sur différents sites afin de mieux comprendre comment être un QA digne de ce nom. J'ai appris à enregistrer les bugs, à les communiquer à nos différents développeurs FE et à repérer les éléments à prendre en compte lorsque nous sommes prêts à mettre en ligne la tâche complétée.
La plupart des QA vous diront que ce travail exige non seulement une attention particulière aux détails, mais aussi une grande patience. Il s'agit en fait d'effectuer le même test à plusieurs reprises sur différents appareils/navigateurs. Au début, cela ne semble pas excessif lorsque vous n'avez que quelques sites à gérer; cependant, au fur et à mesure que l'entreprise s'est développée, la tâche est devenue très lourde pour un QA manuel.
Si l'on ajoute tous ces tests au tests back-end (BE) à faire pour tous ces sites, la quantité de QA requise pour garantir la stabilité était devenue écrasante. Bien que cela ait rendu le travail plus intéressant et que j'aie beaucoup appris, la quantité de QA requis pour assurer une stabilité constante était énorme.
Il y a des limites à ce qu'un être humain peut faire et il peut oublier quelque chose qui risque de briser la fonction la plus importante d'un site: le checkout. L'utilisateur final n'a plus la possibilité d'acheter quoi que ce soit à nos clients, ce qui peut être catastrophique.
Notre agence s'est développée organiquement avec le nombre de clients que nous avions, et nos besoins en matière d'assurance de la qualité ont suivi. Nous avons continué à effectuer du QA manuellement et, bien que nous ayons réussi à détecter les problèmes, nous n'avons jamais été parfaits. Dans un secteur qui exige la perfection - ou ce qui s'en rapproche le plus - il y a des limites au QA manuel.
La recherche pour un outil de test automatisé sans code commence
Les problèmes surviennent souvent lorsque la mise à jour des versions de plateforme crée des contraintes. En fait, si chaque site web sur lequel vous travaillez nécessite une mise à jour de code toutes les semaines ou toutes les deux semaines, cela signifie que vous disposez de moins de temps que prévu pour le QA, en particulier si vous gérez plusieurs sites avec une équipe très réduite.
Heureusement, le marché s'est rendu compte qu'il y avait un besoin désespéré d'automatisation qui ne nécessitait pas d'expérience en matière de programmation. Pour de nombreuses petites agences, l'automatisation n'était probablement pas dans leur budget, car il fallait un développeur expérimenté et une montagne d'heures pour créer des processus et des suites d'automatisation pour plus d'un site e-commerce, ce qui rendait la tâche d'autant plus complexe et prenante.
Lorsque Jon, notre directeur de la technologie (CTO)/propriétaire, m'a dit qu'un outil d'automatisation du QA sans code était disponible et qu'il pouvait répondre à nos besoins en matière d'assurance de la qualité, j'ai été ravi. Nous avons discuté de la stratégie à adopter pour résoudre nos problèmes QA les plus pointues et les plus fastidieux, et nous avons décidé de la meilleure façon d'aller de l'avant.
Lorsque j'ai commencé à travailler avec le premier outil d'automatisation que nous avons sélectionné, je n'avais pas d'attentes réelles ni d'idée de ce qu'il fallait considérer, comme la facilité d'utilisation, la stabilité des tests, la maintenance, le temps nécessaire pour créer des tests automatisés et l'assistance offerte. Au début, c'était une expérience intéressante d'apprendre un nouvel outil qui, je l'espère, aiderait notre agence à construire un processus d'assurance de la qualité plus efficace, mais au fil du temps, cela s'est avéré être une source de tracas.
Je l'admets, c'était agréable au début: cliquez pour enregistrer votre parcours, faire des affirmations en cours de route, et laissez-le tout s'exécuter sur le cloud pour voir vos résultats. Au début, j'ai pensé que c’était normal de devoir entrer quelques séquences de commande ou que cela prenne un peu de temps pour s'exécuter tout seul.
Tout cela semblait facile, amusant et un excellent moyen d'automatiser nos problèmes. Mais nous avons découvert que ce n'était pas ce qui avait été promis et que l'expérience s'est révélée très frustrante.
Les principaux problèmes auxquels j'ai été confronté concernaient la stabilité des tests et le support de l'entreprise qui fournissait l'outil lui-même. L'exécution et la création des tests prenaient beaucoup de temps, et une fois que vous pensiez avoir un test stable, il échouait lors des exécutions subséquentes. Le support n'était pas très utile, et nous avons même contacté le PDG car nos problèmes semblaient ne jamais avoir de solution logique pour un outil promis comme étant l'un des meilleurs sur le marché.
Nous avons essayé de travailler avec leurs ingénieurs pour trouver des solutions à nos problèmes qui dépassaient le cadre de leur programme de support normal, mais cela nous a fait perdre plus de temps. L'objectif était de nous faire gagner du temps, et non d'en perdre en essayant de résoudre des problèmes pour lesquels cet outil était censé être conçu.
Mais nous n'avons pas abandonné. Nous savions qu'il existait quelque chose qui nous conviendrait mieux, et nous l'avons trouvé assez rapidement.
Un pas de géant pour tous les acteurs de l'assurance de la qualité!
Lorsque vous obtenez le bon outil de travail, vous vous sentez bien! C'est incroyable quand les choses se mettent en place et que tout commence à évoluer dans la bonne direction très rapidement. J'avais l'impression d'être à bord d'un vaisseau spatial en route vers la lune, de passer des méthodes manuelles d'assurance de la qualité à l'utilisation d'un outil d'automatisation sans code qui aiderait notre entreprise à progresser à pas de géant.
Après un mois de tests, nous avons retenu 3 outils et en avons trouvé un qui s'est dinstinguait des autres - Testim par Tricentis. Ils avaient tout ce qu'il fallait:
- Facilité d'utilisation/interface conviviale
- Stabilité des tests
- Facilité de maintien des tests
- Temps nécessaire à l'élaboration des tests court
- Support exceptionnel
- Documentation utile et exemples de cas d'utilisation encore meilleurs
Une fois que nous avons trouvé l'outil d'automatisation le mieux adapté à nos besoins, nous avons créé des suites de tests pour résoudre nos principaux enjeux de QA. En peu de temps, nous avons pu desservir quelques clients très importants avec des cycles de lancement courts.
Cet outil a apporté à notre agence de nouveaux avantages que nous n'avions pas auparavant - une assurance supplémentaire que le nouveau code ne déstabilisent pas les conditions stables des sites et la capacité de couvrir 100 % des cas de test dont nous avions besoin pour fournir la certitude dont nos clients avaient besoin.
Maintenant, avant les déploiements, nous pouvons exécuter nos suites de tests pendant la nuit dans notre environnement de test. Le lendemain, une analyse des échecs est effectuée et, dans la plupart des cas, elle permet de détecter ce que nous aurions manqué si nous avions procédé à un QA manuel des sites.
En effet, auparavant, il y avait trop de scénarios de test pour assurer une couverture à 100 %, nous pouvions en faire qu'environ 25 % avant chaque déploiement, si nous avions de la chance. Maintenant, avec cette capacité supplémentaire, nous pouvons gagner du temps, couvrir une variété de tests et en apprendre encore plus sur les éléments de QA qui ne sont pas nécessairement couverts dans les suites d'automatisation tels que les défauts visuels, et les tests Back-End.
Ceci nous a permis de réduire les risques, d'améliorer nos cycles de publication et de maintenir une relation saine et de confiance avec nos clients. En plus de ces avantages, nous disposons désormais de quelque chose que nous n'avions pas auparavant: une paire d'yeux supplémentaire qui ne manque pas la moindre modification apportée par nos développeurs mais qui aurait pu passer inaperçue avec nos tests manuels.
Même si je suis très fier de ma capacité à détecter les bugs, les tests robustes de cet outil nous permettent de détecter tout ce qui aurait pu être manqué auparavant.
Productivité, efficacité, prévisibilité - Intégrez-les à votre stratégie d'entreprise
Lorsque j'ai commencé à travailler dans le domaine de l'assurance de la qualité il y a plus de sept ans, je ne pouvais pas imaginer que j'utiliserais un outil d'automatisation du QA pour faire mon travail. La technologie a évolué rapidement au cours de notre vie. Nous sommes passés du bon vieux temps de l'accès a des sites web visuellement horribles par dialup à des sites ultra-rapides et conviviaux offrant une excellente expérience à l'utilisateur.
Nous sommes passés de sites testés uniquement sur ordinateur de bureau à des tests sur tablettes, et maintenant nous nous concentrons principalement sur les appareils mobiles puisque le monde entier utilise principalement des appareils portables pour accéder à ce qui était auparavant réservé aux quelques personnes qui pouvaient se permettre d'avoir un ordinateur à la maison.
Lorsque l'on commence à travailler dans un domaine technologique, en particulier dans le secteur, en évolution rapide, du développement de sites web ou du e-commerce, on commence à apprécier tout avantage qu’apporte les technologies émergentes dans ce domaine.
Depuis que nous avons commencé à utiliser des tests automatisés sans code pour nous aider à contrôler la qualité des sites e-commerce, les avantages sont clairs: stabilité, prévisibilité et une plus grande confiance dans notre capacité à livrer des fonctionalités qui n'entrave pas la capacité des clients à utiliser le site pour toutes sortes d'usages.
L'introduction d'un outil d'automatisation des tests sans code dans votre entreprise peut s'avérer difficile si vous êtes une petite agence disposant d'un budget serré pour vos besoins en matière de QA. En revanche, cela peut être extrêmement rentable si votre entreprise emploie la stratégie plus coûteuse consistant à faire appel à des ingénieurs pour coder toutes vos suites d'automatisation. Quoi qu'il en soit, je pense que c'est la voie à suivre avant que l'intelligence artificielle ne prenne le contrôle de tout ce que nous faisons.
Lorsque vous êtes prêt à commencer à rechercher la multitude d'outils actuellement disponibles sur le marché, voici quelques éléments à prendre en compte:
- Déterminer qui utilisera principalement l'outil. Sera-t-il utilisé par un employé qui ne sait pas coder ou par un développeur ayant une connaissance plus approfondie du code et qui utilisera l'outil différemment d'un non-programmeur? Il existe des outils conçus pour les premiers et d'autres pour les seconds.
- Déterminez le nombre d'itérations de tests dont vous aurez besoin pour résoudre les principaux problèmes de votre entreprise au niveau atomique. Cela influencera le budget de l'outil que vous choisirez, car beaucoup d'entre eux sont basés sur le nombre de tests mensuels que vous exécutez sur leur cloud. Vérifiez également si les tests locaux sont pris en compte dans le total du mois et combien de serveurs vous devrez utiliser pour exécuter les tests sur le cloud.
- Assurez-vous que l'outil peut effectuer certaines actions personnalisées, telles que des appels d'API et du JavaScript personnalisé. Vous ne savez jamais si ces lignes de code seront réutilisées pour des tests plus complexes qu'un développeur peut intégrer pour votre équipe de QA. Nous les avons utilisés pour confirmer des prix sur des produits B2C/B2B, obtenir des codes de cartes-cadeaux pour tester des scénarios de paiement et extraire des données de courriels pour s'assurer que les informations correctes s'affichent à chaque fois.
- Tous les outils ne fonctionnent pas avec le système utilisé par votre entreprise. Certains d'entre eux sont exclusivement destinés aux plateformes Windows, ce qui peut poser un problème de compatibilité si votre entreprise utilise macOS. Par ailleurs, certains outils ne permettent pas de réaliser des tests sur des appareils mobiles. Gardez cela à l'esprit s'il s'agit d'une exigence.
- Lorsque votre entreprise procède à une validation de faisabilité avec l'un de ces outils, élaborez d'abord les types de tests les plus complexes dont votre entreprise aurait besoin afin d'évaluer dans quelle mesure cet outil correspond à vos besoins. Au cours de cette période de découverte, vous pourrez vraiment comprendre les limites de l'outil et voir s'il est adapté à vos besoins.
Une fois que vous aurez choisi votre nouvel outil d'automatisation, voici quelques-unes des meilleures pratiques que j'ai apprises au fil du temps:
- Assurez-vous que tous vos QA participent à la création des tests. Au fur et à mesure que votre entreprise se développe et que le chiffre d'affaires augmente naturellement, il sera important d'avoir autant de personnes que possible ayant des connaissances approfondies pour former les prochaines recrues.
- De temps en temps, un développeur devra s'impliquer dans certains tests, tels que ceux nécessitant des appels d'API, du JS personnalisés pour des tâches complexes, etc. Bien que les outils soient utilisés sans avoir besoin de programmation, il arrive que certains d'entre eux soient utiles pour des tests plus complexes que vous pourriez vouloir effectuer.
- Faites en sorte que vos tests soient simples, courts et organisés. Plus un test est long et complexe, plus il est difficile à corriger ou à maintenir. Au fur et à mesure que vous vous familiarisez avec l'outil, vous allez vouloir vous assurer que vous utilisez votre temps de manière efficace. Regroupez les étapes similaires dans des dossiers partagés afin de pouvoir les réutiliser dans différents tests, et ne les modifiez qu'en cas de changement susceptible d'affecter tous les tests qui partagent cette étape.
- Contactez l'équipe de support de l'outil pour savoir s'il existe des moyens plus efficaces d'améliorer les performances de vos différents tests. Ils connaissent l'outil mieux que vous et peuvent avoir d'excellentes recommandations pour vous aider à obtenir les mêmes résultats d'une manière plus rapide.
Enfin, je pense que c'est l'avenir de la plupart des entreprises, grandes ou petites. L'automatisation sans code sera en fin de compte l'option la moins chère, car elle ne requiert pas de compétences en matière de programmation. À mesure que notre monde devient plus intégré sur le plan technologique, nous avons trouvé des moyens de simplifier la création et le test de sites. Certains y verront une dépense inutile pour leur entreprise, tandis que d'autres en verront la valeur et des économies en temps réel.
En résumé, voici pourquoi votre entreprise devrait considérer cet outil d'automatisation sans code:
- Productivité: Une fois que vous avez créé une suite de tests pour vos processus les plus complexes, votre équipe peut se concentrer sur d'autres aspects de votre entreprise, ce qui libère du temps pour d'autres initiatives et permet à vos cycles de déploiement de se dérouler sans retards inattendus ni bugs majeurs. Étant donné que cette méthode est utilisée pour détecter les bugs plus rapidement, vos développeurs seront en mesure de corriger les problèmes bien avant la date de déploiement. Ils auront donc plus de temps pour travailler sur de nouvelles initiatives.
- Efficacité: Au lieu d'exécuter manuellement la même suite de tests ou de créer/maintenir du code complexe pour exécuter les tests, votre équipe n'aura qu'à examiner les tests qui ont échoués. Par la suite, il est très facile de maintenir vos tests si votre site change ou simplement de créer de nouveaux tests basés sur de nouvelles exigences. Comme ces tests peuvent être exécutés pendant la nuit ou les fins de semaine, votre équipe peut en faire plus pendant la journée pour respecter les délais serrés.
- Prévisibilité: Dans ce secteur d'activité, où la technologie évolue constamment, la prévisibilité est un atout majeur. Si vos cycles de déploiement sont plus stables et avec moins de bugs, vos clients seront heureux d'avoir un partenaire fiable. Il n'y a rien de pire que de tester jusqu'à la dernière minute pour découvrir un nouveau bug ou, pire encore, de le découvrir après que le site a été mis en ligne. Personne ne souhaite une telle situation, et si vos tests permettent d'obtenir de manière prévisible des sites généralement exempts de bugs, vos résultats en seront d'autant plus positifs. Cela permettra d'instaurer un climat de confiance et une relation durable au sein de vos cercles d'affaires.
Conclusion
Ce pas de géant d'une automatisation basée sur la programmation qui était en grande partie inabordable pour les petites agences à un outil d'automatisation non basé sur le code qui nécessite très peu de formation et d'expertise a aidé notre type d'entreprise à se développer. Non seulement cet outil est plus intéressant à utiliser pour vos QA que les tests manuels, mais il vous permet également de rediriger leurs efforts vers des projets plus complexes qui ne sont pas correctement testés par vos développeurs (ils ne sont pas tous fautifs, n'est-ce pas?).
Pour l'instant, c'est le pas en avant dont nous avons besoin - jusqu'à ce que l'intelligence artificielle finisse par tout faire. Votre seul regret sera : "Pourquoi ne l'ai-je pas fait plus tôt ?".
Asaf Salem est le chef de l'équipe QA de Blue Badger. Avec sept ans d'expérience dans le test des sites sur lesquels les clients de notre agence s'appuient quotidiennement, Asaf est fier de sa capacité à diriger et à motiver son équipe pour apprendre et s'améliorer en permanence afin d'aider nos clients e-commerce à se développer et à prospérer dans cet espace compétitif et en constante évolution.
Blue Badger est une agence e-commerce qui propose des services tels que la conception et le développement de thèmes personnalisés, la stratégie, l'optimisation du taux de conversion, le marketing de performance, etc. Laissez-nous vous aider à construire un écosystème e-commerce sur lequel vous pouvez compter. Contactez-nous dès aujourd'hui pour en savoir plus.