[{"data":1,"prerenderedAt":978},["ShallowReactive",2],{"/ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing":3,"navigation-ja-jp":197,"banner-ja-jp":627,"footer-ja-jp":635,"blog-post-authors-ja-jp-Byron Boots":877,"blog-related-posts-ja-jp-automating-with-gitlab-duo-part-2-complex-testing":892,"blog-promotions-ja-jp":916,"next-steps-ja-jp":969},{"id":4,"title":5,"authors":6,"body":8,"category":174,"date":175,"description":176,"extension":177,"externalUrl":178,"faq":178,"featured":179,"heroImage":180,"meta":181,"navigation":182,"path":183,"seo":184,"slug":188,"stem":189,"tags":190,"template":194,"updatedDate":195,"__hash__":196},"blogPosts/ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing.md","GitLab Duoを使用した自動化シリーズパート2：複雑なテスト",[7],"Byron Boots",{"type":9,"value":10,"toc":161},"minimark",[11,21,25,34,38,41,48,55,61,68,71,74,77,80,83,86,89,92,95,98,132,141,147],[12,13,14,20],"p",{},[15,16,19],"a",{"href":17,"rel":18},"https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests/",[],"GitLab Duoを使用したテスト生成","に関する3部構成シリーズの最初の記事では、コードテストを自動化する方法に焦点を当てました。この記事では、テスト生成にAIを使用する中で学んだ教訓をご紹介します。",[22,23,24],"h2",{"id":24},"直面した状況とその対処方法",[12,26,27,28,33],{},"全体的に見て、",[15,29,32],{"href":30,"rel":31},"https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/",[],"GitLab Duo","を使用してコードテストを生成した結果には満足しています。他の言語生成の場合と同様に、インポートパスを修正したり、データセット内の内容を編集したりするなど、微調整が必要な場合もありました。より複雑なケースでは、AIが提示したソリューションでは、多くの場合、コンテキストが欠けていることを念頭に置いておく必要がありました。それでは、GitLab Duoを使用して、より複雑なテスト状況にどのように対処したかを説明します。",[35,36,37],"h3",{"id":37},"既存のテストケースの更新",[12,39,40],{},"ソフトウェア製品の開発時にソフトウェア製品の開発時にはよくあることですが、既存のテストの更新が必要になる状況が発生しました。私たちは、一般的な問題に対してテスト機能全体を手動で調整するのではなく、VS CodeのGitLab Duo Chatウィンドウを最大限に活用しました。たとえば、テストをリファクタリングするために、「Please update the provided tests to use unittest rather than pytest. （日本語：提供されたテストをpytestではなくunittestを使用するように更新してください。）」とChatプロンプトを入力してから、GitLab Duoに更新してもらいたいテストを貼り付けました。",[12,42,43],{},[44,45],"img",{"alt":46,"src":47},"テスト生成の自動化","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099252/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750099252303.png",[12,49,50,53],{},[51,52],"br",{},[51,54],{},[12,56,57],{},[44,58],{"alt":59,"src":60},"pytestではなくunittestの使用をリクエストするChatプロンプト","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099252/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750099252304.png",[12,62,63,67],{},[64,65,66],"strong",{},"注","：GitLab Duoの推奨事項をコードにコピー＆ペーストしています。",[35,69,70],{"id":70},"レガシーコードのテスト作成",[12,72,73],{},"正常に動作しているとわかっていたレガシーコードのテストを作成するのも、困難な問題でした。こういった状況では、失敗したテストと一緒にエラースニペットを提供し、GitLab Duoに新しいテストを作成するようリクエストすると非常に便利でした。ターミナルウィンドウから記録された失敗とエラーをすべてコピーしてChatに貼り付け、「Please explain and fix this failing test.（日本語：この失敗しているテストを説明して修正してください。）」といったプロンプトを入力してリクエストしたところ、テストで発生した問題の概要と、問題に対処した新しいテストが生成されました。新しいテストでも失敗が何度か特定されたため、その後、複数回のリファクタリングが必要となる場合がありました。しかし、そういった場合でも、GitLab Duoのおかげで、さまざまなリファクタリングされたソリューションを迅速かつ効率的に得られたため、チーム全体とデベロッパーの効率性が向上する結果となりました。",[35,75,76],{"id":76},"複雑なコードや抽象化されたコードの処理",[12,78,79],{},"その他の例では、コードのモジュール化や複雑さにより、GitLab Duoの結果にばらつきが生じました。たとえば、GitLab Duoは、テストアプローチの違い（モックの使い方や、どのオブジェクトをモッキングするかなど）によって、成功するテストと失敗するテストを次々と生成することがありました。これに対処するため、GitLab Duoに成功したテストの例を提供し、一貫性を維持するために成功したテストのスタイルに合わせて個々のテストを1つずつ変更するようリクエストしました。また、同様のオブジェクトやタスクのテストがうまく行っているファイルをGitLab Duoに提供して、構造をミラーリングできるようにしました。",[35,81,82],{"id":82},"生成されたコードが当社の基準に準拠していることを確認",[12,84,85],{},"Pythonモジュールの開発中、GitLab Duoを活用して、モックを用いた多くのテストを生成しましたが、多くの場合、特に命名標準化に関するリファクタリングが必要となりました。こうしたケースでは、GitLab Duo Chatを活用し、どの特定のテストコンポーネントを更新するかといった手順を指示すれば、テストをリファクタリングできました。GitLab Duoにこれらの変更を行うよう指示するほうが、今まで行っていたように、テストを個別にリファクタリングするよりもはるかに高速でした。",[35,87,88],{"id":88},"対象外のテストケースへの対処",[12,90,91],{},"GitLab Duoを使用することで、当社チームが今までは検討していなかった他のテストケースのテストを生成できたため、カバレッジが向上しました。幸いなことに、GitLab Duoを使用して、これらのエッジケースに迅速かつ効率的に対処し、テストカバレッジを拡大できました。これは、当社チームにとって、開発速度の向上、および堅牢な製品開発につながる重要な付加価値となりました。",[22,93,94],{"id":94},"学んだ教訓",[12,96,97],{},"GitLab Duoをうまく活用して成功を収める中で学んだ、重要な教訓をいくつかご紹介します。",[99,100,101,108,114,120,126],"ul",{},[102,103,104,107],"li",{},[64,105,106],{},"迅速で効率的な開発とイテレーション"," - 自動テストの生成作業におけるGitLab Duoの役割は、チームの開発プロセス内での重要なアクセラレーターとなり、変更をより迅速かつ自信を持って行うことができました。",[102,109,110,113],{},[64,111,112],{},"適切なプロンプトを使用することの重要性"," - GitLab Duoを当社のユースケースで使用する際には、機械学習の最適化における重要なトピックであるプロンプトエンジニアリングに触れました。理想的な回答を得るためには、いくつかのキーワードを使用して質問を修正する必要があることもわかりました。",[102,115,116,119],{},[64,117,118],{},"基盤となるフレームワークとコードを理解する必要性"," - テストとして使用される場合であっても、製品に組み込まれるAI生成コードに関しては、どのように機能するかを理解して、適切にデバッグし、情報に基づいた変更をリクエストできるようにすることが重要です。",[102,121,122,125],{},[64,123,124],{},"望ましい最終的な状態と標準を把握しておく必要性"," - AIを使用せずに開発する際に、フォーマットやライブラリの使用に関するコーディング標準に従うのと同様、AIを使用する際も意図する結果がどのようなものであるか、どのような標準に準拠すべきであるかというビジョンを持つことが重要です。GitLab Duoは、コード標準を理解するためにコンテキストを必要とします。そのため、GitLab Duoを使用するチームメンバーは、品質やその他の期待が確実に満たされるように、出力を適切に監視することが重要です。",[102,127,128,131],{},[64,129,130],{},"GitLab Duoはすべてのテストの代わりとなるものではない"," - 自動化されたテストを生成する際は、GitLab Duoを多用していますが、他のテストや人間による監視に代わるものではありません。機能テスト、統合テストなどは、QAプロセスとソフトウェア開発ライフサイクル全体において以前として重要な役割を果たします。",[12,133,134,135,140],{},"このシリーズの次回の記事では、",[15,136,139],{"href":137,"rel":138},"https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-3-validating-testing/",[],"チームの自動テストプロセスにおけるGitLab Duoの影響を検証するために実行したテスト","と、これまでに達成した素晴らしい結果について説明します。",[12,142,143,145],{},[51,144],{},[51,146],{},[12,148,149],{},[150,151,152,153,158,160],"em",{},"監修：川瀬 洋平 ",[15,154,157],{"href":155,"rel":156},"https://gitlab.com/ykawase",[],"@ykawase",[51,159],{},"\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）",{"title":162,"searchDepth":163,"depth":163,"links":164},"",2,[165,173],{"id":24,"depth":163,"text":24,"children":166},[167,169,170,171,172],{"id":37,"depth":168,"text":37},3,{"id":70,"depth":168,"text":70},{"id":76,"depth":168,"text":76},{"id":82,"depth":168,"text":82},{"id":88,"depth":168,"text":88},{"id":94,"depth":163,"text":94},"ai","2024-12-10","コードテストが標準に準拠していることを確認するなど、GitLabチームが、GitLab DuoのAI機能を使用して、通常より複雑なテスト状況にどのように対処したかをご紹介します。","md",null,false,"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",{},true,"/ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing",{"title":5,"description":176,"ogTitle":5,"ogDescription":176,"noIndex":179,"ogImage":180,"ogUrl":185,"ogSiteName":186,"ogType":187,"canonicalUrls":185},"https://about.gitlab.com/blog/automating-with-gitlab-duo-part-2-complex-testing","https://about.gitlab.com","article","automating-with-gitlab-duo-part-2-complex-testing","ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing",[191,192,193],"AI","testing","DevSecOps platform","BlogPost","2025-05-02","-k6mewIpCK1GfBaroqMF1S8mrzFnqJaYfT-5FVXYIFU",{"logo":198,"freeTrial":203,"sales":208,"login":213,"items":218,"search":547,"minimal":580,"duo":597,"switchNav":606,"pricingDeployment":617},{"config":199},{"href":200,"dataGaName":201,"dataGaLocation":202},"/ja-jp/","gitlab logo","header",{"text":204,"config":205},"無料トライアルを開始",{"href":206,"dataGaName":207,"dataGaLocation":202},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":209,"config":210},"デモをリクエスト",{"href":211,"dataGaName":212,"dataGaLocation":202},"/ja-jp/sales/?contact-topic=request-demo","sales",{"text":214,"config":215},"サインイン",{"href":216,"dataGaName":217,"dataGaLocation":202},"https://gitlab.com/users/sign_in/","sign in",[219,248,350,355,469,525],{"text":220,"config":221,"menu":223},"プラットフォーム",{"dataNavLevelOne":222},"platform",{"type":224,"columns":225},"cards",[226,232,240],{"title":220,"description":227,"link":228},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":229,"config":230},"プラットフォームの詳細はこちら",{"href":231,"dataGaName":222,"dataGaLocation":202},"/ja-jp/platform/",{"title":233,"description":234,"link":235},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":236,"config":237},"GitLab Duoのご紹介",{"href":238,"dataGaName":239,"dataGaLocation":202},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":241,"description":242,"link":243},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":244,"config":245},"詳細はこちら",{"href":246,"dataGaName":247,"dataGaLocation":202},"/ja-jp/why-gitlab/","why gitlab",{"text":249,"left":182,"config":250,"menu":252},"製品",{"dataNavLevelOne":251},"solutions",{"type":253,"link":254,"columns":258,"feature":329},"lists",{"text":255,"config":256},"すべてのソリューションを表示",{"href":257,"dataGaName":251,"dataGaLocation":202},"/ja-jp/solutions/",[259,284,307],{"title":260,"description":261,"link":262,"items":267},"自動化","CI/CDと自動化でデプロイを加速",{"config":263},{"icon":264,"href":265,"dataGaName":266,"dataGaLocation":202},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[268,272,275,280],{"text":269,"config":270},"CI/CD",{"href":271,"dataGaLocation":202,"dataGaName":269},"/ja-jp/solutions/continuous-integration/",{"text":233,"config":273},{"href":238,"dataGaLocation":202,"dataGaName":274},"gitlab duo agent platform - product menu",{"text":276,"config":277},"ソースコード管理",{"href":278,"dataGaLocation":202,"dataGaName":279},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":281,"config":282},"自動化されたソフトウェアデリバリー",{"href":265,"dataGaLocation":202,"dataGaName":283},"Automated software delivery",{"title":285,"description":286,"link":287,"items":292},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":288},{"href":289,"dataGaName":290,"dataGaLocation":202,"icon":291},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[293,297,302],{"text":294,"config":295},"アプリケーションセキュリティテスト",{"href":289,"dataGaName":296,"dataGaLocation":202},"Application security testing",{"text":298,"config":299},"ソフトウェアサプライチェーンセキュリティ",{"href":300,"dataGaLocation":202,"dataGaName":301},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":303,"config":304},"ソフトウェアコンプライアンス",{"href":305,"dataGaName":306,"dataGaLocation":202},"/ja-jp/solutions/software-compliance/","software compliance",{"title":308,"link":309,"items":314},"測定",{"config":310},{"icon":311,"href":312,"dataGaName":313,"dataGaLocation":202},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[315,319,324],{"text":316,"config":317},"可視性と測定",{"href":312,"dataGaLocation":202,"dataGaName":318},"Visibility and Measurement",{"text":320,"config":321},"バリューストリーム管理",{"href":322,"dataGaLocation":202,"dataGaName":323},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":325,"config":326},"分析とインサイト",{"href":327,"dataGaLocation":202,"dataGaName":328},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":330,"type":253,"items":331},"GitLabが活躍する場所",[332,338,344],{"text":333,"config":334},"大企業",{"icon":335,"href":336,"dataGaLocation":202,"dataGaName":337},"Building","/ja-jp/enterprise/","enterprise",{"text":339,"config":340},"スモールビジネス",{"icon":341,"href":342,"dataGaLocation":202,"dataGaName":343},"Work","/ja-jp/small-business/","small business",{"text":345,"config":346},"公共部門",{"icon":347,"href":348,"dataGaLocation":202,"dataGaName":349},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":351,"config":352},"価格",{"href":353,"dataGaName":354,"dataGaLocation":202,"dataNavLevelOne":354},"/ja-jp/pricing/","pricing",{"text":356,"config":357,"menu":359},"関連リソース",{"dataNavLevelOne":358},"resources",{"type":253,"link":360,"columns":364,"feature":458},{"text":361,"config":362},"すべてのリソースを表示",{"href":363,"dataGaName":358,"dataGaLocation":202},"/ja-jp/resources/",[365,398,425],{"title":366,"items":367},"はじめに",[368,373,378,383,388,393],{"text":369,"config":370},"インストール",{"href":371,"dataGaName":372,"dataGaLocation":202},"/ja-jp/install/","install",{"text":374,"config":375},"クイックスタートガイド",{"href":376,"dataGaName":377,"dataGaLocation":202},"/ja-jp/get-started/","quick setup checklists",{"text":379,"config":380},"学ぶ",{"href":381,"dataGaLocation":202,"dataGaName":382},"https://university.gitlab.com/","learn",{"text":384,"config":385},"製品ドキュメント",{"href":386,"dataGaName":387,"dataGaLocation":202},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":389,"config":390},"ベストプラクティスビデオ",{"href":391,"dataGaName":392,"dataGaLocation":202},"/ja-jp/getting-started-videos/","best practice videos",{"text":394,"config":395},"インテグレーション",{"href":396,"dataGaName":397,"dataGaLocation":202},"/ja-jp/integrations/","integrations",{"title":399,"items":400},"検索する",[401,406,411,416,420],{"text":402,"config":403},"お客様成功事例",{"href":404,"dataGaName":405,"dataGaLocation":202},"/ja-jp/customers/","customer success stories",{"text":407,"config":408},"ブログ",{"href":409,"dataGaName":410,"dataGaLocation":202},"/ja-jp/blog/","blog",{"text":412,"config":413},"Demo Hub",{"href":414,"dataGaName":415,"dataGaLocation":202},"/ja-jp/demo-hub/","demo hub",{"text":417,"config":418},"The Source",{"href":419,"dataGaName":410,"dataGaLocation":202},"/ja-jp/the-source/",{"text":421,"config":422},"リモート",{"href":423,"dataGaName":424,"dataGaLocation":202},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":426,"items":427},"つなげる",[428,433,438,443,448,453],{"text":429,"config":430},"GitLabサービス",{"href":431,"dataGaName":432,"dataGaLocation":202},"/ja-jp/services/","services",{"text":434,"config":435},"コントリビュート",{"href":436,"dataGaName":437,"dataGaLocation":202},"https://contributors.gitlab.com","contribute",{"text":439,"config":440},"コミュニティ",{"href":441,"dataGaName":442,"dataGaLocation":202},"/community/","community",{"text":444,"config":445},"フォーラム",{"href":446,"dataGaName":447,"dataGaLocation":202},"https://forum.gitlab.com/","forum",{"text":449,"config":450},"イベント",{"href":451,"dataGaName":452,"dataGaLocation":202},"/events/","events",{"text":454,"config":455},"パートナー",{"href":456,"dataGaName":457,"dataGaLocation":202},"/ja-jp/partners/","partners",{"config":459,"title":462,"text":463,"link":464},{"background":460,"textColor":461},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":465,"config":466},"最新情報を読む",{"href":467,"dataGaName":468,"dataGaLocation":202},"/ja-jp/whats-new/","whats new",{"text":470,"config":471,"menu":473},"企業情報",{"dataNavLevelOne":472},"company",{"type":253,"columns":474},[475],{"items":476},[477,482,488,490,495,500,505,510,515,520],{"text":478,"config":479},"GitLabについて",{"href":480,"dataGaName":481,"dataGaLocation":202},"/ja-jp/company/","about",{"text":483,"config":484,"footerGa":487},"採用情報",{"href":485,"dataGaName":486,"dataGaLocation":202},"/jobs/","jobs",{"dataGaName":486},{"text":449,"config":489},{"href":451,"dataGaName":452,"dataGaLocation":202},{"text":491,"config":492},"経営陣",{"href":493,"dataGaName":494,"dataGaLocation":202},"/company/team/e-group/","leadership",{"text":496,"config":497},"ハンドブック",{"href":498,"dataGaName":499,"dataGaLocation":202},"https://handbook.gitlab.com/","handbook",{"text":501,"config":502},"投資家向け情報",{"href":503,"dataGaName":504,"dataGaLocation":202},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":506,"config":507},"トラストセンター",{"href":508,"dataGaName":509,"dataGaLocation":202},"/ja-jp/security/","trust center",{"text":511,"config":512},"AI Transparency Center",{"href":513,"dataGaName":514,"dataGaLocation":202},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":516,"config":517},"ニュースレター",{"href":518,"dataGaName":519,"dataGaLocation":202},"/company/contact/#contact-forms","newsletter",{"text":521,"config":522},"プレス",{"href":523,"dataGaName":524,"dataGaLocation":202},"/press/","press",{"text":526,"config":527,"menu":528},"お問い合わせ",{"dataNavLevelOne":472},{"type":253,"columns":529},[530],{"items":531},[532,537,542],{"text":533,"config":534},"お問い合わせはこちら",{"href":535,"dataGaName":536,"dataGaLocation":202},"/ja-jp/sales/","talk to sales",{"text":538,"config":539},"サポートを受ける",{"href":540,"dataGaName":541,"dataGaLocation":202},"https://support.gitlab.com/hc/en-us","support portal",{"text":543,"config":544},"カスタマーポータル",{"href":545,"dataGaName":546,"dataGaLocation":202},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":548,"login":549,"suggestions":556},"閉じる",{"text":550,"link":551},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":552,"config":553},"GitLab.com",{"href":216,"dataGaName":554,"dataGaLocation":555},"search login","search",{"text":557,"default":558},"提案",[559,561,566,568,572,576],{"text":233,"config":560},{"href":238,"dataGaName":233,"dataGaLocation":555},{"text":562,"config":563},"コード提案（AI）",{"href":564,"dataGaName":565,"dataGaLocation":555},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":269,"config":567},{"href":271,"dataGaName":269,"dataGaLocation":555},{"text":569,"config":570},"GitLab on AWS",{"href":571,"dataGaName":569,"dataGaLocation":555},"/ja-jp/partners/technology-partners/aws/",{"text":573,"config":574},"GitLab on Google Cloud",{"href":575,"dataGaName":573,"dataGaLocation":555},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":577,"config":578},"GitLabを選ぶ理由",{"href":246,"dataGaName":579,"dataGaLocation":555},"Why GitLab?",{"freeTrial":581,"mobileIcon":585,"desktopIcon":590,"secondaryButton":593},{"text":204,"config":582},{"href":583,"dataGaName":207,"dataGaLocation":584},"https://gitlab.com/-/trials/new/","nav",{"altText":586,"config":587},"GitLabアイコン",{"src":588,"dataGaName":589,"dataGaLocation":584},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":586,"config":591},{"src":592,"dataGaName":589,"dataGaLocation":584},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":366,"config":594},{"href":595,"dataGaName":596,"dataGaLocation":584},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":598,"mobileIcon":602,"desktopIcon":604},{"text":599,"config":600},"GitLab Duoの詳細について",{"href":238,"dataGaName":601,"dataGaLocation":584},"gitlab duo",{"altText":586,"config":603},{"src":588,"dataGaName":589,"dataGaLocation":584},{"altText":586,"config":605},{"src":592,"dataGaName":589,"dataGaLocation":584},{"button":607,"mobileIcon":612,"desktopIcon":614},{"text":608,"config":609},"/switch",{"href":610,"dataGaName":611,"dataGaLocation":584},"#contact","switch",{"altText":586,"config":613},{"src":588,"dataGaName":589,"dataGaLocation":584},{"altText":586,"config":615},{"src":616,"dataGaName":589,"dataGaLocation":584},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":618,"mobileIcon":623,"desktopIcon":625},{"text":619,"config":620},"料金ページに戻る",{"href":353,"dataGaName":621,"dataGaLocation":584,"icon":622},"back to pricing","GoBack",{"altText":586,"config":624},{"src":588,"dataGaName":589,"dataGaLocation":584},{"altText":586,"config":626},{"src":592,"dataGaName":589,"dataGaLocation":584},{"title":628,"button":629,"config":633},"GitLab Orbitが登場: AIエージェントのためのコンテキストレイヤー",{"text":244,"config":630},{"href":631,"dataGaName":632,"dataGaLocation":202},"/ja-jp/gitlab-orbit/","orbit",{"layout":634,"disabled":179},"release",{"data":636},{"text":637,"source":638,"edit":644,"contribute":649,"config":654,"items":659,"minimal":868},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":639,"config":640},"ページのソースを表示",{"href":641,"dataGaName":642,"dataGaLocation":643},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":645,"config":646},"このページを編集",{"href":647,"dataGaName":648,"dataGaLocation":643},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":650,"config":651},"ご協力をお願いします",{"href":652,"dataGaName":653,"dataGaLocation":643},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":655,"facebook":656,"youtube":657,"linkedin":658},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[660,705,758,801,835],{"title":351,"links":661,"subMenu":676},[662,666,671],{"text":663,"config":664},"プランの表示",{"href":353,"dataGaName":665,"dataGaLocation":643},"view plans",{"text":667,"config":668},"Premiumを選ぶ理由",{"href":669,"dataGaName":670,"dataGaLocation":643},"/ja-jp/pricing/premium/","why premium",{"text":672,"config":673},"Ultimateを選ぶ理由",{"href":674,"dataGaName":675,"dataGaLocation":643},"/ja-jp/pricing/ultimate/","why ultimate",[677],{"title":526,"links":678},[679,681,683,685,690,695,700],{"text":526,"config":680},{"href":535,"dataGaName":212,"dataGaLocation":643},{"text":538,"config":682},{"href":540,"dataGaName":541,"dataGaLocation":643},{"text":543,"config":684},{"href":545,"dataGaName":546,"dataGaLocation":643},{"text":686,"config":687},"ステータス",{"href":688,"dataGaName":689,"dataGaLocation":643},"https://status.gitlab.com/","status",{"text":691,"config":692},"利用規約",{"href":693,"dataGaName":694,"dataGaLocation":643},"/terms/","terms of use",{"text":696,"config":697},"プライバシーに関する声明",{"href":698,"dataGaName":699,"dataGaLocation":643},"/ja-jp/privacy/","privacy statement",{"text":701,"config":702},"Cookie 優先設定",{"dataGaName":703,"dataGaLocation":643,"id":704,"isOneTrustButton":182},"cookie preferences","ot-sdk-btn",{"title":249,"links":706,"subMenu":715},[707,711],{"text":708,"config":709},"DevSecOpsプラットフォーム",{"href":231,"dataGaName":710,"dataGaLocation":643},"devsecops platform",{"text":712,"config":713},"AI支援開発",{"href":238,"dataGaName":714,"dataGaLocation":643},"ai-assisted development",[716],{"title":717,"links":718},"トピック",[719,723,728,733,738,743,748,753],{"text":269,"config":720},{"href":721,"dataGaName":722,"dataGaLocation":643},"/ja-jp/topics/ci-cd/","cicd",{"text":724,"config":725},"GitOps",{"href":726,"dataGaName":727,"dataGaLocation":643},"/ja-jp/topics/gitops/","gitops",{"text":729,"config":730},"DevOps",{"href":731,"dataGaName":732,"dataGaLocation":643},"/ja-jp/topics/devops/","devops",{"text":734,"config":735},"バージョン管理",{"href":736,"dataGaName":737,"dataGaLocation":643},"/ja-jp/topics/version-control/","version control",{"text":739,"config":740},"DevSecOps",{"href":741,"dataGaName":742,"dataGaLocation":643},"/ja-jp/topics/devsecops/","devsecops",{"text":744,"config":745},"クラウドネイティブ",{"href":746,"dataGaName":747,"dataGaLocation":643},"/ja-jp/topics/cloud-native/","cloud native",{"text":749,"config":750},"コーディングのためのAI",{"href":751,"dataGaName":752,"dataGaLocation":643},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":754,"config":755},"エージェント型AI",{"href":756,"dataGaName":757,"dataGaLocation":643},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":759,"links":760},"ソリューション",[761,764,766,771,775,778,781,784,786,788,791,796],{"text":294,"config":762},{"href":289,"dataGaName":763,"dataGaLocation":643},"Application Security Testing",{"text":281,"config":765},{"href":265,"dataGaName":266,"dataGaLocation":643},{"text":767,"config":768},"アジャイル開発",{"href":769,"dataGaName":770,"dataGaLocation":643},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":772,"config":773},"SCM",{"href":278,"dataGaName":774,"dataGaLocation":643},"source code management",{"text":269,"config":776},{"href":271,"dataGaName":777,"dataGaLocation":643},"continuous integration & delivery",{"text":320,"config":779},{"href":322,"dataGaName":780,"dataGaLocation":643},"value stream management",{"text":724,"config":782},{"href":783,"dataGaName":727,"dataGaLocation":643},"/ja-jp/solutions/gitops/",{"text":333,"config":785},{"href":336,"dataGaName":337,"dataGaLocation":643},{"text":339,"config":787},{"href":342,"dataGaName":343,"dataGaLocation":643},{"text":789,"config":790},"公共機関",{"href":348,"dataGaName":349,"dataGaLocation":643},{"text":792,"config":793},"教育",{"href":794,"dataGaName":795,"dataGaLocation":643},"/ja-jp/solutions/education/","education",{"text":797,"config":798},"金融サービス",{"href":799,"dataGaName":800,"dataGaLocation":643},"/ja-jp/solutions/finance/","financial services",{"title":802,"links":803},"リソース",[804,806,808,810,814,816,819,821,823,825,827,829,831,833],{"text":369,"config":805},{"href":371,"dataGaName":372,"dataGaLocation":643},{"text":374,"config":807},{"href":376,"dataGaName":377,"dataGaLocation":643},{"text":379,"config":809},{"href":381,"dataGaName":382,"dataGaLocation":643},{"text":384,"config":811},{"href":812,"dataGaName":813,"dataGaLocation":643},"https://docs.gitlab.com/ja-jp","docs",{"text":407,"config":815},{"href":409,"dataGaName":410,"dataGaLocation":643},{"text":817,"config":818},"最新リリース",{"href":467,"dataGaName":468,"dataGaLocation":643},{"text":402,"config":820},{"href":404,"dataGaName":405,"dataGaLocation":643},{"text":421,"config":822},{"href":423,"dataGaName":424,"dataGaLocation":643},{"text":429,"config":824},{"href":431,"dataGaName":432,"dataGaLocation":643},{"text":434,"config":826},{"href":436,"dataGaName":437,"dataGaLocation":643},{"text":439,"config":828},{"href":441,"dataGaName":442,"dataGaLocation":643},{"text":444,"config":830},{"href":446,"dataGaName":447,"dataGaLocation":643},{"text":449,"config":832},{"href":451,"dataGaName":452,"dataGaLocation":643},{"text":454,"config":834},{"href":456,"dataGaName":457,"dataGaLocation":643},{"title":836,"links":837},"会社情報",[838,840,842,844,846,848,852,857,859,861,863],{"text":478,"config":839},{"href":480,"dataGaName":472,"dataGaLocation":643},{"text":483,"config":841},{"href":485,"dataGaName":486,"dataGaLocation":643},{"text":491,"config":843},{"href":493,"dataGaName":494,"dataGaLocation":643},{"text":496,"config":845},{"href":498,"dataGaName":499,"dataGaLocation":643},{"text":501,"config":847},{"href":503,"dataGaName":504,"dataGaLocation":643},{"text":849,"config":850},"Sustainability",{"href":851,"dataGaName":849,"dataGaLocation":643},"/sustainability/",{"text":853,"config":854},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":855,"dataGaName":856,"dataGaLocation":643},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":506,"config":858},{"href":508,"dataGaName":509,"dataGaLocation":643},{"text":516,"config":860},{"href":518,"dataGaName":519,"dataGaLocation":643},{"text":521,"config":862},{"href":523,"dataGaName":524,"dataGaLocation":643},{"text":864,"config":865},"現代奴隷制の透明性に関する声明",{"href":866,"dataGaName":867,"dataGaLocation":643},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":869},[870,872,875],{"text":691,"config":871},{"href":693,"dataGaName":694,"dataGaLocation":643},{"text":873,"config":874},"Cookieの設定",{"dataGaName":703,"dataGaLocation":643,"id":704,"isOneTrustButton":182},{"text":696,"config":876},{"href":698,"dataGaName":699,"dataGaLocation":643},[878],{"id":879,"title":7,"body":178,"config":880,"content":882,"description":178,"extension":886,"meta":887,"navigation":182,"path":888,"seo":889,"stem":890,"__hash__":891},"blogAuthors/en-us/blog/authors/byron-boots.yml",{"template":881},"BlogAuthor",{"name":7,"config":883},{"headshot":884,"ctfId":885},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662281/Blog/Author%20Headshots/byron_boots_headshot.png","7ezFbRYF2Cu5JTBQXRp7mw","yml",{},"/en-us/blog/authors/byron-boots",{},"en-us/blog/authors/byron-boots","Qu4h1SMW7Bb32A8HZlFYMusWH2fvwt-ZKOKFRiZfm5s",[893,901,908],{"title":894,"description":895,"heroImage":896,"category":174,"date":897,"authors":898,"slug":900,"externalUrl":178},"Loop Engineeringの実践方法：GitLab × Claude Codeでの実装例","GitLabとClaude Codeで実践するLoop Engineeringの実装例をご紹介。AIエージェントを自律稼働させるcron起動・Skills活用・ラベルベースのフローと、必須のガードレール設計を解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785215335/oevhcbrbev1zyfubdfxz.jpg","2026-07-31",[899],"Issei Hamada, Sony Biz Networks Corporation","loop-engineering-gitlab-claude-code",{"title":902,"description":903,"heroImage":904,"category":174,"date":897,"authors":905,"slug":907,"externalUrl":178},"エージェント型AI、MCP、AIコードアシスタントを統制する方法","AIエージェントは、各ステップで人によるレビューを介さずに、コードの記述、プッシュ、デプロイを行うことができます。アクセス、権限、監査証跡を統制する実践的なフレームワークを解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png",[906],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":909,"description":910,"heroImage":911,"category":174,"date":912,"authors":913,"slug":915,"externalUrl":178},"Claude Opus 5、GitLabで最難関タスクに挑む","AnthropicのClaude Opus 5がGitLab Duo Agent Platformで利用可能になりました。速度を犠牲にすることなく、より深い推論力を提供します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[914],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":917},[918,931,943,955],{"id":919,"categories":920,"header":921,"text":922,"button":923,"image":928},"ai-modernization",[174],"AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":924,"config":925},"AI成熟度スコアを確認する",{"href":926,"dataGaName":927,"dataGaLocation":410},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":929},{"src":930},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":932,"categories":933,"header":935,"text":922,"button":936,"image":940},"devops-modernization",[934,742],"product","単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":937,"config":938},"DevOps成熟度スコアを確認しましょう",{"href":939,"dataGaName":927,"dataGaLocation":410},"/ja-jp/assessments/devops-modernization-assessment/",{"config":941},{"src":942},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":944,"categories":945,"header":947,"text":922,"button":948,"image":952},"security-modernization",[946],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":949,"config":950},"セキュリティ成熟度スコアを確認しましょう",{"href":951,"dataGaName":927,"dataGaLocation":410},"/ja-jp/assessments/security-modernization-assessment/",{"config":953},{"src":954},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":956,"paths":957,"header":960,"text":961,"button":962,"image":967},"github-azure-migration",[958,959],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":963,"config":964},"GitLabとGitHubの比較を見る",{"href":965,"dataGaName":966,"dataGaLocation":410},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":968},{"src":942},{"header":970,"blurb":971,"button":972,"secondaryButton":976},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":204,"config":973},{"href":974,"dataGaName":207,"dataGaLocation":975},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":526,"config":977},{"href":535,"dataGaName":212,"dataGaLocation":975},1786803781990]