Gherkin記法
がーきんきほう

Gherkin記法(ガーキン記法)とは、ソフトウェアの振る舞いを Given(前提)・When(操作)・Then(結果)の 3 ステップで自然言語風に記述するための構造化フォーマットである。テスト自動化ツール Cucumber が読み取る .feature ファイルの標準記法として広く使われている。
なぜ Gherkin なのか
テスト仕様書を開発者がコードで、ビジネス側が日本語や英語のドキュメントで、それぞれ別々に管理する現場は多い。仕様変更のたびに両方を更新する必要があり、ズレが蓄積する。
Gherkin記法はこの問題を「実行可能な仕様書」というアプローチで解決する。ビジネス担当者が読める自然言語に近い構文でありながら、そのまま自動テストとして実行できる。仕様書とテストコードが同一ファイルに収まるため、乖離が構造的に起きにくい。
基本構文
.feature ファイルの典型的な構造は以下のとおり。
1Feature: ユーザーログイン
2
3 Scenario: 正しい認証情報でログインできる
4 Given ログインページを表示している
5 When メールアドレス "user@example.com" を入力する
6 And パスワード "correct-password" を入力する
7 And ログインボタンをクリックする
8 Then ダッシュボードが表示されるFeature が機能単位のまとまり、Scenario が個別のテストケースに対応する。And / But で条件を追加でき、Scenario Outline + Examples テーブルでパラメータ化も可能。
日本語を含む 70 以上の自然言語に対応しており、キーワードをそのままローカライズできる点も特徴の一つ。
BDD との関係
Gherkin記法は BDD(振る舞い駆動開発)のプラクティスから生まれた。BDD では「ソフトウェアが何をすべきか」を利害関係者全員が共有できる形で記述することを重視する。Gherkin はその記述フォーマットを標準化したもので、Cucumber・Behave・SpecFlow といったフレームワークが Gherkin ファイルをパースしてテストを実行する。
筆者のチームでは受け入れテストを Gherkin で書き始めてから、QA と開発者のレビュー会議で「この Scenario が通ればリリース可」という合意形成が格段に速くなった。
導入時の落とし穴
万能ではない。ステップ定義(Given/When/Then の裏側で実行される実装コード)の粒度設計を誤ると、似たようなステップが大量に増殖して保守コストが跳ね上がる。また、UI の細かい操作を Gherkin で逐一書くと冗長になりがちで、E2Eテストのすべてを Gherkin 化するより、ビジネスルールの検証に絞って適用するほうが費用対効果は高い場合が多い。
関連用語

E2Eテスト
E2E テスト(End-to-End テスト)とは、ユーザーの操作を起点にブラウザや API を通じてシステム全体を通過させ、期待どおりの結果が得られるかを検証するテスト手法である。

受け入れテスト
受け入れテスト(アクセプタンステスト)とは、開発した機能がビジネス要件やユーザーストーリーを満たしているかを、プロダクトオーナーやステークホルダーの視点で検証するテスト手法である。

SSM(AWS Systems Manager)
AWS Systems Manager(SSM)とは、EC2 インスタンスやオンプレミスサーバーをまとめて運用・管理するための AWS マネージドサービスである。パッチ適用、コマンド実行、パラメータ管

ATDD
ATDD(Acceptance Test-Driven Development)とは、開発着手前に受け入れテストの基準をチーム全体で定義し、そのテストを自動化してから実装を進める開発手法である。