[{"data":1,"prerenderedAt":711},["ShallowReactive",2],{"/fr-fr/blog/automating-with-gitlab-duo-part-2-complex-testing/":3,"navigation-fr-fr":37,"banner-fr-fr":457,"footer-fr-fr":470,"Byron Boots":683,"next-steps-fr-fr":696},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":27,"_id":30,"_type":31,"title":32,"_source":33,"_file":34,"_stem":35,"_extension":36},"/fr-fr/blog/automating-with-gitlab-duo-part-2-complex-testing","blog",false,"",{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},"Automatisation avec GitLab Duo : comment générer des tests complexes (Partie 2) ","Découvrez comment nous générons des tests complexes en utilisant les fonctionnalités alimentées par l’IA de GitLab Duo.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099243/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750099243011.png","https://about.gitlab.com/blog/automating-with-gitlab-duo-part-2-complex-testing","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automatisation avec GitLab Duo : comment générer des tests complexes (Partie 2) \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Byron Boots\"}],\n        \"datePublished\": \"2024-12-10\",\n      }\n                  ",{"title":9,"description":10,"authors":17,"heroImage":11,"date":19,"body":20,"category":21,"tags":22,"updatedDate":26},[18],"Byron Boots","2024-12-10","Le premier article de notre série en trois parties sur la [génération de tests avec GitLab Duo](https://about.gitlab.com/blog/automating-with-gitlab-duo-part-1-generating-tests/) portait sur l'automatisation des tests de code. Nous allons maintenant partager les leçons que nous avons tirées de l'utilisation de l'IA pour la génération de tests.\n\n## Quelles sont les situations rencontrées et les solutions apportées ? \n\nDans l'ensemble, nous sommes satisfaits des résultats obtenus en utilisant [GitLab Duo](https://about.gitlab.com/fr-fr/gitlab-duo/) pour générer des tests sur notre code. Comme pour toute génération de langage, certains cas ont nécessité des ajustements mineurs, tels que la correction des chemins d'importation ou la modification du contenu des jeux de données. Pour les cas les plus complexes, nous avons dû nous rappeler que les solutions d'IA manquent souvent de contexte. Voici comment nous avons géré les situations de test plus complexes avec GitLab Duo.\n\n### Mise à jour des scénarios de test existants\n\nComme c'est souvent le cas lors du développement d'un produit logiciel, nous avons rencontré des situations qui nécessitaient des mises à jour de tests existants. Plutôt que d'apporter manuellement des ajustements à une suite complète de tests pour un problème commun, nous avons tiré pleinement parti de la fenêtre GitLab Duo Chat dans VS Code. Nous avons par exemple utilisé le prompt de Chat « Veuillez mettre à jour les tests fournis pour utiliser unittest plutôt que pytest  » pour refactoriser les tests, puis nous avons collé les tests que nous voulions que GitLab Duo mette à jour.\n\n![Génération de tests automatisés](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099252/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750099252303.png)\n\n\u003Cbr>\u003C/br>\n\n![Prompt de chat demandant l'utilisation d'unittest plutôt que pytest\n](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099252/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750099252304.png)\n\n**Remarque :** nous avons copié-collé les recommandations de GitLab Duo dans notre code.\n\n### Création de tests pour le code hérité \n\nLa création de tests pour un code hérité dont nous savions qu'il fonctionnait est une autre situation difficile que nous avons rencontrée. Dans de telles circonstances, il était utile de fournir des extraits d'erreur avec les tests échoués et de demander à GitLab Duo de proposer de nouveaux tests. Un copier-coller complet depuis la fenêtre du terminal des échecs et des erreurs constatés vers Chat, accompagné de la demande « Veuillez expliquer et corriger ce test échoué » ou de prompts similaires, a permis d'obtenir un résumé des problèmes rencontrés par le test, ainsi qu'un nouveau test permettant de les résoudre. Nous avons constaté que cela nécessitait parfois plusieurs cycles de refactorisation au fur et à mesure que de nouvelles défaillances de test étaient identifiées. L'efficacité de GitLab Duo pour fournir diverses solutions de refactorisation a toutefois été rapide et a eu un effet positif sur la productivité des équipes.\n\n### Gestion des abstractions et codes complexes\n\nDans d'autres instances, la modularisation ou la complexité de notre code a entraîné des variations dans les résultats de GitLab Duo. Lors de la génération de tests, GitLab Duo a par exemple parfois généré une série de tests réussis et échoués en raison de différences dans l'approche des tests. Nous avons fourni à GitLab Duo son propre exemple de test réussi et lui avons demandé de modifier les tests individuels un par un pour qu'ils correspondent au style des tests réussis afin de maintenir la cohérence. Nous avons également fourni à GitLab Duo un fichier de tests de fonctionnement pour un objet ou une tâche similaire afin qu'il puisse refléter la structure.\n\n### Vérification de la conformité du code généré à nos standards\n\nLors du développement d'un module Python, GitLab Duo a généré de nombreux tests à l'aide d'objets simulés Mock. Ces derniers nécessitaient souvent une refactorisation, en particulier en ce qui concerne la standardisation des noms. Dans de tels cas, nous avons pu utiliser GitLab Duo Chat pour refactoriser les tests avec des instructions sur les composants de test spécifiques à mettre à jour. Demander à GitLab Duo de procéder à ces changements a été beaucoup plus rapide que de refactoriser les tests individuellement, comme nous l'avions fait auparavant.\n\n### Gestion des scénarios non couverts\n\nGitLab Duo a généré des tests pour des scénarios supplémentaires que l'équipe n'avait pas pris en compte auparavant, augmentant ainsi la couverture des tests. Heureusement, nous avons pu utiliser GitLab Duo pour traiter rapidement et efficacement ces cas particuliers et étendre la couverture des tests, ce qui constitue une valeur ajoutée essentielle permettant à notre équipe de construire rapidement et de manière sûre un produit robuste.\n\n## Quels enseignements avons-nous tirés ?\n\nVoici quelques leçons clés ayant contribué à notre réussite avec GitLab Duo :\n\n* **Rapidité et efficacité pour un développement et une itération accélérés :** le rôle de GitLab Duo dans la génération de tests automatisés a été un accélérateur clé du développement et a permis à notre équipe de travailler plus rapidement et avec une plus grande confiance dans nos changements.\n* **Utilisation de prompts appropriés :** en utilisant GitLab Duo pour notre cas d'utilisation, nous avons abordé l'ingénierie des prompts, un sujet clé en matière d'optimisation de l'apprentissage automatique. Nous avons parfois dû modifier notre question de quelques mots-clés pour obtenir la réponse idéale.\n* **Compréhension des frameworks et du code sous-jacents :** lorsqu'un code généré par l'IA est intégré à un produit, ne serait-ce qu'à titre de test, il est essentiel de comprendre comment le code fonctionne afin de pouvoir le déboguer de manière adéquate et de demander des modifications en connaissance de cause.\n* **Compréhension de l'état final souhaité et des normes :** de la même manière que l'on respecte les normes de codage pour le formatage et l'utilisation de la bibliothèque lorsqu'on développe sans IA, il est important de garder à l'esprit les résultats escomptés et les normes à respecter lors de l'utilisation de l'IA. GitLab Duo a besoin de contexte pour comprendre les normes de codage, il est donc essentiel que les membres de l'équipe qui utilisent GitLab Duo assurent une supervision adéquate de ses résultats afin de garantir le respect de la qualité ainsi que d'autres attentes.\n* **GitLab Duo ne remplace pas tous les tests :** bien que nous utilisions GitLab Duo de manière significative pour générer des tests automatisés, ce dernier ne remplace pas nos autres tests et la supervision humaine. Les tests fonctionnels, les tests d'intégration et d'autres encore occupent toujours une place importante dans le processus d'assurance qualité et dans le cycle du développement logiciel.\n\nDans le prochain article de cette série, nous aborderons un test que nous avons effectué pour valider l'impact de GitLab Duo sur les tests automatisés de notre équipe et nous discuterons des résultats impressionnants que nous avons obtenus jusqu'à présent.","ai-ml",[23,24,25],"AI/ML","testing","DevSecOps platform","2025-01-14",{"slug":28,"featured":6,"template":29},"automating-with-gitlab-duo-part-2-complex-testing","BlogPost","content:fr-fr:blog:automating-with-gitlab-duo-part-2-complex-testing.yml","yaml","Automating With Gitlab Duo Part 2 Complex Testing","content","fr-fr/blog/automating-with-gitlab-duo-part-2-complex-testing.yml","fr-fr/blog/automating-with-gitlab-duo-part-2-complex-testing","yml",{"_path":38,"_dir":39,"_draft":6,"_partial":6,"_locale":7,"data":40,"_id":453,"_type":31,"title":454,"_source":33,"_file":455,"_stem":456,"_extension":36},"/shared/fr-fr/main-navigation","fr-fr",{"logo":41,"freeTrial":46,"sales":51,"login":56,"items":61,"search":394,"minimal":430,"duo":444},{"config":42},{"href":43,"dataGaName":44,"dataGaLocation":45},"/fr-fr/","gitlab logo","header",{"text":47,"config":48},"Commencer un essai gratuit",{"href":49,"dataGaName":50,"dataGaLocation":45},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":52,"config":53},"Contacter l'équipe commerciale",{"href":54,"dataGaName":55,"dataGaLocation":45},"/fr-fr/sales/","sales",{"text":57,"config":58},"Connexion",{"href":59,"dataGaName":60,"dataGaLocation":45},"https://gitlab.com/users/sign_in/","sign in",[62,106,205,210,315,375],{"text":63,"config":64,"cards":66,"footer":89},"Plateforme",{"dataNavLevelOne":65},"platform",[67,73,81],{"title":63,"description":68,"link":69},"La plateforme DevSecOps alimentée par l'IA la plus complète",{"text":70,"config":71},"Découvrir notre plateforme",{"href":72,"dataGaName":65,"dataGaLocation":45},"/fr-fr/platform/",{"title":74,"description":75,"link":76},"GitLab Duo (IA)","Créez des logiciels plus rapidement en tirant parti de l'IA à chaque étape du développement",{"text":77,"config":78},"Découvrez GitLab Duo",{"href":79,"dataGaName":80,"dataGaLocation":45},"/fr-fr/gitlab-duo/","gitlab duo ai",{"title":82,"description":83,"link":84},"Choisir GitLab","10 raisons pour lesquelles les entreprises choisissent GitLab",{"text":85,"config":86},"En savoir plus",{"href":87,"dataGaName":88,"dataGaLocation":45},"/fr-fr/why-gitlab/","why gitlab",{"title":90,"items":91},"Démarrer avec",[92,97,102],{"text":93,"config":94},"Ingénierie de plateforme",{"href":95,"dataGaName":96,"dataGaLocation":45},"/fr-fr/solutions/platform-engineering/","platform engineering",{"text":98,"config":99},"Expérience développeur",{"href":100,"dataGaName":101,"dataGaLocation":45},"/fr-fr/developer-experience/","Developer experience",{"text":103,"config":104},"MLOps",{"href":105,"dataGaName":103,"dataGaLocation":45},"/fr-fr/topics/devops/the-role-of-ai-in-devops/",{"text":107,"left":108,"config":109,"link":111,"lists":115,"footer":187},"Produit",true,{"dataNavLevelOne":110},"solutions",{"text":112,"config":113},"Voir toutes les solutions",{"href":114,"dataGaName":110,"dataGaLocation":45},"/fr-fr/solutions/",[116,142,165],{"title":117,"description":118,"link":119,"items":124},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":120},{"icon":121,"href":122,"dataGaName":123,"dataGaLocation":45},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[125,129,133,138],{"text":126,"config":127},"CI/CD",{"href":128,"dataGaLocation":45,"dataGaName":126},"/fr-fr/solutions/continuous-integration/",{"text":130,"config":131},"Développement assisté par l'IA",{"href":79,"dataGaLocation":45,"dataGaName":132},"AI assisted development",{"text":134,"config":135},"Gestion du code source",{"href":136,"dataGaLocation":45,"dataGaName":137},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":139,"config":140},"Livraison de logiciels automatisée",{"href":122,"dataGaLocation":45,"dataGaName":141},"Automated software delivery",{"title":143,"description":144,"link":145,"items":150},"Securité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":146},{"href":147,"dataGaName":148,"dataGaLocation":45,"icon":149},"/fr-fr/solutions/security-compliance/","security and compliance","ShieldCheckLight",[151,155,160],{"text":152,"config":153},"Sécurité et conformité",{"href":147,"dataGaLocation":45,"dataGaName":154},"Security & Compliance",{"text":156,"config":157},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":158,"dataGaLocation":45,"dataGaName":159},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":161,"config":162},"Conformité et gouvernance",{"href":163,"dataGaLocation":45,"dataGaName":164},"/fr-fr/solutions/continuous-software-compliance/","Compliance and governance",{"title":166,"link":167,"items":172},"Mesures",{"config":168},{"icon":169,"href":170,"dataGaName":171,"dataGaLocation":45},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[173,177,182],{"text":174,"config":175},"Visibilité et mesures",{"href":170,"dataGaLocation":45,"dataGaName":176},"Visibility and Measurement",{"text":178,"config":179},"Gestion de la chaîne de valeur",{"href":180,"dataGaLocation":45,"dataGaName":181},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":183,"config":184},"Données d'analyse et informations clés",{"href":185,"dataGaLocation":45,"dataGaName":186},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":188,"items":189},"GitLab pour",[190,195,200],{"text":191,"config":192},"Entreprises",{"href":193,"dataGaLocation":45,"dataGaName":194},"/fr-fr/enterprise/","enterprise",{"text":196,"config":197},"PME",{"href":198,"dataGaLocation":45,"dataGaName":199},"/fr-fr/small-business/","small business",{"text":201,"config":202},"Secteur public",{"href":203,"dataGaLocation":45,"dataGaName":204},"/fr-fr/solutions/public-sector/","public sector",{"text":206,"config":207},"Tarifs",{"href":208,"dataGaName":209,"dataGaLocation":45,"dataNavLevelOne":209},"/fr-fr/pricing/","pricing",{"text":211,"config":212,"link":214,"lists":218,"feature":302},"Ressources",{"dataNavLevelOne":213},"resources",{"text":215,"config":216},"Afficher toutes les ressources",{"href":217,"dataGaName":213,"dataGaLocation":45},"/fr-fr/resources/",[219,252,274],{"title":220,"items":221},"Premiers pas",[222,227,232,237,242,247],{"text":223,"config":224},"Installation",{"href":225,"dataGaName":226,"dataGaLocation":45},"/fr-fr/install/","install",{"text":228,"config":229},"Guides de démarrage rapide",{"href":230,"dataGaName":231,"dataGaLocation":45},"/fr-fr/get-started/","quick setup checklists",{"text":233,"config":234},"Apprentissage",{"href":235,"dataGaLocation":45,"dataGaName":236},"https://university.gitlab.com/","learn",{"text":238,"config":239},"Documentation sur le produit",{"href":240,"dataGaName":241,"dataGaLocation":45},"https://docs.gitlab.com/","product documentation",{"text":243,"config":244},"Vidéos sur les bonnes pratiques",{"href":245,"dataGaName":246,"dataGaLocation":45},"/fr-fr/getting-started-videos/","best practice videos",{"text":248,"config":249},"Intégrations",{"href":250,"dataGaName":251,"dataGaLocation":45},"/fr-fr/integrations/","integrations",{"title":253,"items":254},"Découvrir",[255,260,264,269],{"text":256,"config":257},"Histoires de succès client",{"href":258,"dataGaName":259,"dataGaLocation":45},"/fr-fr/customers/","customer success stories",{"text":261,"config":262},"Blog",{"href":263,"dataGaName":5,"dataGaLocation":45},"/fr-fr/blog/",{"text":265,"config":266},"Travail à distance",{"href":267,"dataGaName":268,"dataGaLocation":45},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":270,"config":271},"TeamOps",{"href":272,"dataGaName":273,"dataGaLocation":45},"/fr-fr/teamops/","teamops",{"title":275,"items":276},"Connecter",[277,282,287,292,297],{"text":278,"config":279},"Services GitLab",{"href":280,"dataGaName":281,"dataGaLocation":45},"/fr-fr/services/","services",{"text":283,"config":284},"Communauté",{"href":285,"dataGaName":286,"dataGaLocation":45},"/community/","community",{"text":288,"config":289},"Forum",{"href":290,"dataGaName":291,"dataGaLocation":45},"https://forum.gitlab.com/","forum",{"text":293,"config":294},"Événements",{"href":295,"dataGaName":296,"dataGaLocation":45},"/events/","events",{"text":298,"config":299},"Partenaires",{"href":300,"dataGaName":301,"dataGaLocation":45},"/fr-fr/partners/","partners",{"backgroundColor":303,"textColor":304,"text":305,"image":306,"link":310},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":307,"config":308},"carte promo The Source",{"src":309},"/images/navigation/the-source-promo-card.svg",{"text":311,"config":312},"Lire les articles les plus récents",{"href":313,"dataGaName":314,"dataGaLocation":45},"/fr-fr/the-source/","the source",{"text":316,"config":317,"lists":319},"Société",{"dataNavLevelOne":318},"company",[320],{"items":321},[322,327,333,335,340,345,350,355,360,365,370],{"text":323,"config":324},"À propos",{"href":325,"dataGaName":326,"dataGaLocation":45},"/fr-fr/company/","about",{"text":328,"config":329,"footerGa":332},"Emplois",{"href":330,"dataGaName":331,"dataGaLocation":45},"/jobs/","jobs",{"dataGaName":331},{"text":293,"config":334},{"href":295,"dataGaName":296,"dataGaLocation":45},{"text":336,"config":337},"Leadership",{"href":338,"dataGaName":339,"dataGaLocation":45},"/company/team/e-group/","leadership",{"text":341,"config":342},"Équipe",{"href":343,"dataGaName":344,"dataGaLocation":45},"/company/team/","team",{"text":346,"config":347},"Manuel",{"href":348,"dataGaName":349,"dataGaLocation":45},"https://handbook.gitlab.com/","handbook",{"text":351,"config":352},"Relations avec les investisseurs",{"href":353,"dataGaName":354,"dataGaLocation":45},"https://ir.gitlab.com/","investor relations",{"text":356,"config":357},"Centre de confiance",{"href":358,"dataGaName":359,"dataGaLocation":45},"/fr-fr/security/","trust center",{"text":361,"config":362},"Centre pour la transparence de l'IA",{"href":363,"dataGaName":364,"dataGaLocation":45},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":366,"config":367},"Newsletter",{"href":368,"dataGaName":369,"dataGaLocation":45},"/company/contact/","newsletter",{"text":371,"config":372},"Presse",{"href":373,"dataGaName":374,"dataGaLocation":45},"/press/","press",{"text":376,"config":377,"lists":378},"Nous contacter",{"dataNavLevelOne":318},[379],{"items":380},[381,384,389],{"text":52,"config":382},{"href":54,"dataGaName":383,"dataGaLocation":45},"talk to sales",{"text":385,"config":386},"Aide",{"href":387,"dataGaName":388,"dataGaLocation":45},"/support/","get help",{"text":390,"config":391},"Portail clients GitLab",{"href":392,"dataGaName":393,"dataGaLocation":45},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":395,"login":396,"suggestions":403},"Fermer",{"text":397,"link":398},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":399,"config":400},"gitlab.com",{"href":59,"dataGaName":401,"dataGaLocation":402},"search login","search",{"text":404,"default":405},"Suggestions",[406,409,414,416,421,426],{"text":74,"config":407},{"href":79,"dataGaName":408,"dataGaLocation":402},"GitLab Duo (AI)",{"text":410,"config":411},"Suggestions de code (IA)",{"href":412,"dataGaName":413,"dataGaLocation":402},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":126,"config":415},{"href":128,"dataGaName":126,"dataGaLocation":402},{"text":417,"config":418},"GitLab sur AWS",{"href":419,"dataGaName":420,"dataGaLocation":402},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":422,"config":423},"GitLab sur Google Cloud ",{"href":424,"dataGaName":425,"dataGaLocation":402},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":427,"config":428},"Pourquoi utiliser GitLab ?",{"href":87,"dataGaName":429,"dataGaLocation":402},"Why GitLab?",{"freeTrial":431,"mobileIcon":436,"desktopIcon":441},{"text":432,"config":433},"Commencer votre essai gratuit",{"href":434,"dataGaName":50,"dataGaLocation":435},"https://gitlab.com/-/trials/new/","nav",{"altText":437,"config":438},"Icône GitLab",{"src":439,"dataGaName":440,"dataGaLocation":435},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":437,"config":442},{"src":443,"dataGaName":440,"dataGaLocation":435},"/images/brand/gitlab-logo-type.svg",{"freeTrial":445,"mobileIcon":449,"desktopIcon":451},{"text":446,"config":447},"En savoir plus sur GitLab Duo",{"href":79,"dataGaName":448,"dataGaLocation":435},"gitlab duo",{"altText":437,"config":450},{"src":439,"dataGaName":440,"dataGaLocation":435},{"altText":437,"config":452},{"src":443,"dataGaName":440,"dataGaLocation":435},"content:shared:fr-fr:main-navigation.yml","Main Navigation","shared/fr-fr/main-navigation.yml","shared/fr-fr/main-navigation",{"_path":458,"_dir":39,"_draft":6,"_partial":6,"_locale":7,"title":459,"titleMobile":459,"button":460,"config":465,"_id":467,"_type":31,"_source":33,"_file":468,"_stem":469,"_extension":36},"/shared/fr-fr/banner","GitLab 18 et la prochaine étape du DevSecOps intelligent. Rejoignez-nous le 24 juin.",{"text":461,"config":462},"S'inscrire",{"href":463,"dataGaName":464,"dataGaLocation":45},"/fr-fr/eighteen/","gitlab 18 banner",{"layout":466},"release","content:shared:fr-fr:banner.yml","shared/fr-fr/banner.yml","shared/fr-fr/banner",{"_path":471,"_dir":39,"_draft":6,"_partial":6,"_locale":7,"data":472,"_id":679,"_type":31,"title":680,"_source":33,"_file":681,"_stem":682,"_extension":36},"/shared/fr-fr/main-footer",{"text":473,"source":474,"edit":480,"contribute":485,"config":490,"items":495,"minimal":670},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence",{"text":475,"config":476},"Afficher le code source de la page",{"href":477,"dataGaName":478,"dataGaLocation":479},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":481,"config":482},"Modifier cette page",{"href":483,"dataGaName":484,"dataGaLocation":479},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":486,"config":487},"Veuillez contribuer",{"href":488,"dataGaName":489,"dataGaLocation":479},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":491,"facebook":492,"youtube":493,"linkedin":494},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[496,519,573,606,641],{"title":63,"links":497,"subMenu":502},[498],{"text":499,"config":500},"Plateforme DevSecOps",{"href":72,"dataGaName":501,"dataGaLocation":479},"devsecops platform",[503],{"title":206,"links":504},[505,509,514],{"text":506,"config":507},"Voir les forfaits",{"href":208,"dataGaName":508,"dataGaLocation":479},"view plans",{"text":510,"config":511},"Pourquoi choisir GitLab Premium ?",{"href":512,"dataGaName":513,"dataGaLocation":479},"/fr-fr/pricing/premium/","why premium",{"text":515,"config":516},"Pourquoi choisir GitLab Ultimate ?",{"href":517,"dataGaName":518,"dataGaLocation":479},"/fr-fr/pricing/ultimate/","why ultimate",{"title":520,"links":521},"Solutions",[522,527,530,532,537,542,546,549,552,557,559,561,563,568],{"text":523,"config":524},"Transformation digitale",{"href":525,"dataGaName":526,"dataGaLocation":479},"/fr-fr/solutions/digital-transformation/","digital transformation",{"text":152,"config":528},{"href":147,"dataGaName":529,"dataGaLocation":479},"security & compliance",{"text":139,"config":531},{"href":122,"dataGaName":123,"dataGaLocation":479},{"text":533,"config":534},"Développement agile",{"href":535,"dataGaName":536,"dataGaLocation":479},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":538,"config":539},"Transformation cloud",{"href":540,"dataGaName":541,"dataGaLocation":479},"/fr-fr/topics/cloud-native/","cloud transformation",{"text":543,"config":544},"SCM",{"href":136,"dataGaName":545,"dataGaLocation":479},"source code management",{"text":126,"config":547},{"href":128,"dataGaName":548,"dataGaLocation":479},"continuous integration & delivery",{"text":178,"config":550},{"href":180,"dataGaName":551,"dataGaLocation":479},"value stream management",{"text":553,"config":554},"GitOps",{"href":555,"dataGaName":556,"dataGaLocation":479},"/fr-fr/solutions/gitops/","gitops",{"text":191,"config":558},{"href":193,"dataGaName":194,"dataGaLocation":479},{"text":196,"config":560},{"href":198,"dataGaName":199,"dataGaLocation":479},{"text":201,"config":562},{"href":203,"dataGaName":204,"dataGaLocation":479},{"text":564,"config":565},"Formation",{"href":566,"dataGaName":567,"dataGaLocation":479},"/fr-fr/solutions/education/","education",{"text":569,"config":570},"Services financiers",{"href":571,"dataGaName":572,"dataGaLocation":479},"/fr-fr/solutions/finance/","financial services",{"title":211,"links":574},[575,577,579,581,584,586,590,592,594,596,598,600,602,604],{"text":223,"config":576},{"href":225,"dataGaName":226,"dataGaLocation":479},{"text":228,"config":578},{"href":230,"dataGaName":231,"dataGaLocation":479},{"text":233,"config":580},{"href":235,"dataGaName":236,"dataGaLocation":479},{"text":238,"config":582},{"href":240,"dataGaName":583,"dataGaLocation":479},"docs",{"text":261,"config":585},{"href":263,"dataGaName":5},{"text":587,"config":588},"Histoires de réussite client",{"href":589,"dataGaLocation":479},"/customers/",{"text":256,"config":591},{"href":258,"dataGaName":259,"dataGaLocation":479},{"text":265,"config":593},{"href":267,"dataGaName":268,"dataGaLocation":479},{"text":278,"config":595},{"href":280,"dataGaName":281,"dataGaLocation":479},{"text":270,"config":597},{"href":272,"dataGaName":273,"dataGaLocation":479},{"text":283,"config":599},{"href":285,"dataGaName":286,"dataGaLocation":479},{"text":288,"config":601},{"href":290,"dataGaName":291,"dataGaLocation":479},{"text":293,"config":603},{"href":295,"dataGaName":296,"dataGaLocation":479},{"text":298,"config":605},{"href":300,"dataGaName":301,"dataGaLocation":479},{"title":316,"links":607},[608,610,612,614,616,618,620,625,630,632,634,636],{"text":323,"config":609},{"href":325,"dataGaName":318,"dataGaLocation":479},{"text":328,"config":611},{"href":330,"dataGaName":331,"dataGaLocation":479},{"text":336,"config":613},{"href":338,"dataGaName":339,"dataGaLocation":479},{"text":341,"config":615},{"href":343,"dataGaName":344,"dataGaLocation":479},{"text":346,"config":617},{"href":348,"dataGaName":349,"dataGaLocation":479},{"text":351,"config":619},{"href":353,"dataGaName":354,"dataGaLocation":479},{"text":621,"config":622},"Stratégie environnementale, sociale et de gouvernance (ESG)",{"href":623,"dataGaName":624,"dataGaLocation":479},"/fr-fr/environmental-social-governance/","environmental, social and governance",{"text":626,"config":627},"Diversité, inclusion et appartenance (DIB)",{"href":628,"dataGaName":629,"dataGaLocation":479},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":356,"config":631},{"href":358,"dataGaName":359,"dataGaLocation":479},{"text":366,"config":633},{"href":368,"dataGaName":369,"dataGaLocation":479},{"text":371,"config":635},{"href":373,"dataGaName":374,"dataGaLocation":479},{"text":637,"config":638},"Déclaration de transparence sur l'esclavage moderne",{"href":639,"dataGaName":640,"dataGaLocation":479},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":376,"links":642},[643,646,648,650,655,660,665],{"text":644,"config":645},"Échanger avec un expert",{"href":54,"dataGaName":55,"dataGaLocation":479},{"text":385,"config":647},{"href":387,"dataGaName":388,"dataGaLocation":479},{"text":390,"config":649},{"href":392,"dataGaName":393,"dataGaLocation":479},{"text":651,"config":652},"Statut",{"href":653,"dataGaName":654,"dataGaLocation":479},"https://status.gitlab.com/","status",{"text":656,"config":657},"Conditions d'utilisation",{"href":658,"dataGaName":659},"/terms/","terms of use",{"text":661,"config":662},"Déclaration de confidentialité",{"href":663,"dataGaName":664,"dataGaLocation":479},"/fr-fr/privacy/","privacy statement",{"text":666,"config":667},"Préférences en matière de cookies",{"dataGaName":668,"dataGaLocation":479,"id":669,"isOneTrustButton":108},"cookie preferences","ot-sdk-btn",{"items":671},[672,674,677],{"text":656,"config":673},{"href":658,"dataGaName":659,"dataGaLocation":479},{"text":675,"config":676},"Politique de confidentialité",{"href":663,"dataGaName":664,"dataGaLocation":479},{"text":666,"config":678},{"dataGaName":668,"dataGaLocation":479,"id":669,"isOneTrustButton":108},"content:shared:fr-fr:main-footer.yml","Main Footer","shared/fr-fr/main-footer.yml","shared/fr-fr/main-footer",[684],{"_path":685,"_dir":686,"_draft":6,"_partial":6,"_locale":7,"content":687,"config":691,"_id":693,"_type":31,"title":18,"_source":33,"_file":694,"_stem":695,"_extension":36},"/en-us/blog/authors/byron-boots","authors",{"name":18,"config":688},{"headshot":689,"ctfId":690},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662281/Blog/Author%20Headshots/byron_boots_headshot.png","7ezFbRYF2Cu5JTBQXRp7mw",{"template":692},"BlogAuthor","content:en-us:blog:authors:byron-boots.yml","en-us/blog/authors/byron-boots.yml","en-us/blog/authors/byron-boots",{"_path":697,"_dir":39,"_draft":6,"_partial":6,"_locale":7,"header":698,"eyebrow":699,"blurb":700,"button":701,"secondaryButton":705,"_id":707,"_type":31,"title":708,"_source":33,"_file":709,"_stem":710,"_extension":36},"/shared/fr-fr/next-steps","Commencez à livrer des logiciels de meilleurs qualité plus rapidement","Plus de 50 % des entreprises du classement Fortune 100 font confiance à GitLab","Découvrez comment la plateforme DevSecOps intelligente\n\n\npeut aider votre équipe.\n",{"text":47,"config":702},{"href":703,"dataGaName":50,"dataGaLocation":704},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":52,"config":706},{"href":54,"dataGaName":55,"dataGaLocation":704},"content:shared:fr-fr:next-steps.yml","Next Steps","shared/fr-fr/next-steps.yml","shared/fr-fr/next-steps",1752588144796]