
211
5
●
Ajax通信による非同期処理の結果を待って次の操作を行うために
ウェイト時間を設定しているが、サーバー側処理に想定より時間が
かかった結果、タイムアウトで失敗してしまう
Column
振る舞い駆動開発(BDD)
ユニットテストのテストコードは、プロダクションコードを実装する前に
先にテストコードを記述する、いわゆるテストファーストの進め方が一般的
になってきました。それに対して、インテグレーションテストやE2Eテスト
は、テストで統合対象となるすべてのコンポーネントの実装が終わってから
テストコードを記述するのが通常です。
実は、インテグレーションテストやE2Eテストについても、先にテスト
コードを記述する手法が存在します。それが振る舞い駆動開発(BDD:
Behavior-Driven Development)
※9
です。BDDの概要を図5.2.8 に示します。
BDDでは、フィーチャー(ユーザーストーリーなどで定義される、ユー
ザーにとって意味のあるまとまった振る舞い)の実装に入る前に、フィー
チャーの仕様を受け入れ条件という形で明確化します。
第4章のコラムで述べたとおり、ユーザーストーリーはシンプルなフォー
マットを用いてユーザーの観点からシステムに求められる機能を概要レベル
で記述するものであり、それ自体は仕様としては不足します。そのため、ド
⹅
図5.2.8
振る舞い駆動開発(BDD)
設計・実装
開発者
開発者
ドメイン
専門家
QA
エンジニア
受け入れ
条件
スリーアミーゴによる対話
ユーザー
ストーリー
テスト