Tests complexes et assurance qualité (AQ) de jeux sociaux en ligne pour applications mobiles et web

DESCRIPTION GÉNÉRALE

Le client est un développeur reconnu de « jeux sociaux » proposant une large gamme de jeux mobiles en ligne très attrayants. Leur accessibilité, leur conception intuitive et leurs animations dynamiques en ont fait des produits très populaires auprès des utilisateurs finaux.

SERVICIOS PRESTADOS
  • Tests fonctionnels
  • Tests d'applications mobiles
  • Tests de compatibilité
  • Tests de localisation et d'internationalisation
  • Automatisation des tests
  • Audits des processus et des techniques
  • Tests de integración
  • Tests de performance
TECNOLOGÍAS Y HERRAMIENTAS
  • JDK
  • Appium
  • Allure Framework
  • Android Studio
  • Atlassian JIRA
  • EDGE
  • Charles
  • Gradle
  • TestNG
  • CI : Bambou
  • Xcode
  • TestRail
  • Postman
  • Grafana
  • GameBench
  • BlazeMeter
  • GitHub Copilot
  • Code Rabbit
ALCANCE DEL PROYECTO

Le client a lancé le développement de son premier produit mobile dans le but de proposer une application de jeu de grande qualité et facile à utiliser. Les spécialistes d’a1qa se sont joints au projet pour en garantir le succès. Le produit a ainsi été lancé avec succès et a rencontré un vif succès sur le marché. Fort de cette réussite, le client a confié à a1qa l’assurance qualité de ses prochaines applications pour iOS et Android.

Pour mener à bien les activités d'assurance qualité, a1qa a dans un premier temps affecté trois ingénieurs en tests mobiles, qui ont effectué des tests logiciels sur les huit appareils mobiles les plus populaires. Au fil du temps, le nombre de produits a augmenté et il est apparu clairement qu'il fallait agrandir l'équipe.

Pour renforcer l'équipe avec succès, a1qa a adopté une approche progressive. Ce processus comprend l'acquisition et le transfert de connaissances via une formation sur mesure. De plus, les ingénieurs QA doivent passer un examen afin de garantir leur intégration en douceur dans l'infrastructure et les flux de travail du projet. Actuellement, 87 experts répartis au sein de quatre équipes QA dédiées effectuent des tests sur plus de 150 appareils internes. Chaque spécialiste se concentre sur un domaine spécifique du projet, tel que les tests back-end.

Afin de garantir une bonne entente dès le départ et de s'assurer que les candidats correspondaient bien au projet, le client a apprécié de pouvoir rencontrer personnellement les candidats lors des entretiens, ce qui a été rendu possible grâce aux relations solides et à la communication établie avec a1qa.

Les ingénieurs d'a1qa :

  • Ils aident le client à mettre en place une approche de tests « shift left », en menant des activités d'assurance qualité dès les premières phases du cycle de développement afin de prévenir les défauts dès le départ.

 

  • L'automatisation permet d'optimiser les tests de régression intensifs et chronophages.
  • Ils veillent en permanence à la qualité élevée de tous les produits mobiles et contribuent au succès du lancement des nouvelles versions.
  • Ils travaillent efficacement dans un environnement multi-prestataires. Actuellement, les processus sont configurés de telle sorte que les responsables des équipes d'assurance qualité d'a1qa et d'autres prestataires reçoivent des tâches et travaillent en parallèle. De plus, a1qa confie parfois des tâches à des ingénieurs issus d'équipes d'autres prestataires.

Travail réalisé

Lorsque a1qa a rejoint le projet, l'équipe a établi un calendrier adapté aux horaires de travail du client, s'est intégrée sans heurts à l'infrastructure de ce dernier et a commencé à mener à bien les activités d'assurance qualité suivantes, jugées hautement prioritaires.

Audits internes des processus et des techniques

Chaque année, ou lors d'un changement de coordinateur de projet, a1qa réalise un audit des processus afin de définir les axes d'amélioration possibles ou d'identifier les goulots d'étranglement existants, d'améliorer en permanence la qualité des services fournis et de garantir que toutes les équipes d'assurance qualité soient en phase avec les objectifs commerciaux fixés.

Tous les quelques années, a1qa réalise un audit technique complet afin de combler les lacunes technologiques, de s'assurer de l'efficacité des solutions d'automatisation des tests et des tests de performance, et de prévenir les fuites de données.

Organisées régulièrement, ces activités contribuent à améliorer la qualité des livraisons et à renforcer la confiance dans le maintien d'un code de haute qualité.

Tests fonctionnels

Les missions des équipes varient en fonction du cycle du projet. Les ingénieurs ont commencé par réaliser des tests front-end. Ayant démontré un haut niveau de performance grâce à leur grande expérience en assurance qualité et à leur connaissance approfondie du secteur et des logiciels du client, ils se sont également vu confier la réalisation de tests back-end.

Les ingénieurs ont commencé par élaborer une stratégie de tests afin de définir une approche directrice en matière d'assurance qualité logicielle. Ils ont déterminé le type de documentation de test le plus approprié : les cas de test. Étant donné que le back-end comporte une logique logicielle complexe et que le client prévoyait d'automatiser les tests, il était essentiel de décrire chaque étape du processus de test. Après avoir préparé et validé les modèles de test, ainsi qu’enregistré les cas de test dans TestRail, les ingénieurs QA ont lancé les activités de test.

Dans un premier temps, les ingénieurs d'a1qa effectuaient des tests de cohérence après réception des versions logicielles afin de vérifier que les fonctionnalités proposées fonctionnaient globalement comme prévu. En cas d’échec, les versions étaient rejetées et les goulots d’étranglement devaient être éliminés avant de les transférer aux équipes d’assurance qualité pour des tests plus approfondis. Comme il pouvait y en avoir jusqu’à 20 en une seule journée, a1qa a instauré une règle selon laquelle les développeurs devaient effectuer eux-mêmes les contrôles de cohérence à l’aide de la liste de vérification d’a1qa, avant de transmettre les versions pour des tests ultérieurs.

a1qa prévoit d'automatiser tous les tests de cohérence afin d'optimiser les processus d'assurance qualité et de permettre aux ingénieurs de consacrer davantage de temps à d'autres activités prioritaires du projet.

Par ailleurs, les ingénieurs d'a1qa ont réalisé des tests de fumée, des tests de nouvelles fonctionnalités, des tests de régression et la validation des défauts.

Ces efforts conjoints ont permis de détecter des problèmes logiciels, de confirmer que les fonctionnalités récemment ajoutées n'affectaient pas la logique du produit et de garantir le fonctionnement irréprochable des améliorations précédemment mises en place.

Tests d'applications mobiles

Les ingénieurs ont effectué des tests sur des appareils réels acquis par a1qa spécialement pour ce projet, afin de recréer un environnement aussi proche que possible de l'expérience réelle de l'utilisateur et d'améliorer la précision des tests. Les spécialistes ont suivi une liste exhaustive de points à vérifier afin de contrôler divers aspects de l'application.

Outre les tests logiciels, le coordinateur QA doit analyser en permanence la couverture afin d’en garantir l’intégrité. C’est pourquoi il se tient constamment informé de l’ensemble des appareils nécessaires à la réalisation de tests pertinents. En cas de rotations au sein du projet ou de lancement de nouveaux téléphones, le coordinateur a1qa gère les achats nécessaires. Une fois acquis, les appareils sont distribués aux équipes concernées. Si nécessaire, les appareils sont envoyés aux nouveaux lieux de travail des ingénieurs QA afin de garantir un fonctionnement sans heurts.

Tests de compatibilité

Afin d’aider le client à toucher un public cible utilisant différents appareils, les experts en assurance qualité ont effectué des tests de compatibilité. Ils ont garanti le fonctionnement fluide du logiciel sur diverses plateformes et leurs versions iOS et Android, ainsi que sur une large gamme d’appareils présentant différentes tailles et résolutions d’écran, processeurs, cartes graphiques, mémoires et autres paramètres techniques. L'équipe se charge également des lancements sur différentes plateformes de distribution, telles que Google Play, l'App Store d'Apple et l'App Store d'Amazon.

Au cours des tests, a1qa utilise les données des clients pour identifier les 10 appareils les plus utilisés pour les paiements sur chaque plateforme. Ces listes sont mises à jour tous les trois mois afin de garantir une couverture exhaustive des tests.

De plus, certains appareils deviennent obsolètes avec le temps ou de nouveaux appareils apparaissent sur le marché, dotés de caractéristiques clés spécifiques qui diffèrent de celles des modèles actuels. Dans ces cas-là, les ingénieurs revoient les listes tous les six mois et achètent de nouveaux appareils.

Tests de localisation

Garantir une expérience utilisateur toujours excellente à des clients du monde entier est essentiel pour étendre sa présence sur le marché. Pour y parvenir, a1qa a réalisé des tests de localisation.

Grâce à la validation d'éléments critiques tels que l'affichage correct des données et les aspects culturels, entre autres, le client a réussi à adapter avec succès le logiciel aux marchés internationaux, notamment l'UE, les États-Unis, le Canada, l'Australie et certaines régions d'Asie. a1qa a veillé à ce que toutes les fonctionnalités soient conçues conformément aux exigences du pays ou de la région de destination.

Automatisation des tests

Afin d'optimiser les vérifications fastidieuses et chronophages, d'accélérer le déploiement des logiciels et de garantir un rythme de lancements régulier, a1qa a automatisé une partie des activités de test front-end et back-end.

Automatisation des tests front-end

Le client souhaitait automatiser les tests de trois applications mobiles développées avec le moteur Unity, ce qui imposait certaines contraintes lors des tests des éléments de l'interface utilisateur, car il n'était pas possible d'interagir directement avec eux.

Au départ, le client utilisait l'outil Unity en association avec Appium pour automatiser les tests, en envoyant des requêtes à la version de l'application et en récupérant des données sur les éléments de l'interface. Cependant, pour des raisons de sécurité, un outil interne basé sur le protocole WebSocket a été développé. Celui-ci établissait une connexion sécurisée et permettait un transfert fluide des données grâce à l'intégration d'un plug-in spécial dans la version de l'application afin d'accéder aux éléments nécessaires.

De plus, les ingénieurs du client ont mis au point une solution qui répertorie tous les éléments à l'écran, ce qui permet aux testeurs de sélectionner l'élément spécifique avec lequel ils souhaitent interagir.

Dans le cadre de ces activités, les ingénieurs en automatisation QA d'a1qa se sont attachés à analyser les capacités de la solution open source d'automatisation des tests. Leur objectif était de proposer une comparaison exhaustive avec l'outil interne afin de faciliter le processus de prise de décision et de sélectionner l'option la plus adaptée.

Parmi les autres responsabilités hautement prioritaires d'a1qa, on peut citer :

  • Développement d'une solution sur mesure dans le cadre de la R&D en automatisation des tests afin d'accélérer la communication des résultats des exécutions de tests, car actuellement, la durée totale des tests de régression d'une application dépasse les 24 heures, et les ingénieurs en automatisation doivent tester trois applications.
  • Je travaille à améliorer la stabilité des tests automatisés afin de réduire le temps consacré à la correction des problèmes après chaque exécution. Les problèmes de stabilité sont dus au fait que tout outil supplémentaire nécessite des ajustements au niveau du framework d'automatisation. De plus, il y a plus de 10 versions par mois, et chacune d'entre elles implique des corrections de bogues et des modifications du fonctionnement du logiciel.
  • Automatisation des rapports de test et visualisation des indicateurs pour les responsables assurance qualité, afin d'assurer un suivi en temps réel de l'avancement des travaux et d'identifier les possibilités d'amélioration.
  • Prise en charge du système d'intégration continue en ce qui concerne l'exécution automatique des tests afin de garantir une évaluation continue de la qualité.
  • Développement de nouveaux tests automatisés afin d'élargir en permanence la couverture des tests.
  • Assurer un soutien en matière d'automatisation pour d'autres sous-projets (par exemple, ceux liés aux tests de formulaires Web).

Automatisation des tests back-end

Afin de vérifier la qualité du back-end, l'équipe d'a1qa a automatisé les tests de régression des API tant pour la nouvelle application mobile, qui n'avait pas encore été lancée, que pour les solutions existantes disponibles dans les boutiques d'applications, toutes partageant un même back-end.

La nouvelle application a été développée selon une architecture de microservices. Afin de vérifier que les API envoyaient correctement les requêtes et renvoyaient les réponses appropriées, les ingénieurs chargés de l'automatisation des tests d'assurance qualité ont créé des scripts automatisés en Java et développé un framework d'automatisation des tests sur mesure.

En ce qui concerne les applications mobiles existantes, le client a entamé un processus de refonte visant à passer d'une architecture monolithique à une architecture basée sur des microservices.

Cette partie du back-end était complexe et comprenait divers panneaux d'administration et services offrant des fonctionnalités supplémentaires, telles que la segmentation des utilisateurs finaux ou la gestion des comptes. Le processus de modernisation n'était pas standardisé, ce qui empêchait la mise en place rapide de nouvelles API destinées à l'automatisation des tests.

Toutefois, afin d’éviter toute perte de temps et d’apporter une valeur ajoutée dès les premières étapes de la refonte de l’architecture, les ingénieurs en automatisation QA d’a1qa ont aidé le client à définir le périmètre de l’automatisation. Ils ont développé des tests automatisés pour garantir la qualité du back-end hérité et les ont maintenus afin de prévenir tout problème de stabilité, d’autant plus que ces tests incluaient des éléments d’interface utilisateur.

Lors des tests des applications nouvelles et existantes, les spécialistes d'a1qa ont configuré l'intégration avec Allure Report et TestRail afin de gérer efficacement les cas de test, de mettre en place un suivi automatisé des résultats et d'obtenir une visibilité en temps réel sur le processus d'assurance qualité. Afin de garantir une évaluation continue de la qualité, les tests étaient exécutés quatre fois par mois.

Amélioration de l'efficacité de l'automatisation des tests grâce à l'intelligence artificielle (IA)

Afin d'aider le client à améliorer sa rentabilité, les ingénieurs en automatisation de l'assurance qualité d'a1qa, en collaboration avec des spécialistes du client, ont étudié la possibilité de mettre en place une assistance au codage basée sur l'IA, tant pour les activités de contrôle qualité en amont qu'en aval.

La première analyse s'est concentrée sur la mise en place d'un outil basé sur l'IA pour la révision automatisée du code des pull requests. Ce besoin était crucial car, en raison de la rotation du personnel au sein du projet, l'équipe d'automatisation était majoritairement composée de nouveaux membres. En conséquence, seuls quelques spécialistes étaient en mesure d'effectuer ces révisions, ce qui ralentissait considérablement le processus. En tirant parti de l'IA pour la révision initiale, a1qa a pu optimiser le processus, accélérer la livraison des tests automatisés et des mises à jour logicielles, et libérer du temps pour que les ingénieurs seniors puissent se consacrer à d'autres tâches prioritaires.

Après une analyse approfondie, a1qa et le client ont opté pour Code Rabbit, car cet outil permet de retracer l'historique de tous les commits sur l'ensemble de la branche de code avant une pull request, fournissant ainsi des commentaires techniques plus précis et contextualisés sur la qualité du code après chaque modification. L'utilisation de Code Rabbit dans le cadre du projet a franchi la première étape de validation, et le responsable de l'assurance qualité du client va désormais présenter cette initiative à son service d'IA.

La deuxième analyse clé a porté sur le choix d'un outil d'IA visant à réduire le temps de développement des tests automatisés, qui, en raison de la grande complexité du logiciel, s'élevait en moyenne à huit heures.

Dans le cadre du processus de sélection, a1qa a consacré du temps à la gestion des risques. Après avoir pris connaissance des exigences internes du projet, ainsi que des préoccupations et des attentes du client, a1qa a identifié les points sensibles et les a mis en évidence afin qu’ils puissent faire l’objet d’une discussion ultérieure et d’une résolution conjointe.

Plus précisément, la principale préoccupation du client concerne la sécurité des données. Lors de l'utilisation de l'IA, personne ne peut garantir à 100 % que les données utilisées pour l'entraînement des grands modèles d'IA (LLM) ont été sécurisées lors de la phase de préparation.

À l'issue de cette étude, a1qa a proposé d'utiliser GitHub Copilot. Son adoption dans le cadre de l'automatisation des tests s'est avérée très efficace : le temps de développement d'un test automatisé a été réduit de 28 %, et en l'espace de neuf mois, l'équipe d'assurance qualité a économisé 788 heures, ce qui équivaut à la mise en œuvre de 225 tests automatisés supplémentaires.

Par ailleurs, a1qa utilise GitHub Copilot dans le cadre d'autres activités d'automatisation, telles que la création de documentation complémentaire, et prévoit de recueillir davantage d'informations sur son efficacité à l'avenir.

Tests de performance

Dans le but d'améliorer l'expérience client, d'évaluer la capacité du logiciel à prendre en charge un afflux important d'utilisateurs finaux et de garantir un fonctionnement fluide, le client a lancé des tests de performance tant côté serveur que côté client.

Grâce à des tests côté client, les ingénieurs chargés de l'assurance qualité ont évalué la facilité d'utilisation des applications et leur conformité aux exigences définies, identifié les problèmes affectant l'expérience utilisateur et apporté une série d'améliorations.

En ce qui concerne les tests côté serveur, ceux-ci ont porté sur tous les principaux types de tests — des tests de résistance aux tests de volume —, ce qui a permis à l'équipe de s'assurer qu'après la migration du back-end des applications mobiles vers le cloud, celui-ci serait capable de supporter la charge prévue sans compromettre la qualité.

Outre les tests, les ingénieurs de l'assurance qualité ont mis en place un système de surveillance des performances, notamment des tableaux de bord sur Grafana et New Relic, afin de :

  • surveiller et mesurer en continu les performances du logiciel en temps réel
  • collecter des indicateurs de performance en vue d'une utilisation future
  • diagnostiquer les problèmes de performances ou les goulots d'étranglement
  • comparer les résultats des tests (par exemple, entre différentes versions)
  • collecter les données historiques de tous les tests effectués

De plus, au cours de l'année écoulée, l'équipe d'a1qa a entièrement automatisé les contrôles de performances, ce qui a permis d'accélérer le processus d'assurance qualité et de garantir une détection plus précoce des goulots d'étranglement en matière de performances.

Tests de integración

Il était essentiel pour l'équipe d'assurance qualité de s'assurer que les différents composants et modules restaient parfaitement compatibles et ne présentaient aucun risque pour le bon fonctionnement du logiciel.

Les ingénieurs chargés de l'assurance qualité ont effectué des tests d'intégration afin de s'assurer que les différentes parties du logiciel s'intègrent harmonieusement et qu'il n'y ait aucun risque d'erreur.

La vérification des intégrations a permis de confirmer que les utilisateurs peuvent facilement se connecter à l'application via des réseaux sociaux tels que Facebook.

Au cours de ces activités, les ingénieurs chargés de l'assurance qualité ont consigné chaque problème identifié dans le registre des erreurs du projet. Au moins une fois par mois, les spécialistes examinent ces données, analysent les problèmes éventuels à traiter et les résultats de la résolution des incidents précédents.

 

CONCLUSION

Au cours de plus de neuf ans de collaboration, l'équipe d'a1qa a réalisé plus de 600 000 tests.

Grâce à des canaux de communication bien mis en place entre les équipes dédiées et à des processus d'interaction optimisés avec les développeurs du client, les ingénieurs assurance qualité ont pu garantir de manière fiable le strict respect de tous les délais. Tous les défauts détectés ont été corrigés avant la mise en production de plus de 600 mises à jour logicielles.

Le projet se poursuit actuellement. Le client apprécie l'approche responsable de l'équipe d'a1qa et se réjouit de poursuivre cette collaboration.

RESULTADOS
  • Un fonctionnement sans faille des applications mobiles de jeux sociaux grâce à des tests logiciels complexes.
  • Réduction du temps de déploiement grâce à la mise en place d'une automatisation des tests côté client et côté serveur.
  • Une plus grande efficacité des processus de développement logiciel grâce à l'adoption de l'approche des tests « shift-left ».
EN CIFRAS
  • 9+
    años de duración del proyecto
  • 4
    plateformes testées
  • 150+
    appareils mobiles utilisés pour les tests
  • 87
    ingénieurs en assurance qualité impliqués
  • 788
    heures économisées en 9 mois grâce à l'utilisation de GitHub Copilot pour le développement de tests automatisés
  • 100 %
    respect des délais et du budget