Content last updated 2026-07-15

テスト

⚠️ 注意:DevOps の変革の一環として、テストはもはや中央管理された機能ではありません。機能チーム(およびモノリス)がテストのライフサイクル全体を所有し、リリース準備の判断はチーム内で行います。Developer Experience(DevEx)はガイダンスとスキル向上を提供し、共有テストインフラストラクチャを所有します。最後の手段としてのエスカレーションにのみ対応します。旧 Test Governance グループは廃止され、Software Engineer in Test(SET)の役割は Backend Engineer に移行し、Pipeline DRI プロセスは廃止されつつあります。このセクションの一部のページは、このモデルを完全に反映するため、引き続き改訂中です。

テストガイドへようこそ。このセクションのページでは、私たちの開発ワークフローで使用されるテストの実践、方法論、およびツールに関する情報を提供しています。 効果的なテストは、コード品質の維持、リグレッションの防止、そしてソフトウェアが要件を満たしていることを確認するために不可欠です。

GitLabにおけるテストの紹介

この紹介は新しいエンジニアに対して、テスト哲学、実践、および品質エンジニアリングの取り組みに効果的に貢献するために利用できるサポートの概要を提供しています。

テストの方法

テスト哲学

GitLabでは、品質は全員の責任であり、テストは別のフェーズとしてではなく、開発プロセスのあらゆる段階に統合されていると考えています。私たちのアプローチは、業界のベストプラクティスとGitLabのコアバリューに基づいています。

テストピラミッドアプローチ: 私たちはテストピラミッドの概念を支持しており、基盤には高速で信頼性の高いテスト(ユニットテスト)を優先し、上位レベルではより少なく、より焦点を絞ったテスト(統合テストとエンドツーエンドテスト)を使用しています。このアプローチにより、次のものが得られます。

  • 開発中の迅速なフィードバック
  • リグレッションの確実な検出
  • CI/CDリソースの効率的な使用
  • 維持可能なテストスイート

戦略的なテストフォーカス: 私たちのテストは、リスク分析とテスト戦略への入力を考慮し、重要なユーザージャーニーと影響の大きい領域にテスト作業を集中させるよう努めています。ユーザーへの影響とビジネスニーズに基づいて、テスト作業への投資先に関する戦略的な決定を行います。

自動化された品質チェック: テストは、外部チームによる承認ではなく自動化された仕組みとして、プロダクト開発ワークフロー全体に組み込まれています。

テストの所有権モデル

チームがテストを所有します: すべての機能チームとモノリスは、テスト設計、作成、保守、トリアージを含むエンドツーエンド(E2E)を含むすべてのレベルのテストライフサイクル全体を所有します。品質は全員の責任であり、チームに代わって E2E テストを含むテストの作成、所有、保守を行う中央チームはありません。テストを所有することには次が含まれます。

  • 新機能のユニットテストの作成
  • APIエンドポイントとサービスインタラクションの統合テストの追加
  • 重要なユーザーフローに対するエンドツーエンドテストの作成と保守
  • feature_category 内のフレーキーまたは古くなったテストの保守、トリアージ、修正

リリース準備はチームが判断します: リリースを GitLab.com に展開できる状態かどうかの判断は、所有チーム内で行われます。外部チームが展開を承認することはありません。自動化されたパイプラインチェックはその判断を支援しますが、置き換えるものではありません。

Developer Experience が提供するもの: DevEx は、チームに代わってテストするのではなく、チームを支援します。DevEx は次を担います。

  1. チームが効果的にテストできるよう、ガイダンス、ベストプラクティス、スキル向上を提供する
  2. テスト環境、フレームワーク、ツール、ダッシュボード、E2E パイプラインなどの共有テストインフラストラクチャを所有する
  3. 深い専門知識を真に必要とする重大な問題に対する最後の手段としてのエスカレーションに対応する。何かが壊れたときの標準的な連絡先ではない

テストのタイミング

開発ワークフローへの統合

早期かつ頻繁なテスト: 機能開発と並行してテストを書くことを奨励しており、明確な要件理解、より良いコード設計、最初から包括的なカバレッジを確保します。

継続的インテグレーション: すべてのマージリクエストが自動テストをトリガーします。

  • ユニットテストと統合テストはすべてのプッシュで実行されます
  • 機能テストはUI変更に対して実行されます
  • パフォーマンステストは重要なパスを検証します
  • セキュリティスキャンが脆弱性を確認します
  • 重要なユーザージャーニーのエンドツーエンドテスト

リリースとデプロイのテスト

デプロイ前の検証: コードが本番環境に到達する前に、自動化された仕組みが所有チームにシグナルを提供します。リリースの判断は引き続きチームが行います:

  • スモークテストが基本的な機能を確認し、staging-canary で失敗するとデプロイパイプラインが自動的にブロックされます
  • パフォーマンステストが許容可能な応答時間を確保します
  • エンドツーエンドテストが重要なユーザージャーニーを検証します
  • カナリアデプロイでモニタリングを伴う段階的なロールアウトが可能です

デプロイ後のモニタリング: テストはデプロイで終わりません。デプロイ後のモニタリングも以下を含んで行われます。

利用可能なサポート

テストのサポートを得る方法

ガイダンスを得る: チームがテストを所有しますが、すべてを一人で考える必要はありません。ガイダンスやベストプラクティスについては、Developer Experience の #s_developer_experience に連絡してください。DevEx は、テストやトリアージの所有者ではなく、ガイダンスと深い専門知識を必要とする重大な問題のためのリソースとして扱ってください。

Developer Experienceの部門

Developer Experience は、テストインフラストラクチャ、ツール、フレームワークを提供し、チームが効果的にテストを所有できるようガイダンスとスキル向上も提供します。これには次が含まれます。

  • テストパイプラインの最適化
  • テスト自動化ライブラリとユーティリティ
  • CI/CDテストインフラストラクチャ
  • パフォーマンステスト機能
  • テスト戦略、カバレッジ、フレーキーまたは複雑なテストのデバッグに関するガイダンス

チームはテストの作成、失敗のトリアージ、リリース準備の判断という日常業務を所有します。DevEx は、深い専門知識を真に必要とする重大なケースに対する最後の手段としてのエスカレーションです。

オンコールサポート: エンジニアリングチームはインシデント管理のローテーションに参加し、本番環境の問題への迅速な対応を確保します

セルフサービスリソース

ドキュメントとガイド

テストの健全性とパイプラインの安定性

GitLabエンドツーエンドテスト概要(動画)

時間: 約30分 レベル: 初級から中級

この動画では以下を扱っています:

さらなる読み物

コミュニティとコミュニケーション

  • テストに関する質問やディスカッションには、#s_developer_experience Slack チャンネルを使用してください

ツールと自動化

  • 一般的なシナリオのテストジェネレーターとテンプレート
  • IssueとMRのトリアージのための自動化ワークフローツール
  • テストベストプラクティスを含むCI/CDパイプラインテンプレート
  • パフォーマンスとカバレッジのモニタリングダッシュボード

詳細な技術実装のガイダンスについては、包括的な開発テストガイドを参照してください。 ガイダンスについては、Developer Experience の #s_developer_experience に連絡してください。


GitLab テスト環境カタログ
このページは .com、セルフマネージド、Dedicated プラットフォーム向けに GitLab で利用可能なテスト環境のカタログを提供します。 概要 このカタログは GitLab 全体で使用される …
Developer Experience オンコールローテーション
Developer Experience は、EM が主導するインシデント管理オンコールローテーションを運営しています。パイプライントリアージは機能チームが所有し、中央集約型の DevEx Pipeline DRI ローテーションは廃止されました。
Distributionグループのテストプラットフォーム
概要 このページの目的は、Distributionグループにおける既存の品質エンジニアリング活動を文書化することです。 ダッシュボード QE Distributionダッシュボード - 品質エンジニア …
Duo を使ったテスト失敗とライブ Issue のデバッグ
MR とライブ環境 E2E テストパイプラインにおけるテスト失敗の診断と修正に Duo を使用するための簡潔なガイド。
E2Eテスト失敗 Issue デバッグガイド
プロダクトエンジニア向けのE2Eテスト失敗 Issue デバッグ簡易ガイド
テスト検疫プロセス
GitLab のテスト検疫プロセスの完全ガイド
パイプライントリアージ
GitLab の E2E パイプライントリアージプロセスの概要
エンドツーエンドパイプラインモニタリング
E2E モニタリングツールと実践の概要
モジュラーフィーチャー向けのパフォーマンステスト
モジュラーフィーチャーサービス向けに、シフトレフトでの回帰検出と AI 支援分析を可能にする、コントラクトベースのパフォーマンステストアプローチ
Risk Mapping
リスクと緩和計画への戦略的アプローチを構築する。
フレーキーテスト
はじめに このページでは、フレーキーテストの検出、レポート、および管理のためのGitLabの組織的なプロセスについて説明します。フレーキーテストのデバッグと修正に関する技術的なガイダンスについては、不 …
PREP パフォーマンスメトリクスガイド
PREP パフォーマンスメトリクスガイド このガイドは、PREP(プラットフォームレディネス有効化プロセス)レディネスプロセスの一環として、チームが機能のパフォーマンスメトリクスを特定・測定するのに役 …
GitLab パフォーマンステストツール選択ガイド
概要 パフォーマンステストは、システムのパフォーマンス特性を評価するためのさまざまなアプローチを含む広い分野です。負荷テストはパフォーマンステストと同義語と見なされることが多いですが、パフォーマンステ …
セルフサービスパフォーマンスリグレッションテスト
チームが独自にパフォーマンスリグレッションテストを実行するためのガイド
デプロイワークフロー
GitLabのデプロイワークフロー 以下の図は、開発者のコミットからGitLab.comへの本番デプロイおよびセルフマネージドリリースまでの完全なデプロイワークフローを示しています。 graph TB …
オペレーショナル検証
概要 セルフマネージド、Dedicated、SaaS の間で、デプロイが必要な大量の GitLab インスタンス(テナントとセル)が実行されることになります。デプロイするたびに、デプロイが成功してイン …
テストカバレッジ
Test Platform 部門は特定のシナリオのテストをサポートするカバレッジを有しています。
GitLab におけるオブザーバビリティベースのパフォーマンステスト
概要 オブザーバビリティベースのパフォーマンステストは、包括的なインストルメンテーションとリアルタイムデータ収集を通じてシステムパフォーマンスを理解するためのプロアクティブなアプローチです。特定のテス …