[{"data":1,"prerenderedAt":703},["ShallowReactive",2],{"/ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing/":3,"navigation-ja-jp":37,"banner-ja-jp":453,"footer-ja-jp":465,"Byron Boots":675,"next-steps-ja-jp":688},{"_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},"/ja-jp/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},"GitLab Duoを使用した自動化シリーズパート2：複雑なテスト","コードテストが標準に準拠していることを確認するなど、GitLabチームが、GitLab DuoのAI機能を使用して、通常より複雑なテスト状況にどのように対処したかをご紹介します。","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\": \"GitLab Duoを使用した自動化シリーズパート2：複雑なテスト\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Byron Boots\"}],\n        \"datePublished\": \"2024-12-10\",\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","[GitLab Duoを使用したテスト生成](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests/)に関する3部構成シリーズの最初の記事では、コードテストを自動化する方法に焦点を当てました。この記事では、テスト生成にAIを使用する中で学んだ教訓をご紹介します。\n\n## 直面した状況とその対処方法\n\n全体的に見て、[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)を使用してコードテストを生成した結果には満足しています。他の言語生成の場合と同様に、インポートパスを修正したり、データセット内の内容を編集したりするなど、微調整が必要な場合もありました。より複雑なケースでは、AIが提示したソリューションでは、多くの場合、コンテキストが欠けていることを念頭に置いておく必要がありました。それでは、GitLab Duoを使用して、より複雑なテスト状況にどのように対処したかを説明します。\n\n### 既存のテストケースの更新\n\nソフトウェア製品の開発時にソフトウェア製品の開発時にはよくあることですが、既存のテストの更新が必要になる状況が発生しました。私たちは、一般的な問題に対してテスト機能全体を手動で調整するのではなく、VS CodeのGitLab Duo Chatウィンドウを最大限に活用しました。たとえば、テストをリファクタリングするために、「Please update the provided tests to use unittest rather than pytest. （日本語：提供されたテストをpytestではなくunittestを使用するように更新してください。）」とChatプロンプトを入力してから、GitLab Duoに更新してもらいたいテストを貼り付けました。\n\n![テスト生成の自動化](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![pytestではなくunittestの使用をリクエストするChatプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099252/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750099252304.png)\n\n**注**：GitLab Duoの推奨事項をコードにコピー＆ペーストしています。\n\n### レガシーコードのテスト作成\n\n正常に動作しているとわかっていたレガシーコードのテストを作成するのも、困難な問題でした。こういった状況では、失敗したテストと一緒にエラースニペットを提供し、GitLab Duoに新しいテストを作成するようリクエストすると非常に便利でした。ターミナルウィンドウから記録された失敗とエラーをすべてコピーしてChatに貼り付け、「Please explain and fix this failing test.（日本語：この失敗しているテストを説明して修正してください。）」といったプロンプトを入力してリクエストしたところ、テストで発生した問題の概要と、問題に対処した新しいテストが生成されました。新しいテストでも失敗が何度か特定されたため、その後、複数回のリファクタリングが必要となる場合がありました。しかし、そういった場合でも、GitLab Duoのおかげで、さまざまなリファクタリングされたソリューションを迅速かつ効率的に得られたため、チーム全体とデベロッパーの効率性が向上する結果となりました。\n\n### 複雑なコードや抽象化されたコードの処理\n\nその他の例では、コードのモジュール化や複雑さにより、GitLab Duoの結果にばらつきが生じました。たとえば、GitLab Duoは、テストアプローチの違い（モックの使い方や、どのオブジェクトをモッキングするかなど）によって、成功するテストと失敗するテストを次々と生成することがありました。これに対処するため、GitLab Duoに成功したテストの例を提供し、一貫性を維持するために成功したテストのスタイルに合わせて個々のテストを1つずつ変更するようリクエストしました。また、同様のオブジェクトやタスクのテストがうまく行っているファイルをGitLab Duoに提供して、構造をミラーリングできるようにしました。\n\n### 生成されたコードが当社の基準に準拠していることを確認\n\nPythonモジュールの開発中、GitLab Duoを活用して、モックを用いた多くのテストを生成しましたが、多くの場合、特に命名標準化に関するリファクタリングが必要となりました。こうしたケースでは、GitLab Duo Chatを活用し、どの特定のテストコンポーネントを更新するかといった手順を指示すれば、テストをリファクタリングできました。GitLab Duoにこれらの変更を行うよう指示するほうが、今まで行っていたように、テストを個別にリファクタリングするよりもはるかに高速でした。\n\n### 対象外のテストケースへの対処\n\nGitLab Duoを使用することで、当社チームが今までは検討していなかった他のテストケースのテストを生成できたため、カバレッジが向上しました。幸いなことに、GitLab Duoを使用して、これらのエッジケースに迅速かつ効率的に対処し、テストカバレッジを拡大できました。これは、当社チームにとって、開発速度の向上、および堅牢な製品開発につながる重要な付加価値となりました。\n\n## 学んだ教訓\n\nGitLab Duoをうまく活用して成功を収める中で学んだ、重要な教訓をいくつかご紹介します。\n\n* **迅速で効率的な開発とイテレーション** - 自動テストの生成作業におけるGitLab Duoの役割は、チームの開発プロセス内での重要なアクセラレーターとなり、変更をより迅速かつ自信を持って行うことができました。\n* **適切なプロンプトを使用することの重要性** - GitLab Duoを当社のユースケースで使用する際には、機械学習の最適化における重要なトピックであるプロンプトエンジニアリングに触れました。理想的な回答を得るためには、いくつかのキーワードを使用して質問を修正する必要があることもわかりました。\n* **基盤となるフレームワークとコードを理解する必要性** - テストとして使用される場合であっても、製品に組み込まれるAI生成コードに関しては、どのように機能するかを理解して、適切にデバッグし、情報に基づいた変更をリクエストできるようにすることが重要です。\n* **望ましい最終的な状態と標準を把握しておく必要性** - AIを使用せずに開発する際に、フォーマットやライブラリの使用に関するコーディング標準に従うのと同様、AIを使用する際も意図する結果がどのようなものであるか、どのような標準に準拠すべきであるかというビジョンを持つことが重要です。GitLab Duoは、コード標準を理解するためにコンテキストを必要とします。そのため、GitLab Duoを使用するチームメンバーは、品質やその他の期待が確実に満たされるように、出力を適切に監視することが重要です。\n* **GitLab Duoはすべてのテストの代わりとなるものではない** - 自動化されたテストを生成する際は、GitLab Duoを多用していますが、他のテストや人間による監視に代わるものではありません。機能テスト、統合テストなどは、QAプロセスとソフトウェア開発ライフサイクル全体において以前として重要な役割を果たします。\n\nこのシリーズの次回の記事では、[チームの自動テストプロセスにおけるGitLab Duoの影響を検証するために実行したテスト](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-3-validating-testing/)と、これまでに達成した素晴らしい結果について説明します。\n\n\u003Cbr>\u003Cbr>\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\u003Cbr>\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n","ai-ml",[23,24,25],"AI/ML","testing","DevSecOps platform","2025-05-02",{"slug":28,"featured":6,"template":29},"automating-with-gitlab-duo-part-2-complex-testing","BlogPost","content:ja-jp:blog:automating-with-gitlab-duo-part-2-complex-testing.yml","yaml","Automating With Gitlab Duo Part 2 Complex Testing","content","ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing.yml","ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing","yml",{"_path":38,"_dir":39,"_draft":6,"_partial":6,"_locale":7,"data":40,"_id":449,"_type":31,"title":450,"_source":33,"_file":451,"_stem":452,"_extension":36},"/shared/ja-jp/main-navigation","ja-jp",{"logo":41,"freeTrial":46,"sales":51,"login":56,"items":61,"search":393,"minimal":427,"duo":440},{"config":42},{"href":43,"dataGaName":44,"dataGaLocation":45},"/ja-jp/","gitlab logo","header",{"text":47,"config":48},"無料トライアルを開始",{"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},"お問い合わせ",{"href":54,"dataGaName":55,"dataGaLocation":45},"/ja-jp/sales/","sales",{"text":57,"config":58},"サインイン",{"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},"プラットフォーム",{"dataNavLevelOne":65},"platform",[67,73,81],{"title":63,"description":68,"link":69},"最も包括的かつAIで強化されたDevSecOpsプラットフォーム",{"text":70,"config":71},"プラットフォームを詳しく見る",{"href":72,"dataGaName":65,"dataGaLocation":45},"/ja-jp/platform/",{"title":74,"description":75,"link":76},"GitLab Duo（AI）","開発のすべてのステージでAIを活用し、ソフトウェアをより迅速にビルド",{"text":77,"config":78},"GitLab Duoのご紹介",{"href":79,"dataGaName":80,"dataGaLocation":45},"/ja-jp/gitlab-duo/","gitlab duo ai",{"title":82,"description":83,"link":84},"GitLabが選ばれる理由","GitLabが大企業に選ばれる理由10選",{"text":85,"config":86},"詳細はこちら",{"href":87,"dataGaName":88,"dataGaLocation":45},"/ja-jp/why-gitlab/","why gitlab",{"title":90,"items":91},"利用を開始：",[92,97,102],{"text":93,"config":94},"プラットフォームエンジニアリング",{"href":95,"dataGaName":96,"dataGaLocation":45},"/ja-jp/solutions/platform-engineering/","platform engineering",{"text":98,"config":99},"開発者の経験",{"href":100,"dataGaName":101,"dataGaLocation":45},"/ja-jp/developer-experience/","Developer experience",{"text":103,"config":104},"MLOps",{"href":105,"dataGaName":103,"dataGaLocation":45},"/ja-jp/topics/devops/the-role-of-ai-in-devops/",{"text":107,"left":108,"config":109,"link":111,"lists":115,"footer":187},"製品",true,{"dataNavLevelOne":110},"solutions",{"text":112,"config":113},"すべてのソリューションを表示",{"href":114,"dataGaName":110,"dataGaLocation":45},"/ja-jp/solutions/",[116,142,165],{"title":117,"description":118,"link":119,"items":124},"自動化","CI/CDと自動化でデプロイを加速",{"config":120},{"icon":121,"href":122,"dataGaName":123,"dataGaLocation":45},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[125,129,133,138],{"text":126,"config":127},"CI/CD",{"href":128,"dataGaLocation":45,"dataGaName":126},"/ja-jp/solutions/continuous-integration/",{"text":130,"config":131},"AIアシストによる開発",{"href":79,"dataGaLocation":45,"dataGaName":132},"AI assisted development",{"text":134,"config":135},"ソースコード管理",{"href":136,"dataGaLocation":45,"dataGaName":137},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":139,"config":140},"自動化されたソフトウェアデリバリー",{"href":122,"dataGaLocation":45,"dataGaName":141},"Automated software delivery",{"title":143,"description":144,"link":145,"items":150},"セキュリティ","セキュリティを損なうことなくコードをより迅速に完成",{"config":146},{"href":147,"dataGaName":148,"dataGaLocation":45,"icon":149},"/ja-jp/solutions/security-compliance/","security and compliance","ShieldCheckLight",[151,155,160],{"text":152,"config":153},"セキュリティとコンプライアンス",{"href":147,"dataGaLocation":45,"dataGaName":154},"Security & Compliance",{"text":156,"config":157},"ソフトウェアサプライチェーンの安全性",{"href":158,"dataGaLocation":45,"dataGaName":159},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":161,"config":162},"コンプライアンスとガバナンス",{"href":163,"dataGaLocation":45,"dataGaName":164},"/ja-jp/solutions/continuous-software-compliance/","Compliance and governance",{"title":166,"link":167,"items":172},"測定",{"config":168},{"icon":169,"href":170,"dataGaName":171,"dataGaLocation":45},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[173,177,182],{"text":174,"config":175},"可視性と測定",{"href":170,"dataGaLocation":45,"dataGaName":176},"Visibility and Measurement",{"text":178,"config":179},"バリューストリーム管理",{"href":180,"dataGaLocation":45,"dataGaName":181},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":183,"config":184},"分析とインサイト",{"href":185,"dataGaLocation":45,"dataGaName":186},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":188,"items":189},"GitLabが活躍する場所",[190,195,200],{"text":191,"config":192},"Enterprise",{"href":193,"dataGaLocation":45,"dataGaName":194},"/ja-jp/enterprise/","enterprise",{"text":196,"config":197},"スモールビジネス",{"href":198,"dataGaLocation":45,"dataGaName":199},"/ja-jp/small-business/","small business",{"text":201,"config":202},"公共機関",{"href":203,"dataGaLocation":45,"dataGaName":204},"/ja-jp/solutions/public-sector/","public sector",{"text":206,"config":207},"価格",{"href":208,"dataGaName":209,"dataGaLocation":45,"dataNavLevelOne":209},"/ja-jp/pricing/","pricing",{"text":211,"config":212,"link":214,"lists":218,"feature":302},"関連リソース",{"dataNavLevelOne":213},"resources",{"text":215,"config":216},"すべてのリソースを表示",{"href":217,"dataGaName":213,"dataGaLocation":45},"/ja-jp/resources/",[219,252,274],{"title":220,"items":221},"はじめに",[222,227,232,237,242,247],{"text":223,"config":224},"インストール",{"href":225,"dataGaName":226,"dataGaLocation":45},"/ja-jp/install/","install",{"text":228,"config":229},"クイックスタートガイド",{"href":230,"dataGaName":231,"dataGaLocation":45},"/ja-jp/get-started/","quick setup checklists",{"text":233,"config":234},"学ぶ",{"href":235,"dataGaLocation":45,"dataGaName":236},"https://university.gitlab.com/","learn",{"text":238,"config":239},"製品ドキュメント",{"href":240,"dataGaName":241,"dataGaLocation":45},"https://docs.gitlab.com/","product documentation",{"text":243,"config":244},"ベストプラクティスビデオ",{"href":245,"dataGaName":246,"dataGaLocation":45},"/ja-jp/getting-started-videos/","best practice videos",{"text":248,"config":249},"インテグレーション",{"href":250,"dataGaName":251,"dataGaLocation":45},"/ja-jp/integrations/","integrations",{"title":253,"items":254},"検索する",[255,260,264,269],{"text":256,"config":257},"お客様成功事例",{"href":258,"dataGaName":259,"dataGaLocation":45},"/ja-jp/customers/","customer success stories",{"text":261,"config":262},"ブログ",{"href":263,"dataGaName":5,"dataGaLocation":45},"/ja-jp/blog/",{"text":265,"config":266},"リモート",{"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},"/ja-jp/teamops/","teamops",{"title":275,"items":276},"つなげる",[277,282,287,292,297],{"text":278,"config":279},"GitLabサービス",{"href":280,"dataGaName":281,"dataGaLocation":45},"/ja-jp/services/","services",{"text":283,"config":284},"コミュニティ",{"href":285,"dataGaName":286,"dataGaLocation":45},"/community/","community",{"text":288,"config":289},"フォーラム",{"href":290,"dataGaName":291,"dataGaLocation":45},"https://forum.gitlab.com/","forum",{"text":293,"config":294},"イベント",{"href":295,"dataGaName":296,"dataGaLocation":45},"/events/","events",{"text":298,"config":299},"パートナー",{"href":300,"dataGaName":301,"dataGaLocation":45},"/ja-jp/partners/","partners",{"backgroundColor":303,"textColor":304,"text":305,"image":306,"link":310},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":307,"config":308},"ソースプロモカード",{"src":309},"/images/navigation/the-source-promo-card.svg",{"text":311,"config":312},"最新情報を読む",{"href":313,"dataGaName":314,"dataGaLocation":45},"/ja-jp/the-source/","the source",{"text":316,"config":317,"lists":319},"Company",{"dataNavLevelOne":318},"company",[320],{"items":321},[322,327,333,335,340,345,350,355,360,365,370],{"text":323,"config":324},"GitLabについて",{"href":325,"dataGaName":326,"dataGaLocation":45},"/ja-jp/company/","about",{"text":328,"config":329,"footerGa":332},"採用情報",{"href":330,"dataGaName":331,"dataGaLocation":45},"/jobs/","jobs",{"dataGaName":331},{"text":293,"config":334},{"href":295,"dataGaName":296,"dataGaLocation":45},{"text":336,"config":337},"経営陣",{"href":338,"dataGaName":339,"dataGaLocation":45},"/company/team/e-group/","leadership",{"text":341,"config":342},"チーム",{"href":343,"dataGaName":344,"dataGaLocation":45},"/company/team/","team",{"text":346,"config":347},"ハンドブック",{"href":348,"dataGaName":349,"dataGaLocation":45},"https://handbook.gitlab.com/","handbook",{"text":351,"config":352},"投資家向け情報",{"href":353,"dataGaName":354,"dataGaLocation":45},"https://ir.gitlab.com/","investor relations",{"text":356,"config":357},"トラストセンター",{"href":358,"dataGaName":359,"dataGaLocation":45},"/ja-jp/security/","trust center",{"text":361,"config":362},"AI Transparency Center",{"href":363,"dataGaName":364,"dataGaLocation":45},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":366,"config":367},"ニュースレター",{"href":368,"dataGaName":369,"dataGaLocation":45},"/company/contact/","newsletter",{"text":371,"config":372},"プレス",{"href":373,"dataGaName":374,"dataGaLocation":45},"/press/","press",{"text":52,"config":376,"lists":377},{"dataNavLevelOne":318},[378],{"items":379},[380,383,388],{"text":52,"config":381},{"href":54,"dataGaName":382,"dataGaLocation":45},"talk to sales",{"text":384,"config":385},"サポートを受ける",{"href":386,"dataGaName":387,"dataGaLocation":45},"/support/","get help",{"text":389,"config":390},"カスタマーポータル",{"href":391,"dataGaName":392,"dataGaLocation":45},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":394,"login":395,"suggestions":402},"閉じる",{"text":396,"link":397},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":398,"config":399},"GitLab.com",{"href":59,"dataGaName":400,"dataGaLocation":401},"search login","search",{"text":403,"default":404},"提案",[405,408,413,415,419,423],{"text":74,"config":406},{"href":79,"dataGaName":407,"dataGaLocation":401},"GitLab Duo (AI)",{"text":409,"config":410},"コード提案（AI）",{"href":411,"dataGaName":412,"dataGaLocation":401},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":126,"config":414},{"href":128,"dataGaName":126,"dataGaLocation":401},{"text":416,"config":417},"GitLab on AWS",{"href":418,"dataGaName":416,"dataGaLocation":401},"/ja-jp/partners/technology-partners/aws/",{"text":420,"config":421},"GitLab on Google Cloud",{"href":422,"dataGaName":420,"dataGaLocation":401},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":424,"config":425},"GitLabを選ぶ理由",{"href":87,"dataGaName":426,"dataGaLocation":401},"Why GitLab?",{"freeTrial":428,"mobileIcon":432,"desktopIcon":437},{"text":47,"config":429},{"href":430,"dataGaName":50,"dataGaLocation":431},"https://gitlab.com/-/trials/new/","nav",{"altText":433,"config":434},"GitLabアイコン",{"src":435,"dataGaName":436,"dataGaLocation":431},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":433,"config":438},{"src":439,"dataGaName":436,"dataGaLocation":431},"/images/brand/gitlab-logo-type.svg",{"freeTrial":441,"mobileIcon":445,"desktopIcon":447},{"text":442,"config":443},"GitLab Duoの詳細について",{"href":79,"dataGaName":444,"dataGaLocation":431},"gitlab duo",{"altText":433,"config":446},{"src":435,"dataGaName":436,"dataGaLocation":431},{"altText":433,"config":448},{"src":439,"dataGaName":436,"dataGaLocation":431},"content:shared:ja-jp:main-navigation.yml","Main Navigation","shared/ja-jp/main-navigation.yml","shared/ja-jp/main-navigation",{"_path":454,"_dir":39,"_draft":6,"_partial":6,"_locale":7,"title":455,"button":456,"config":460,"_id":462,"_type":31,"_source":33,"_file":463,"_stem":464,"_extension":36},"/shared/ja-jp/banner","GitLab Duo Agent Platformがパブリックベータ版で利用可能になりました！",{"text":85,"config":457},{"href":458,"dataGaName":459,"dataGaLocation":45},"/ja-jp/gitlab-duo/agent-platform/","duo banner",{"layout":461},"release","content:shared:ja-jp:banner.yml","shared/ja-jp/banner.yml","shared/ja-jp/banner",{"_path":466,"_dir":39,"_draft":6,"_partial":6,"_locale":7,"data":467,"_id":671,"_type":31,"title":672,"_source":33,"_file":673,"_stem":674,"_extension":36},"/shared/ja-jp/main-footer",{"text":468,"source":469,"edit":475,"contribute":480,"config":485,"items":490,"minimal":663},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":470,"config":471},"ページのソースを表示",{"href":472,"dataGaName":473,"dataGaLocation":474},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":476,"config":477},"このページを編集",{"href":478,"dataGaName":479,"dataGaLocation":474},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":481,"config":482},"ご協力をお願いします",{"href":483,"dataGaName":484,"dataGaLocation":474},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":486,"facebook":487,"youtube":488,"linkedin":489},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[491,514,568,601,635],{"title":63,"links":492,"subMenu":497},[493],{"text":494,"config":495},"DevSecOpsプラットフォーム",{"href":72,"dataGaName":496,"dataGaLocation":474},"devsecops platform",[498],{"title":206,"links":499},[500,504,509],{"text":501,"config":502},"プランの表示",{"href":208,"dataGaName":503,"dataGaLocation":474},"view plans",{"text":505,"config":506},"Premiumを選ぶ理由",{"href":507,"dataGaName":508,"dataGaLocation":474},"/ja-jp/pricing/premium/","why premium",{"text":510,"config":511},"Ultimateを選ぶ理由",{"href":512,"dataGaName":513,"dataGaLocation":474},"/ja-jp/pricing/ultimate/","why ultimate",{"title":515,"links":516},"ソリューション",[517,522,525,527,532,537,541,544,547,552,554,556,558,563],{"text":518,"config":519},"デジタルトランスフォーメーション",{"href":520,"dataGaName":521,"dataGaLocation":474},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":152,"config":523},{"href":147,"dataGaName":524,"dataGaLocation":474},"security & compliance",{"text":139,"config":526},{"href":122,"dataGaName":123,"dataGaLocation":474},{"text":528,"config":529},"アジャイル開発",{"href":530,"dataGaName":531,"dataGaLocation":474},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":533,"config":534},"クラウドトランスフォーメーション",{"href":535,"dataGaName":536,"dataGaLocation":474},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":538,"config":539},"SCM",{"href":136,"dataGaName":540,"dataGaLocation":474},"source code management",{"text":126,"config":542},{"href":128,"dataGaName":543,"dataGaLocation":474},"continuous integration & delivery",{"text":178,"config":545},{"href":180,"dataGaName":546,"dataGaLocation":474},"value stream management",{"text":548,"config":549},"GitOps",{"href":550,"dataGaName":551,"dataGaLocation":474},"/ja-jp/solutions/gitops/","gitops",{"text":191,"config":553},{"href":193,"dataGaName":194,"dataGaLocation":474},{"text":196,"config":555},{"href":198,"dataGaName":199,"dataGaLocation":474},{"text":201,"config":557},{"href":203,"dataGaName":204,"dataGaLocation":474},{"text":559,"config":560},"教育",{"href":561,"dataGaName":562,"dataGaLocation":474},"/ja-jp/solutions/education/","education",{"text":564,"config":565},"金融サービス",{"href":566,"dataGaName":567,"dataGaLocation":474},"/ja-jp/solutions/finance/","financial services",{"title":211,"links":569},[570,572,574,576,579,581,585,587,589,591,593,595,597,599],{"text":223,"config":571},{"href":225,"dataGaName":226,"dataGaLocation":474},{"text":228,"config":573},{"href":230,"dataGaName":231,"dataGaLocation":474},{"text":233,"config":575},{"href":235,"dataGaName":236,"dataGaLocation":474},{"text":238,"config":577},{"href":240,"dataGaName":578,"dataGaLocation":474},"docs",{"text":261,"config":580},{"href":263,"dataGaName":5},{"text":582,"config":583},"お客様の成功事例",{"href":584,"dataGaLocation":474},"/customers/",{"text":256,"config":586},{"href":258,"dataGaName":259,"dataGaLocation":474},{"text":265,"config":588},{"href":267,"dataGaName":268,"dataGaLocation":474},{"text":278,"config":590},{"href":280,"dataGaName":281,"dataGaLocation":474},{"text":270,"config":592},{"href":272,"dataGaName":273,"dataGaLocation":474},{"text":283,"config":594},{"href":285,"dataGaName":286,"dataGaLocation":474},{"text":288,"config":596},{"href":290,"dataGaName":291,"dataGaLocation":474},{"text":293,"config":598},{"href":295,"dataGaName":296,"dataGaLocation":474},{"text":298,"config":600},{"href":300,"dataGaName":301,"dataGaLocation":474},{"title":316,"links":602},[603,605,607,609,611,613,615,619,624,626,628,630],{"text":323,"config":604},{"href":325,"dataGaName":318,"dataGaLocation":474},{"text":328,"config":606},{"href":330,"dataGaName":331,"dataGaLocation":474},{"text":336,"config":608},{"href":338,"dataGaName":339,"dataGaLocation":474},{"text":341,"config":610},{"href":343,"dataGaName":344,"dataGaLocation":474},{"text":346,"config":612},{"href":348,"dataGaName":349,"dataGaLocation":474},{"text":351,"config":614},{"href":353,"dataGaName":354,"dataGaLocation":474},{"text":616,"config":617},"Sustainability",{"href":618,"dataGaName":616,"dataGaLocation":474},"/sustainability/",{"text":620,"config":621},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":622,"dataGaName":623,"dataGaLocation":474},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":356,"config":625},{"href":358,"dataGaName":359,"dataGaLocation":474},{"text":366,"config":627},{"href":368,"dataGaName":369,"dataGaLocation":474},{"text":371,"config":629},{"href":373,"dataGaName":374,"dataGaLocation":474},{"text":631,"config":632},"現代奴隷制の透明性に関する声明",{"href":633,"dataGaName":634,"dataGaLocation":474},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":52,"links":636},[637,639,641,643,648,653,658],{"text":52,"config":638},{"href":54,"dataGaName":55,"dataGaLocation":474},{"text":384,"config":640},{"href":386,"dataGaName":387,"dataGaLocation":474},{"text":389,"config":642},{"href":391,"dataGaName":392,"dataGaLocation":474},{"text":644,"config":645},"ステータス",{"href":646,"dataGaName":647,"dataGaLocation":474},"https://status.gitlab.com/","status",{"text":649,"config":650},"利用規約",{"href":651,"dataGaName":652,"dataGaLocation":474},"/terms/","terms of use",{"text":654,"config":655},"プライバシーに関する声明",{"href":656,"dataGaName":657,"dataGaLocation":474},"/ja-jp/privacy/","privacy statement",{"text":659,"config":660},"Cookieの設定",{"dataGaName":661,"dataGaLocation":474,"id":662,"isOneTrustButton":108},"cookie preferences","ot-sdk-btn",{"items":664},[665,667,669],{"text":649,"config":666},{"href":651,"dataGaName":652,"dataGaLocation":474},{"text":654,"config":668},{"href":656,"dataGaName":657,"dataGaLocation":474},{"text":659,"config":670},{"dataGaName":661,"dataGaLocation":474,"id":662,"isOneTrustButton":108},"content:shared:ja-jp:main-footer.yml","Main Footer","shared/ja-jp/main-footer.yml","shared/ja-jp/main-footer",[676],{"_path":677,"_dir":678,"_draft":6,"_partial":6,"_locale":7,"content":679,"config":683,"_id":685,"_type":31,"title":18,"_source":33,"_file":686,"_stem":687,"_extension":36},"/en-us/blog/authors/byron-boots","authors",{"name":18,"config":680},{"headshot":681,"ctfId":682},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662281/Blog/Author%20Headshots/byron_boots_headshot.png","7ezFbRYF2Cu5JTBQXRp7mw",{"template":684},"BlogAuthor","content:en-us:blog:authors:byron-boots.yml","en-us/blog/authors/byron-boots.yml","en-us/blog/authors/byron-boots",{"_path":689,"_dir":39,"_draft":6,"_partial":6,"_locale":7,"header":690,"eyebrow":691,"blurb":692,"button":693,"secondaryButton":697,"_id":699,"_type":31,"title":700,"_source":33,"_file":701,"_stem":702,"_extension":36},"/shared/ja-jp/next-steps","より優れたソフトウェアをより速く提供","フォーチュン100企業の50%以上がGitLabを信頼","インテリジェントなDevSecOpsプラットフォームで\n\n\nチームの可能性を広げましょう。\n",{"text":47,"config":694},{"href":695,"dataGaName":50,"dataGaLocation":696},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":52,"config":698},{"href":54,"dataGaName":55,"dataGaLocation":696},"content:shared:ja-jp:next-steps.yml","Next Steps","shared/ja-jp/next-steps.yml","shared/ja-jp/next-steps",1753475389197]