駆動開発の種類
下記のように駆動開発は数多くあり、本記事ではビヘイビア駆動開発について紹介する。
- 締め切り駆動開発(DDD)
開発の各工程のデットエンドまで時間をかけて開発をすること。 - 文書駆動開発(DDD)
ドキュメントの整合性を中心に設計や開発をすること。 - ドメイン駆動開発(DDD)
ソフトウェア化する対象を抽出してから開発をすること。 - チケット駆動開発(TiDD)
課題解決を中心に設計や開発をすること。 - テスト駆動開発(TDD)
先にテストを用意してから開発をすること。 - 受け入れテスト駆動開発(ATDD)
受け入れテストを中心に設計や開発をすること。 - ビヘイビア駆動開発(BDD)
シナリオテストを中心に設計や開発をすること。 - ユーザー機能駆動開発(FDD)
ユーザが使う機能を中心に設計や開発をすること。 - モデル駆動型開発(MDD)
ドメイン固有言語(DSL)で設計してから開発をすること。
ビヘイビア駆動開発とは
- 振る舞い試験の一種。
- テスト駆動開発を拡張したもの。
- 1つのシナリオ試験を深掘りする形で行う。
- ビジネスサイドや品質管理サイドも理解できるように記述することが望まれている。
- Gherkin記法を用いて記述される。
ビヘイビア駆動開発の長所短所
長所
- 開発サイド以外の意見も取り入れるため、実装漏れに繋がる。
- 目的が明確化しやすく、ユニットテストがしやすくなる。
短所
- シナリオテストが複雑になると、ユニットテストが乱立してしまい、独立したはずのユニットテストが依存関係を持ってしまう可能性がある。
- シナリオテストに含まれないユニットテストが漏れやすくなる。
Gherkin記法
-
「こういう状態のとき、こういう動作を行えば、こうなることが期待される」という形で表される。
-
WhenやThenの部分でテスト駆動開発の手法が用いられる。
-
書式
As:〜として
Given:前提条件
When:どの様な操作や入力
Then:操作や入力の後に期待すべき結果は
And:かつ
But:しかし
例題
- 満足条件
- 再生プレイヤーにて再生中にシャッフルボタンを押下した際、再生中の楽曲を再生リストの1曲目としてリストが生成される
- 再度シャッフルボタンを押下すると元に戻る
Feature:○○音楽プレイヤー(シャッフル再生)
Scenario Outline:シャッフル再生
AS ○○音楽プレイヤーのプレイリスト利用者として
GIVEN 3曲以上のプレイリストがあり、リスト2曲目を再生中
AND 再生中にシャッフルボタンを押下して<ボタンの状態>にする
WHEN 再生リストをタップして、リストの状態を確認する
THEN 再生中の楽曲が<再生リスト位置>にある
Examples:
|ボタンの状態 |再生リスト位置|
|活性(ON) | 1曲目|
|非活性(OFF) | 2曲目|