CEDEC 2020, la plus grande conférence japonaise destinée aux développeurs de divertissement informatique, s'est tenue en ligne sur le site officiel de la CEDEC du 2 au 4 septembre 2020.
Dans cet article, nous présenterons le «Ryu ga Gotoku 7 Où se trouvent la lumière et les ténèbres"(ci-dessous,"Yakuza 7Rapport sur la session de débogage « Système de suppression de bogues entièrement automatique qui rassemble la technologie d'ingénierie QA de « Ryu ga Gotoku Studio » ».
La session mettait en vedette Naoki Sakagami, ingénieur assurance qualité de Sega, et Takashi Kokawa, ingénieur de construction.
Un système automatique qui donne envie de faire des câlins aux bugs !
La session a commencé avec M. Sakagami demandant aux développeurs : « Aimez-vous les bugs ? Premièrement, les tendances du nombre de bugs découverts dans chacun des titres de Ryu ga Gotoku Studio ont été révélées. À mesure que l’échelle du jeu augmente, le nombre de bugs a également tendance à augmenter.
On dit que 25 000 bugs ont été découverts dans « Ryu ga Gotoku 7 », qui a été exécuté à l'aide d'un système de suppression de bugs entièrement automatique. Cela peut donner une impression négative, mais plus il y aura de bugs découverts, meilleure sera la qualité du jeu.
On dit que les bugs sont difficiles pour les développeurs. Cependant, selon M. Sakagami, si vous regardez cette séance jusqu'à la fin, « vous aurez envie de serrer un insecte dans vos bras » (un jeu de mots qui vous donne l'impression d'être né avec de l'intellect et du caractère... !)
Avant d'expliquer comment utiliser le système de suppression automatique des bogues, je vais d'abord expliquer le déroulement du débogage manuellement. La première étape consiste à découvrir le bug, puis à signaler le bug et à vérifier la reproductibilité du bug (créer une tâche).
Examinez les tickets, décidez de la priorité et de l'importance de ce qui affectera le développement immédiatement et de ce qui peut être reporté, et décidez qui sera chargé d'éliminer les bugs. Après cela, le bug est reproduit uniquement dans l'environnement de cette personne, le bug est corrigé et le fonctionnement est confirmé. L'équipe QA vérifie ensuite à nouveau et le reflète dans les données de chacun.
Notre objectif cette fois était d’automatiser l’ensemble du processus. Si l'efficacité du travail de débogage n'est pas améliorée, le pire des cas est que la sortie soit reportée, et bien sûr l'objectif est de raccourcir le temps nécessaire au travail lui-même. Le point principal est qu'ils ne voulaient pas consacrer du temps à la recherche de bugs simples tels que « le jeu pouvait traverser les murs » ou « le jeu s'arrêtait après avoir eu une conversation », ils visaient donc une automatisation complète.
Tout d’abord, nous avons construit un environnement de test automatisé pour trouver les bogues. Les développeurs disposent d'un système d'autotest installé sur leurs PC, et une fois la journée de développement terminée, il leur est demandé de lancer le client avant de rentrer chez eux. Juste en le lançant, un environnement de test sera développé et il recherchera automatiquement les bugs jusqu'à ce que vous vous mettiez au travail.
Ce qui préoccupe les développeurs, c'est de savoir s'ils peuvent retourner rapidement dans leur environnement de travail lorsqu'ils arrivent au travail. Lors du démarrage du client, une sauvegarde de l'environnement précédent est effectuée, il est donc possible de revenir à l'état précédent dès l'arrêt du client.
Les fichiers automatiquement testés dans cet environnement de test peuvent également être créés automatiquement. Ce système, nommé « Anywhere Replay System », vous permet de créer des fichiers pour des tests automatisés simplement en enregistrant les opérations manuelles. Il peut être créé sans aucune connaissance en programmation et il est également facile d’ajouter des conditions ultérieurement.
Si vous utilisez le système de replay n'importe où, il sera plus facile de trouver des bugs (dégradations) tels que "C'était normal jusqu'à hier, mais ça a commencé à bugger aujourd'hui", ainsi que d'effacer le scénario principal à plusieurs reprises, de vérifier les échecs de traitement, etc. . Pouvez-vous vérifier et compléter les éléments correctement ? Il est également facile de trouver des plages de tests qui nécessitent de la précision, comme les tests. En particulier, dans "Ryu ga Gotoku 7", il semble que tout le monde ait "Sujimon", l'un des éléments complets, presque tous les soirs.
De plus, il est facile de repérer les bugs dans les mini-jeux et les bugs qui surviennent de manière aléatoire, comme les personnages qui tombent à travers le sol. Cependant, les opérations du joueur se situent quelque part entre les deux, car elles peuvent être à la fois aléatoires et précises. Il est actuellement difficile de détecter de telles opérations, mais l'entreprise mène actuellement des recherches à ce sujet.
Par exemple, il serait facile de rechercher des bugs en effaçant simplement l’histoire principale, mais les joueurs pourraient parfois faire un détour au milieu de l’histoire principale. Il existe également un système qui permet d'essayer diverses possibilités, comme diviser les opérations de test automatique en morceaux et les rassembler toutes en même temps sur un serveur, rejouer une autre opération de test automatique similaire à intervalles réguliers ou viser une destination complètement différente. Il a été dévoilé. Veuillez noter que cela n’a pas été réellement mis en œuvre car il en était encore au stade de la recherche.
Lors de la séance, une véritable démonstration de débogage automatique a été réalisée et Ichiban Kasuga a été montré en train de se déplacer entre la clôture et le poteau dans le parking. De plus, lorsque la scène change, par exemple pour une exploration sur le terrain ou une bataille, la méthode d'utilisation des boutons change également. Ils peuvent également être commutés automatiquement en fonction de la situation.
De plus, l'environnement de test comprend non seulement les PC des développeurs, mais également un PC de test 24 heures sur 24. Ceux qui fonctionnent 24 heures sur 24 exécutent des tests automatisés qui prennent du temps, comme la suppression d'un grand nombre de sous-scénarios. Des instructions telles que « Test suivant » et « Ce PC est gratuit, alors faites-le ensuite » sont automatiquement attribuées à un grand nombre de PC, et ils fonctionnent à pleine capacité 24 heures sur 24.
Bien entendu, cela ne sert à rien d’exécuter des tests automatisés à moins de découvrir des bugs. La détection des bogues est également automatisée et les rapports sont divisés en plusieurs types de bogues. Comparaison des tests manuels et automatisés,Ryu ga Gotoku 6 Poème de la vie.Dans « Ryu ga Gotoku 7 », le nombre de bogues signalés par les tests automatiques était d'environ 18 % du total, mais dans « Ryu ga Gotoku 7 », qui avait amélioré l'efficacité, ce nombre s'élevait à environ 68 %. Ce nombre semble avoir augmenté car il inclut des rapports avec un contenu en double, mais les rapports en double constituent également des données utiles.
En conséquence, même s’il n’a pas été possible d’automatiser la création manuelle initiale des fichiers ou le plan de test lui-même, la plupart des processus liés à la recherche de bogues ont été automatisés.
Si vous trouvez un bug, analysez-le automatiquement et signalez-le !
La prochaine étape est l'automatisation des rapports de bogues. Lorsqu'un bug ou un comportement similaire est découvert, les journaux, les captures d'écran, les vidéos et les données de lecture pour les tests automatisés sont automatiquement envoyés à l'emplacement approprié. Toutes les informations nécessaires sont automatiquement saisies dans le ticket de bug et celui-ci est automatiquement enregistré en tant que ticket.
Cependant, les bogues qui se produisent lors de vérifications manuelles sont traités comme des tickets de « bug », tandis que les bogues qui se produisent lors de vérifications automatiques ou d'un comportement similaire à un bogue sont traités comme des tickets de « rapport d'erreur ». Ce faisant, ils peuvent faire la différence en un coup d’œil pour éviter de commettre des erreurs inutiles, comme poser des questions aux rapports automatisés.
De plus, si un bug est découvert automatiquement, un test automatique est lancé pour vérifier automatiquement la reproductibilité (tout est automatique, ce qui en fait un excellent article). Confirme automatiquement la reproductibilité et, si elle est confirmée, ajoute des informations au ticket de bug indiquant qu'il a été automatiquement reproduit. Même si l'erreur ne se produit pas même après avoir reproduit l'erreur, vous pouvez enquêter, sur la base des informations, sur la raison pour laquelle l'erreur ne s'est pas produite même si elle s'est produite une fois.
Une vidéo a également été publiée montrant comment le système détecte automatiquement les bugs et les reproduit automatiquement. Dans la vidéo, Kasuga Ichiban, qui se déplace au hasard, détecte une erreur dès qu'il parle à Han Joong Ki. Lors du contrôle automatique de reproductibilité, l'utilisateur s'est déplacé vers Han Joong Ki en utilisant la même procédure, a attendu un moment, puis a parlé à Han Joong Ki, et l'erreur a été immédiatement détectée. En effet, les opérations sur les boutons au moment où une erreur est détectée peuvent ne pas être enregistrées. En guise de contre-mesure, il semble qu'après un certain temps, un bouton tel qu'un bouton de décision soit enfoncé.
En conséquence, l’ensemble du processus de rapport de bogues a été automatisé avec succès.
La prochaine étape consiste à automatiser la détection des bogues. Concernant l'automatisation de la détermination de la priorité et de l'importance, tout d'abord, la priorité fait référence à la priorité du travail, par exemple, plus la priorité est élevée, plus il sera affecté d'endroits et plus tôt il devra être corrigé. La gravité fait référence à l'impact sur le jeu, comme un bug qui provoque la fermeture du jeu.
Il semble que les fautes de frappe et d’orthographe soient de peu d’importance car elles n’affectent pas la progression du jeu. cependant,"Ryu ga Gotoku" La série comprend de nombreux produits réels qui apparaissent dans le jeu, les erreurs dans la description de ces éléments sont donc d'une grande importance.
Quant à la manière dont le niveau de priorité a été déterminé automatiquement, il a été déterminé en fonction du nombre d'erreurs en double. Le fait qu’il y ait beaucoup de duplications dans le contenu des messages d’erreur signifie qu’ils ont un large éventail d’effets. Il semble que le niveau d’importance ait été décidé en fonction du type de jugement d’erreur.
La personne chargée de corriger le bug est également automatiquement déterminée. Avant sa mise en pratique, ils ont apparemment exploré une méthode d'utilisation de l'apprentissage automatique pour déterminer le responsable approprié, mais ils ont décidé que cela ne fonctionnerait pas bien, ils ont donc décidé de ne pas la mettre en pratique.
Une méthode plus simple consistait à attribuer automatiquement des correcteurs de bogues aux types de bogues les plus courants en les liant à des messages d'erreur. Dans la plupart des cas, le personnel qui a initialement créé la pièce sera affecté, mais il existe des cas où ce n'est pas le cas.
De cette façon, nous avons réussi à automatiser toutes les sélections de bugs.
La correction elle-même est un processus manuel.
L’objectif suivant était d’automatiser les corrections de bugs. Premièrement, lorsque le responsable corrige un bug survenu, il vérifie le bug dans son propre environnement. Si le bug est automatiquement reproduit, un fichier de relecture est automatiquement généré, afin que vous puissiez le lire immédiatement dans votre propre environnement.
Comme prévu, l'automatisation des corrections de programmation se fait manuellement, mais les changements qui se reflètent ensuite dans le jeu lui-même sont automatisés. De plus, une fois le correctif terminé et reflété dans le jeu, le statut du ticket de bug passera automatiquement à En attente de confirmation de l'équipe QA, vous permettant de confirmer le correctif immédiatement.
Le « débogage » pour éliminer les bugs et « l’engagement » à incorporer ces données dans le jeu sont effectués manuellement, mais il semble que les parties problématiques du processus de correction aient été automatisées.
Enfin, vérifiez les corrections de bugs. Tout d'abord, une vérification minutieuse est effectuée pour voir s'il y a de nouveaux bogues (enbugs) résultant de la correction du bogue. Les enbugs sont vérifiés à l'aide d'une lecture de test automatique, etc., et les occurrences d'enbugs sont automatiquement détectées.
Ensuite, pour confirmer le correctif, nous réexécutons les données de relecture utilisées pour confirmer la reproduction automatique du bug pour le ticket de bug en attente de confirmation. S'il n'y a aucun problème, cela sera automatiquement confirmé. Si cela se reproduit, il sera automatiquement renvoyé.
De plus, certains rapports de bogues détectés automatiquement contiennent du contenu en double. Si un certain temps s'écoule sans que le correctif ne soit confirmé et qu'il n'y a plus de rapport d'erreur similaire, on suppose que le problème a été résolu. L'implication est qu'il s'agit d'un "bug qui ne se reproduira plus", mais il sera automatiquement traité comme confirmé.
Enfin, une vidéo a été publiée qui utilise le bug survenu lors de la conversation entre Kasuga Ichiban et Han Joong Ki comme exemple pour vérifier automatiquement les correctifs. Cette fois, le journal de conversation de Han Joong Ki était clairement affiché et aucune erreur n'a été détectée. À première vue, vous pourriez penser : « C'est tout ce qu'il y a ? », mais comme je l'ai dit dans le principe, le système de suppression de bogues entièrement automatique a été créé pour éliminer automatiquement des bogues aussi simples, selon M. Sakagami.
Certains systèmes ont été utilisés dans des travaux antérieurs de la série, mais les détails ont été rendus plus efficaces et de nombreuses tâches peuvent être gérées automatiquement. Sur les 23 étapes de suppression des bogues, 20 ont été automatisées avec succès. Le nombre total de bogues entièrement automatisés dans les 20 processus peut sembler faible (250), mais on dit que chaque erreur est liée à une sorte d'automatisation.
Lorsque les tickets de bug traités automatiquement ont été convertis en points et comptabilisés, les résultats étaient les suivants :Ryu ga Gotoku IshinIl a été constaté que le temps nécessaire pour travailler sur chaque élément était réduit par rapport à la version précédente. Cela signifie qu'ils ont réussi à augmenter l'efficacité de leur travail conformément à leur objectif initial. Comme mentionné précédemment, le défi du futur sera de reproduire des données de replay reproduisant les mouvements du joueur.
La session s'est terminée avec les propos de M. Sakagami : « Un système de suppression de bogues entièrement automatique constitue la ligne de départ pour automatiser les tâches gênantes dans le développement de jeux. »
En parlant de la série « Ryu ga Gotoku », c'est une série qui a sorti une série de blockbusters dans un laps de temps relativement court. J'ai pu avoir un aperçu de la raison pour laquelle un titre très complet peut être diffusé dans le monde entier sans prendre autant de temps de développement. Si nous pouvons automatiser jusqu'à présent, nous pourrons également automatiser les corrections de programme à l'avenir... ?!
*L'image est une capture d'une vidéo publique.