はじめに

前回は、自動販売機を題材にして、BDDを用いたプロセスの「発見(Discovery)」の部分(2.要件ワークショップ)までを説明しました。

今回は、「3. 定式化(Formulation)」の部分を、BRIEFの原則を交えつつ説明します。

3. 定式化

定式化では、システムの振る舞いの例(実例マッピングでいう具体例の部分)をシナリオの形で文書化します。

例えば、以下のような実例マッピングができた時に、書かれてある具体例「550円を入れて120円のコーラを選ぶとコーラと430円のお釣りが出る」をシナリオの形で文書化します。

例えば、Gherkin記法を用いて以下のように書けます。

Feature: 自動販売機

Scenario: 飲み物を買うとお釣りが出る
    Given 自動販売機がある
    When 500 円硬貨を入れる
    And 50 円硬貨を入れる
    And コンボボックスから 120 円の "コーラ" を選択する
    Then "コーラ" が出てくる
    And 100 円硬貨が 4 枚出てくる
    And 10 円硬貨が 3 枚出てくる

Gherkin記法

Gherkin記法とはGiven/When/Thenなどのいくつかのキーワードを用いて、実行可能な形式で記述する構文方法です。

今回は、以下の6つのキーワードが登場します。

  • Feature…ソフトウェアのフィーチャーの概要を記述するためのキーワードです。
  • Scenario…ビジネスルールを表す具体例を記述するためのキーワードです。
  • Given…システムの初期段階やシナリオの前提を記述するためのキーワードです。
  • When…実際に行うアクションや操作を記述するためのキーワードです。
  • Then…期待される結果を記述するためのキーワードです。
  • And…複数のGiven/When/Thenに値する内容が出てきた時には、この「And」のキーワードで繋げます。

例えば今回書いた内容の場合、以下のような内容を説明していることになります。

自動販売機についてのフィーチャーです。
「飲み物を買うとお釣りが出る」という具体例について記述します。
「自動販売機がある」という前提があります。

以下の操作を行います。
「500 円硬貨を入れます」
「50 円硬貨を入れます」
「コンボボックスから120 円のコーラを選びます」

すると、以下の結果が期待されます。
「コーラが出てきます」
「100 円硬貨が 4 枚出てきます」
「10 円硬貨が 3 枚出てきます」

シナリオを改善する

さて、今回Gherkin記法で書いたような以下のシナリオがあれば全て大丈夫なのでしょうか。

Feature: 自動販売機
  Scenario: 飲み物を買うとお釣りが出る
    Given 自動販売機がある
    When 500 円硬貨を入れる
    And 50 円硬貨を入れる
    And コンボボックスから 120 円の "コーラ" を選択する
    Then "コーラ" が出てくる
    And 100 円硬貨が 4 枚出てくる
    And 10 円硬貨が 3 枚出てくる

このままでも実行可能なテストを作成していくことが可能ですが、もう少しシナリオの改善を考えることができます。

続きを読むにはログインが必要です。
ご利用は無料ですので、ぜひご登録ください。

SHARE

  • facebook
  • twitter

SQRIPTER

風間 裕也(かざま ゆうや):ブロッコリー

B-Testing

記事一覧

電気通信大学大学院修士課程修了。
B-Testingを開業し、「どのようにテストを考えればよいか」を社内外問わずエンジニアに日々お伝えしている。


【社外コミュニティ活動】
・WACATE(ソフトウェアテストをテーマとしたワークショップ)実行委員長
・JaSST Review(ソフトウェアレビューシンポジウム)実行委員長


【翻訳活動】
・Agile Testing Condensed(翻訳)
・A Practical Guide to Testing in DevOps(共訳)
・The BDD Books - Discovery(翻訳)

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST