Specification by Exampleとは?
Specification by Example(以下、SBE)とは、ソフトウェアの要件を、テストケースの形で記述する手法です。SBEでは、要件を具体的な例として記述することで、開発者とテスト担当者との間での認識のずれを防ぐことができます。また、SBEは、テストケースを自動化するための基盤としても利用することができます。
SBEで記述されるテストケースは、通常、次の3つの要素で構成されます。
- 入力データ
- 期待される出力データ
- テストの実行条件
入力データは、ソフトウェアに渡されるデータです。期待される出力データは、ソフトウェアが入力データに対して出力するデータです。テストの実行条件は、テストケースを実行する際に満たすべき条件です。
Cucumberで記述したサンプル
Cucumberは、テストケースを自動化するフレームワークです。Cucumberを使用すると、テストケースを自然言語で記述することができます。これにより、テストケースの作成と保守が容易になります。
サンプルコード
Feature: ログイン画面のテスト
Scenario: ログインに成功する
Given ユーザー名がhogeでパスワードがfugaである
When ログイン画面にアクセスする
Then ログインに成功し、トップページが表示される
Scenario: ログインに失敗する
Given ユーザー名がhogeでパスワードがfugaでないこと
When ログイン画面にアクセスする
Then ログインに失敗し、エラーメッセージが表示される
このコードは、Cucumberで記述されたログイン画面のテストケースです。Featureは、テストケースのグループを表します。Scenarioは、テストケースを表します。Givenは、テストケースの開始条件を表します。Whenは、テストケースの実行内容を表します。Thenは、テストケースの期待される結果を表します。
SBEはどんな時に使うのか?
SBEは、アジャイルソフトウェア開発手法においてよく使用されます。アジャイルソフトウェア開発手法では、ソフトウェアの開発を短いサイクルで繰り返すため、SBEで記述されたテストケースは、ソフトウェアの開発と並行して作成することができます。これにより、ソフトウェアの品質を向上させることができます。
以上、Specification by Exampleとは何か?3分で理解する説明でしたー