テスト仕様書の書き方

トップ > 文章 > テスト仕様書の書き方

「仕様書の書き方」の一連のページをまとめて電子書籍化しました。
iBookstore で発売中です。 2015.05.11

この文章や、文章中で定義する用語は、株式会社ランバーミルの開発業務の中で蓄積されたノウハウを基にしています。業界一般や書籍等で定義されているものとは、必ずしもニュアンスが一致していない点に注意して下さい(業務の参考にはなるかもしれませんが、試験対策には使えません)。

テスト仕様書とは

システムの振舞いを外部からチェックする手順を定めた仕様書です。システムの構築途中から、運用開始後に渡って少しずつ(後述するシナリオを)書き足されて行きます。”動作確認”という曖昧な作業の内容を可能な限り明確にし、迅速かつ確実なテストを実行できるようにすることが、この仕様書の目的です。

システムテストと単体テスト この仕様書がカバーするのは、所謂、「システムテスト」です。本稼動環境に似せたテスト環境や、構築直後の本稼動環境上で、実際にユーザ(アクター)の視点からシステムを操作したテストを定義します。個々のモジュール(クラスやメソッド)に対して行う「単体テスト(ユニットテスト)」は、開発の各段階で適宜、ソースコードのリポジトリと同じ位置に定義されているものとし、このテスト仕様書では取り扱いません。

各項目の記載指針

以下では、基本仕様書に含まれる各項目の記載方法を説明します。

概要

テスト方針 テストの大まかな方針を記載します。全てのテストに共通する前提条件や、前処理等もここに記します。

テストデータの入手または生成方法 入力のテストに使用するダミー情報の調達方法等を記載します。手作業や或いはスクリプトを組んでデータを作成したり、実際の運用で使われているデータをクライアントから借りたりするようなケースが想定されます。

テスト環境 テストに使用するホストやマシンの情報を列挙します。

実稼動環境 実稼動環境で使用されるホスト等の情報を列挙します。場合によっては、この環境でテストを実施することも起こり得ますが、通常、こちらでテストを実行してしまうと不味い事になるはずです。テスト環境と明確に区別できるよう何らかの目印をつけましょう(ログインフォームの色を変えるなど)。

シナリオ

テスト(及びその準備)の一連の手順を定義します。シナリオの概要を表す名前、各手順とその結果期待される出力を記載します。例えば、「ファイルに名前を付けて保存する」という手順をテストするシナリオは以下のようになります。

シナリオ名試験の流れ期待される出力
1.ファイルの保存「保存..」ボタンをクリックします。
2.表示されたダイアログに名前(foo.txt)を入力し、「OK」ボタンを押します。
2-1.既にファイルが存在する場合、上書き確認のダイアログが表示されます。
2-1-1.「Yes」をクリックします。保存完了のメッセージが表示されます。
2-1-2.「No」をクリックします。処理が中断されます。
2-2.ファイルが存在しない場合、保存完了のメッセージが表示されます。

シナリオは、(ある段階で一気に書き上げるのではなく)逐次、仕様書に追加されます。

まず「実装担当者の意図をユーザや開発チームのメンバに知らせる」目的で定義されます。複雑な処理では、実装よりも先にシナリオを記述することで、使用上の無駄や矛盾を見つけやすくなる場合も多々あります。実装担当者は、これから出来る機能や、今出来上がった機能のシナリオを書く習慣を付ける必要があります。

次に、テスト担当者が不具合を発見した際に「不具合が修復されていることを確認する」目的で作成されます。実装担当者はこのシナリオを満たすようにプログラムを修正します。また、後日同じ不具合が再発していないことを確認するためにも利用できます。

最後に、「ユーザからのフィードバックを記録する」目的で作成されるシナリオがあります。基本仕様書や外部設計書では網羅し切れない細かい挙動に関して認識の相違が発生する事があります。そういった場合、ユーザの要求する処理の流れをシナリオとして記録し、共有することが出来るようになります。

実施記録

例え完璧なシナリオが定義されていたとしても、納品書類の束の中に埋もれるだけでは何の意味もありません。「どのシナリオ(テスト)を何時実行して、結果がどうだったのか」を常に記録する必要があります。長期間に渡って使用されるシステムの場合、ある時点で不具合が発生した際に、それが全く未知の問題なのか、既知の問題がなんらかの理由で再発しているのかを切り分けることは重要です。

以下のような内容で、時系列に記録を残します。

実施日時,実施担当者,コード,シナリオ,結果

関連リンク

要求仕様書の書き方

基本仕様書の書き方(この文章)

詳細見積書の書き方 <執筆予定>

外部設計書の書き方

テスト仕様書の書き方

配備手順書の書き方 <執筆予定>

取扱説明書の書き方 <執筆予定>

課題管理表 <執筆予定>

ガントチャート <執筆予定>