
Là où il y a des développeurs, il devrait y avoir des testeurs à proximité. Et plus le système est complexe, plus le rôle de ce dernier est important. Mais tous les testeurs n'effectuent pas la même fonction de la même manière, et aujourd'hui nous voulons parler de l'émergence d'une unité spéciale dans M.Video-Eldorado, qui traite des tests intersystèmes. Découvrez pourquoi nous avons décidé de créer une caste distincte de testeurs, comment cela a aidé l'entreprise et comment nous en sommes venus à cette décision.
Si vous ne vérifiez pas si le système fonctionnera après le déploiement de la mise à jour en production, un petit bogue peut "mettre" tout le service client ou, par exemple, les processus de back-office. Pour éviter que cela ne se produise, toute équipe agile doit avoir son propre testeur, qui vérifie l'exécution des scénarios de base et signale les bogues aux développeurs. Si un service interagit avec d'autres composants du système, les équipes effectuent souvent des tests d'intégration - en vérifiant l'influence des composants les plus proches de l'écosystème de services les uns sur les autres.

Mais à notre époque, les processus métiers sont souvent beaucoup plus compliqués, et pour obtenir le résultat souhaité, il faut le travail d'une dizaine de services. Dans ce cas, il est nécessaire de tester la compatibilité des modifications non seulement de deux ou trois systèmes voisins, mais de l'ensemble du flux.
Par conséquent, les tests d'intégration ne garantissent plus un fonctionnement sans erreur. Voici un exemple: lorsque les développeurs d'une application mobile publient une version, alors, au maximum, sa compatibilité avec Bitrix (sur lequel le site Eldorado est en cours d'exécution) est vérifiée. Cela vous permet d'évaluer uniquement le travail du service lui-même, mais ne donne aucune garantie que les commandes seront exécutées, que les marchandises seront fournies aux clients et que les prix d'émission correspondront aux prix de l'application, etc.
En fait, les processus complexes sont la norme moderne. Par exemple, dans M.Video et Eldorado, la commande en ligne nécessite la participation de plus de 20 systèmes. Du côté du client, tout semble simple: l'acheteur entre simplement dans l'application mobile ou sur le site Web de la boutique en ligne, sélectionne le produit, le met dans le panier et assigne la livraison à la prochaine date qui lui convient. Le transporteur livre la marchandise à l'heure indiquée par l'acheteur à l'adresse indiquée.

Mais pour rendre tout cela possible du côté des services informatiques, il y a une interaction des systèmes d'autorisation, du moteur de site, du module de calcul de prix, de la passerelle de paiement, du système CRM, de la comptabilité, etc. Et afin d'évaluer si un changement dans l'un des composants conduira à une «panne» du processus d'achat, il est nécessaire de vérifier l'interaction de tous les systèmes.
- ?
D'une part, chaque équipe dispose déjà de son propre testeur. Et, semble-t-il, il peut être impliqué dans des tests de bout en bout. Mais nous avons vu de notre propre expérience que cette approche n'est pas la plus efficace. Un test intersystème est, par définition, difficile; pour le réaliser, vous devez prendre un testeur de chaque système, l'instruire et le mettre en service.
Après avoir terminé son étape, le testeur N doit signaler au testeur N + 1 que son étape est terminée. les gars sont généralement occupés avec leur propre entreprise - tests fonctionnels et d'intégration, et le processus de test intersystème est lent.

Un vrai cas: le testeur est allé déjeuner, mais à son retour, il a oublié qu'il devait terminer son stage - il a beaucoup d'autres travaux. Jusqu'à ce qu'il soit rappelé, le processus en vaut la peine.
Si nous découvrons un problème à un moment donné, la question se pose immédiatement: "De quel côté est-il?" Par exemple, le testeur N + 1 renvoie une erreur au spécialiste précédent. Et le testeur N est indigné: «Qu'est-ce que notre système et moi avons à voir avec cela?». Jusqu'à ce que les gars découvrent de quel côté le problème est survenu, qu'ils ne considèrent sincèrement pas comme «le leur», cela peut prendre plusieurs jours. Il en résulte des délais manqués et la nécessité de pousser constamment le processus.

Enfin, pour effectuer un tel test, vous devez lancer un projet, connecter un chef de projet, rassembler périodiquement 20 personnes dans une pièce (une pour chaque système) et déterminer de quel côté le problème se pose lors de l'étape suivante. Cela demande beaucoup de travail, est inefficace et distrait les gens du travail qu'ils considèrent à juste titre comme leur travail principal.
Nous avons décidé qu'il serait préférable de créer un service de test intersystème, qui teste désormais l'ensemble des processus métier avant la publication de toutes les mises à jour clés en production.
Propre expérience - PROMO-actions
Lorsque nous avons décidé de le faire, un gros plus était la présence d'une expérience interne dans les tests intersystèmes. En 2017, nous avons commencé à mettre en œuvre une nouvelle pratique de test de bout en bout pour soutenir les campagnes publicitaires fédérales pour la marque M.Video. L'entreprise organise en permanence diverses promotions, par exemple «Votre prix», «Achetez un téléviseur, vous recevrez un cadeau», etc.
De telles promotions impliquent des prix spéciaux, la présence de cadeaux dans le kit et l'émission de cadeaux. Les promotions ont lieu simultanément, se combinent ou s'excluent les unes les autres dans un achat spécifique.

Mais, dans le processus de ramassage, par exemple, l'achat d'articles promotionnels a eu lieu dans un système, le travail de l'employé du centre d'appels - dans un autre, et la réception des marchandises - dans le troisième. En conséquence, le téléviseur pouvait être laissé sans cadeau, ou lorsqu'un autre article était ajouté au reçu, le prix promotionnel de la position principale était annulé. Évidemment, toute mise à jour des systèmes pourrait casser quelque chose, et nous avons créé une petite équipe qui était spécifiquement engagée dans les tests de bout en bout de la promotion avant le lancement des promotions fédérales.
Environ un an plus tard, cette équipe a mis en place un processus de travail efficace et s'est lancée dans le fonctionnement sans erreur et sans problème des promotions fédérales. Et en prime, l'entreprise a commencé à recevoir des commentaires et des rapports sur la faisabilité technique et l'efficacité des campagnes publicitaires lancées.
Lorsque nous avons réalisé que l'entreprise avait besoin d'un processus de test intersystème complet sur d'autres projets, cette expérience s'est avérée très utile. La nécessité d'un nouveau type de tests était particulièrement claire au moment de l'unification de M.Video et Eldorado. Nous avons augmenté le nombre de changements complexes et volumétriques, il est devenu nécessaire de mener des projets pour deux marques à la fois, le nombre de produits et de systèmes de back-office inclus dans un changement a dépassé 20.
Avantages de la nouvelle approche
Aujourd'hui, le département des tests intersystèmes emploie trois responsables de tests et six testeurs, et à l'avenir, nous prévoyons d'employer en permanence environ 40 personnes dans les tests intersystèmes pour M.Video-Eldorado.
La tâche de notre département est de réaliser des tests de bout en bout, en détectant les bogues qui n'auraient peut-être pas été remarqués lors des tests fonctionnels et d'intégration, avant la mise en production des changements lancés dans les processus et produits de l'entreprise. La division évalue l'impact de la mise à jour de chacun des composants sur les processus internes et externes. Pour cela, une méthodologie unifiée de préparation et d'exécution des tests a été développée, ainsi que des règles d'interaction avec les testeurs internes de chaque équipe de développement.

Au milieu de 2021, M.Video-Eldorado prend déjà en charge plus de 100 produits et systèmes / services de back-office et, par conséquent, plus de 100 équipes sont engagées dans leur développement. Chaque semaine, il y a de plus en plus de composants logiciels (après tout, nous vivons à l'ère des microservices), et les changements sont presque continus. L'entreprise gère en permanence 5 à 6 projets à grande échelle qui affectent des dizaines de systèmes à la fois.
Dans de telles conditions, le processus de test intersystème continu devient nécessaire, car il vous permet d'établir un contrôle en temps opportun de l'interaction des services et d'empêcher des mises à jour incompatibles d'entrer dans le produit.
Si nous parlons d'indicateurs spécifiques, nous avons réussi à :
- , -, - end2end 2 ;
- 15%;
- 20%;
- end2end 10%;
- 50%;
- , -, Jira

L'histoire de la façon dont nous avons mené un projet pilote et sur quels processus d'affaires nous avons élaboré la méthodologie de test mérite un texte séparé. Par conséquent, dans le prochain article, nous parlerons de notre chemin vers les tests intersystèmes omniprésents, ainsi que de la méthodologie et des critères existants pour la mise en œuvre réussie des tests end2end dans l'entreprise, que nous avons développés à partir de notre propre expérience.
PS Il y a plusieurs postes vacants intéressants dans notre équipe . Bienvenue!