テスト

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

GitLabにおけるテストの紹介

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

テストの方法

テスト哲学

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

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

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

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

品質ゲート: テストはプロダクト開発ワークフロー全体に組み込まれています。

テストの所有権モデル

全員がテストする: 専任のテストガバナンスチームとより広範なDeveloper Experienceの部門がありますが、すべてのプロダクトエンジニアリングチームが自分たちの機能のテストを作成し、維持する責任があります。Developer Experienceは、以下を含む包括的なテストカバレッジを作成することでエンジニアをサポートするために存在します。

  • 新機能のユニットテストの作成
  • APIエンドポイントとサービスインタラクションの統合テストの追加
  • 重要なユーザーフローのエンドツーエンドテストカバレッジへの貢献
  • フレーキーまたは古くなったテストの維持と修正

テストガバナンスチームのサポート: テストガバナンスチームは以下を提供します。

テストのタイミング

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

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

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

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

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

デプロイ前の検証: コードが本番環境に到達する前に:

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

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

利用可能なサポート

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

ヘルプリクエストプロセス: テストのサポートやガイダンスが必要な場合は、確立されたリクエストプロセスを使用してください。

  • テストサポートテンプレートを使用してIssueを作成する
  • テストの課題や要件についてのコンテキストを含める
  • 定義されたSLAの時間枠内での応答を期待する

Developer Experienceの部門

Developer Experienceチーム: 以下を含むテストインフラストラクチャ、ツール、フレームワークを提供します。

  • テストパイプラインの最適化
  • テスト自動化ライブラリとユーティリティ
  • CI/CDテストインフラストラクチャ
  • パフォーマンステスト機能

テストガバナンスチーム: 特定のプロダクト領域を以下でサポートします。

  • テスト戦略のガイダンス
  • 複雑なテストシナリオの設計
  • フレーキーテストの調査と解決
  • テストカバレッジの分析と推奨事項

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

セルフサービスリソース

ドキュメントとガイド

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

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

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

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

さらなる読み物

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

  • テストに焦点を当てたSlackチャンネル(質問とディスカッション用): #g_test_governance と、より広い #s_developer_experience

ツールと自動化

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

詳細な技術実装のガイダンスについては、包括的な開発テストガイドを参照してください。 テストの即時サポートについては、ヘルプリクエストプロセスを使用してください。


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