doc.dev1x.org

Given-When-Then(GWT)形式

1. 目的

要求仕様におけるシナリオの構造化

2. 課題

事前条件や期待値に対する認識が一致しない

3. 解決策

Given/When/Thenでシナリオを構造化する

例1: シンプルなシナリオ

例2: And/Butを使用した複数条件を持つシナリオ

例3: 異常系パターン

4. メリット

高い可読性

抜け漏れの防止

自動テストとの親和性

ドキュメントとテストの二重管理が不要

チーム間の共通言語になる

5. デメリット

記述コストがかかる

細かいロジックの表現が苦手

形骸化しやすい

Given: ユーザーが操作する
When: いろいろ操作する
Then: うまくいく

ツール導入のハードルがある

6. 注意事項

Then は観測可能な結果のみ書く

1シナリオにつき1つのWhenを原則とする

Given の前提は最小限に絞る

And/But を活用する

実装の詳細を書かない

参考資料

Appendix-1 細かいロジックの確認が伴う場合の解決策

Scenario Outline: ログイン試行

  Given: ユーザーが <email> と <password> を入力する
  When: ログインボタンを押す
  Then: <result> が表示される

  Examples:
  | email           | password | result               |
  | [email protected]| correct  | ダッシュボード        |
  | [email protected]| wrong    | エラーメッセージ      |