--- title: Cucumber 調査レポート tool_name: Cucumber tool_reading: キューカンバー category: E2Eテストフレームワーク developer: The Cucumber Open Source Project official_site: https://cucumber.io/ date: '2025-10-19' last_updated: '2026-10-15' tags: - BDD - E2Eテスト - オープンソース - テスト自動化 description: 自然言語で記述された仕様書を基に、自動化された受け入れテストを実行するためのオープンソースツール。BDD(振る舞い駆動開発)をサポートし、チーム内のコラボレーションを促進する。 quick_summary: has_free_plan: true is_oss: true starting_price: 無料 target_users: - 開発者 - QAエンジニア - プロダクトマネージャー latest_highlight: 2026年10月にv13.3.0をリリースし、Data tableとDoc stringの同時使用をサポート update_frequency: 高 evaluation: score: 83 base_score: 70 plus_points: - point: 8 reason: BDDの思想を強力にサポートし、チームのコラボレーションを促進する独自の価値を持つ - point: 5 reason: 主要なプログラミング言語を幅広くサポートし、多くの開発環境に導入可能 - point: 5 reason: 活発なコミュニティによって開発が継続されているオープンソースプロジェクトである minus_points: - point: -3 reason: BDDの概念とGherkinの習熟に一定の学習コストが必要 - point: -2 reason: UIテストと組み合わせた際の実行速度や、大規模プロジェクトでのメンテナンス性が課題となる場合がある summary: チームのコラボレーションを促進するBDDツールとして非常に強力だが、導入には学習コストと文化の醸成が必要。 links: github: https://github.com/cucumber documentation: https://cucumber.io/docs relationships: related_tools: - Selenium - Playwright - Robot Framework - Appium - Karate - Gauge - Allure Report --- # **Cucumber 調査レポート** ## **1. 基本情報** * **ツール名**: Cucumber * **ツールの読み方**: キューカンバー * **開発元**: The Cucumber Open Source Project * **公式サイト**: [https://cucumber.io/](https://cucumber.io/) * **関連リンク**: * GitHub: [https://github.com/cucumber](https://github.com/cucumber) * ドキュメント: [https://cucumber.io/docs](https://cucumber.io/docs) * **カテゴリ**: テスト/QA * **概要**: Cucumberは、自然言語(Gherkin)で記述された仕様書を基に、自動化された受け入れテストを実行するためのコミュニティ主導のオープンソースツールです。2024年12月にSmartBear社からコミュニティへ所有権が移管されました。ビジネス側と開発側のコミュニケーションを円滑にし、共通の理解(生きたドキュメント)を促進するBDD(振る舞い駆動開発)のプラクティスを支援します。 ## **2. 目的と主な利用シーン** * **解決する課題**: ソフトウェア開発における、ビジネス要求と技術的な実装の間のギャップを埋めること。専門家でない関係者でも理解できる「生きたドキュメント」として機能し、仕様の認識齟齬を防ぎます。 * **想定利用者**: 開発者、QAエンジニア、プロダクトマネージャー、ビジネスアナリストなど、プロジェクトに関わるすべてのステークホルダー。 * **利用シーン**: * WebアプリケーションやAPIの受け入れテストの自動化 * アジャイル開発プロセスにおける、ユーザーストーリーの振る舞いの定義と検証 * チーム横断での仕様確認と合意形成 ## **3. 主要機能** * **Gherkin (ガーキン)**: `Given-When-Then`といったキーワードを用いて、振る舞いを記述するための平易な構文。技術者でないメンバーもテストシナリオを読み書きできます。 * **ステップ定義**: Gherkinで記述された各ステップ(文章)と、それを実行するプログラミングコード(Java, JavaScript, Rubyなど)を関連付ける機能。 * **クロスプラットフォーム対応**: Java, JavaScript, Ruby, Go, .NETなど、24以上の多様なプログラミング言語に対応しています。 * **外部ツール連携**: SeleniumやAppiumなどのUIテスト自動化ツールと連携し、実際のブラウザやモバイルアプリを操作するテストを記述できます。 * **レポート機能**: テスト結果をHTMLやJSON形式で出力し、実行結果を可視化します。 * **フック**: テストシナリオの実行前後(Before/After)に特定の処理を挟むことができ、テストデータのセットアップやクリーンアップに利用されます。 ## **4. 動作原理・システム構成** * **アーキテクチャ**: ローカル実行型のテスト自動化フレームワーク(CLIツール) * **主要コンポーネントとデータフロー**: 1. テスト実行者がコマンドラインでCucumberを実行。 2. Gherkinパーサーが`.feature`ファイルを解析。 3. 各ステップ(Given/When/Then)にマッピングされたステップ定義(コード)を呼び出し実行。 4. その際、内部または外部のブラウザ自動化ツール(Selenium/Playwrightなど)と連携して実際のアプリケーション操作を実施。 5. 実行結果を収集し、レポートを生成。 ```mermaid graph TD A[テスト実行者] -->|CLIコマンド実行| B(Cucumber Core) B -->|読み込み・解析| C[.feature ファイル Gherkin] B -->|マッピング| D[ステップ定義 Java/JS/Ruby等] D -->|操作| E[ブラウザ自動化 Selenium/Playwright等] E -->|テスト| F[テスト対象アプリケーション] B -->|出力| G[テスト結果レポート] ``` * **特筆すべき要素技術**: * 正規表現やCucumber Expressionsを用いたステップ定義と自然言語のマッピング * テスト実行のフック機能(Before/After)による柔軟なセットアップ/クリーンアップ ## **5. 開始手順・セットアップ** * **前提条件**: * Node.js (JavaScript版の場合)、Java (JVM版の場合) などのランタイム * テスト対象プロジェクトのセットアップ * **インストール/導入**: ```bash # JavaScript (Node.js) の場合 npm install --save-dev @cucumber/cucumber ``` * **初期設定**: * `cucumber.js` (または `cucumber.json`) 設定ファイルを作成し、テストファイルのパスなどを指定します。 * **クイックスタート**: 1. `.feature` ファイルを作成し、Gherkinでシナリオを記述。 2. ステップ定義ファイル (`.js` や `.java`) を作成し、各ステップの実装を記述。 3. テストを実行: ```bash npx cucumber-js ``` ## **6. 特徴・強み (Pros)** * **コミュニケーションの促進**: 自然言語でテストを記述するため、ビジネス側と開発側の認識合わせが容易になり、コラボレーションが活性化します。 * **生きたドキュメント**: テストシナリオがそのまま仕様書として機能し、コードの振る舞いと常に一致するため、ドキュメントが陳腐化しません。 * **振る舞いへの集中**: 「どのように実装するか」ではなく「ソフトウェアがどのように振る舞うべきか」に焦点を当てる文化を醸成します。 * **ステップの再利用性**: 一度定義したステップ定義は、他の多くのシナリオで再利用することができ、テスト作成の効率が向上します。 ## **7. 弱み・注意点 (Cons)** * **学習コスト**: BDDの概念やGherkinの記述、質の高いシナリオ設計には一定の習熟が必要です。 * **メンテナンスコスト**: UI変更など仕様変更が発生した場合、Gherkinとステップ定義の両方を修正する必要があり、大規模プロジェクトでは複雑化する可能性があります。 * **テスト実行速度**: UIテストと組み合わせる場合、ユニットテストなどに比べて実行に時間がかかる傾向があります。 * **日本語対応**: 公式ドキュメントやコミュニティサポートは英語が中心です。日本語の情報は限定的となります。ただし、Gherkin自体は日本語で記述可能です(`# language: ja` を指定)。 ## **8. 料金プラン** Cucumberのコア機能はすべてオープンソースであり、無料で利用可能です。プロジェクトはコミュニティからの寄付や企業スポンサーによって支えられています。 | プラン名 | 料金 | 主な特徴 | |---------|------|---------| | **オープンソース** | 無料 | 全てのコア機能を利用可能。商用サポートなし。 | * **課金体系**: なし * **無料トライアル**: なし (常に無料) * **旧有料プラン**: 以前SmartBear社によって提供されていた「Cucumber Studio」等の商用サービスは、プロジェクトのコミュニティへの移管に伴い、現在は提供されていません。 ## **9. 導入実績・事例** * **導入企業**: オープンソースであるため、特定の公式導入企業リストは公開されていませんが、世界中の多数のスタートアップから大企業まで、BDDを実践する多くのプロジェクトで採用実績があります。 * **導入事例**: Webサービスやエンタープライズシステム開発の現場で広く利用されています。特に金融や保険など、複雑なビジネスルールの検証が必要な業界で重宝されています。 * **対象業界**: 限定されず、幅広い業界で利用されています。 ## **10. サポート体制** * **ドキュメント**: [公式サイト](https://cucumber.io/docs)に詳細なドキュメントやチュートリアルが整備されています。 * **コミュニティ**: [GitHub Discussions](https://github.com/cucumber/common/discussions)や[Community Discord](https://cucumber.io/community#discord)が主なサポート窓口となっており、活発な情報交換が行われています。 * **公式サポート**: プロジェクトのコミュニティ移管に伴い、特定の企業による商用サポートは現在提供されていません。 ## **11. エコシステムと連携** ### **11.1 API・外部サービス連携** * **API**: Cucumber自体はCLIツールですが、各言語の実装はライブラリとして提供されており、プログラムからの利用が可能です。 * **外部サービス連携**: * **テスト自動化ツール**: Selenium, Appium, Playwrightなど、主要なブラウザ・モバイル自動化ツールと連携可能。 * **CI/CDツール**: Jenkins, GitLab CI, GitHub Actionsなど、あらゆるCI/CDパイプラインに組み込み可能。 * **プロジェクト管理**: JiraやTrelloなどと連携可能(特定の商用ツールを介さず、CI連携などで実現)。 ### **11.2 技術スタックとの相性** | 技術スタック | 相性 | メリット・推奨理由 | 懸念点・注意点 | |:---|:---:|:---|:---| | **Java (Spring Boot)** | ◎ | 歴史的に最もサポートが厚く、実績が豊富(Cucumber-JVM)。 | 特になし。 | | **Node.js (JS/TS)** | ◎ | フロントエンドテストとの親和性が高い(Cucumber.js)。 | PlaywrightやCypressとの統合設定が必要。 | | **Ruby (Rails)** | ◎ | Cucumber発祥の言語であり、相性が良い。 | Ruby自体の利用頻度が減少傾向にある。 | | **Python** | ◯ | `behave` や `pytest-bdd` が主流だが、Cucumber公式実装もある。 | Pythonコミュニティでは `pytest` エコシステムの方が強力。 | ## **12. セキュリティとコンプライアンス** * **認証**: ツール自体に認証機能はありません。利用者の実行環境に依存します。 * **データ管理**: ローカルまたはCI/CD環境で実行されるため、テストデータや実行結果は利用者の管理下に置かれます。クラウドサービスではないため、データの保存場所は利用者のインフラに依存します。 * **準拠規格**: ツール自体が特定の認証(ISO27001, SOC2など)を取得しているわけではありません。公式サイトでの公開情報はありません。 ## **13. 操作性 (UI/UX) と学習コスト** * **UI/UX**: 主なインターフェースはテキストファイル(`.feature`)とコマンドラインであり、GUIツールのような直感的な操作性はありません。開発者向けのツールです。 * **学習コスト**: BDDの概念、Gherkinの記述、メンテナンス性の高いステップ定義の設計スキルには経験が求められます。特に「どのように書くか」よりも「何を書くか(粒度や表現)」の学習が重要です。 ## **14. ベストプラクティス** * **効果的な活用法 (Modern Practices)**: * **宣言的な記述**: UIの操作手順(「ボタンをクリックする」)ではなく、ユーザーの意図(「ログインする」)を記述する。 * **背景 (Background) の活用**: 各シナリオに共通する前提条件を `Background` セクションにまとめる。 * **データテーブルの利用**: 複数の入力パターンをテストする場合、`Scenario Outline` と `Examples` テーブルを活用して簡潔に記述する。 * **陥りやすい罠 (Antipatterns)**: * **UI操作の詳細記述**: シナリオがUIの実装詳細に依存してしまい、画面変更のたびに修正が必要になる(脆いテスト)。 * **シナリオ間の依存関係**: あるシナリオの結果が次のシナリオに影響するように書いてしまうと、並列実行ができなくなる。各シナリオは独立させるべき。 ## **15. ユーザーの声(レビュー分析)** * **調査対象**: Google検索結果 (G2, Capterraのレビュー引用を含む) * **総合評価**: 4.3/5.0 (G2より引用), 4.2/5.0 (The CTO Clubより引用) * **ポジティブな評価**: * 「平易な言語でテストを書けるため、技術者と非技術者のコラボレーションが促進される」 (検索結果より引用) * 「一度ステップを定義すれば再利用できるため、テスト作成が効率的」 (検索結果より引用) * 「BDDの文化をチームに根付かせるための優れたツール」 (検索結果より引用) * **ネガティブな評価 / 改善要望**: * 「初期セットアップや外部ツールとの連携が複雑に感じることがある」 (検索結果より引用) * 「非技術者にとっては学習コストが高い場合がある」 (検索結果より引用) * 「UIテストと組み合わせると、実行速度が遅くなることがある」 (検索結果より引用) * **特徴的なユースケース**: * レビューからは、単なるテスト自動化ツールとしてでなく、チーム内のコミュニケーションツールとして仕様を明確化するために活用されているケースが多く見られました。 ## **16. 直近半年のアップデート情報** 各言語実装で活発な開発が継続されています。以下はJavaScript実装 (`cucumber-js`) の主なアップデートです。 * **2026-10-05 (v13.3.0)**: Data tableとDoc stringの同時使用をサポート。 * **2026-08-04 (v13.2.1)**: 並列ランタイムにおけるハングアップを修正。 * **2026-07-20 (v13.2.0)**: グローバルフックの実行場所に関するオプションを追加。 * **2026-01-22 (v12.6.0)**: `colorsEnabled` フォーマットオプションが非推奨となり、環境変数による制御へ移行。 * **2025-12-26 (v12.5.0)**: 外部プラグインを読み込む機能が追加され、拡張性が向上。 (出典: [Cucumber.js GitHub Releases](https://github.com/cucumber/cucumber-js/releases)) ## **17. 類似ツールとの比較** ### **17.1 機能比較表 (星取表)** | 機能カテゴリ | 機能項目 | Cucumber | Playwright | Cypress | Robot Framework | |:---:|:---|:---:|:---:|:---:|:---:| | **記述方式** | 自然言語(Gherkin) | ◎
標準機能 | ×
非対応 | △
プラグインで可 | ◯
キーワード駆動 | | **協調作業** | 非技術者の参加 | ◎
非常に容易 | △
困難 | △
困難 | ◯
容易 | | **実行速度** | テスト実行 | △
オーバーヘッドあり | ◎
非常に高速 | ◎
高速 | ◯
標準的 | | **機能** | AI機能 | △
非対応 | ◎
標準搭載 (v1.56~) | ◎
自己修復機能 | △
サードパーティ製 | | **拡張性** | 言語サポート | ◎
多言語対応 | ◯
主要言語対応 | △
JS/TSのみ | ◎
Python等 | ### **17.2 詳細比較** | ツール名 | 特徴 | 強み | 弱み | 選択肢となるケース | |---------|------|------|------|------------------| | **Cucumber** | 自然言語(Gherkin)でシナリオを記述するBDDツール。 | チーム内のコラボレーション促進、生きたドキュメントの作成。 | 学習コスト、UIテスト実行速度。 | ビジネス側と開発側の協業を重視し、仕様の共通理解を深めたい場合。 | | **Playwright** | Microsoft製のモダンなE2Eテストフレームワーク。 | 高速で信頼性の高いテスト、強力なデバッグ機能、自動待機。 | Gherkinのような自然言語層を持たないため、非技術者には読解が困難。 | 開発者が中心となって、コードベースで高速かつ安定したE2Eテストを構築したい場合。 | | **Cypress** | 開発者体験に優れたE2Eテストフレームワーク。 | 独自のインタラクティブなテストランナーによる高いデバッグ性。 | 同一オリジンポリシーの制約、複数タブの操作が困難。 | フロントエンド開発者が開発プロセスと並行して、インタラクティブにテストを書きたい場合。 | | **Robot Framework** | キーワード駆動テストフレームワーク。汎用性が高い。 | RPAにも利用可能。豊富なライブラリと高い拡張性。 | Gherkinほどの自然言語としての可読性はない。Pythonの知識が推奨される。 | テスト自動化に留まらず、RPAなど幅広い自動化タスクに単一のフレームワークで対応したい場合。 | ## **18. 総評** * **総合的な評価**: * Cucumberは単なるテスト自動化ツールではなく、「チームのコラボレーションを促進し、仕様の共通理解を形成するためのツール」として非常に強力です。BDDの思想を実践する上で中心的な役割を果たし、チーム全体の開発プロセスを改善するポテンシャルを持っています。 * **推奨されるチームやプロジェクト**: * プロダクトオーナーやビジネスアナリストが開発プロセスに深く関与するアジャイルチーム。 * 仕様が複雑で、ドキュメントと実装の乖離に課題を抱えているプロジェクト。 * 長期的にメンテナンスされるプロダクトで、「生きたドキュメント」の価値を最大化したいチーム。 * **選択時のポイント**: * チーム全体でBDDのプラクティスに取り組む文化があるかが最も重要です。もし、単にE2Eテストをコードで効率的に書きたいだけであれば、PlaywrightやCypressの方が適している場合があります。Cucumberを選択することは、テストの書き方だけでなく、チームの働き方を選択することに繋がります。