SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

テンプレートから学ぶ 受注する開発者のためのテスト仕様書

テンプレートから学ぶ
受注する開発者のためのテスト仕様書

開発者のためのテスト仕様書テンプレート(1)

2. テスト仕様書

 今回の連載「テンプレートから学ぶ 受注する開発者のためのテスト仕様書」では、開発側の立場から現場で必要なテスト仕様書を解説します。

  • いつ、誰が、どういうテスト仕様(テスト仕様と言ってもたくさんあります)を、どういう風に書いたらよいか
  • 何に注意しないといけないのか(現場のコツのようなもの)
  • どこまでテストすれば良いのか(テスト完了条件)
  • 単体テストの場合
  • 統合テストの場合
  • 要件仕様がない場合どうテストするのか
  • 仕様変更がプロジェクト後半に発生した場合、どうテストするのか

 今回は第1回目なので、最後にテスト仕様の目次を掲載します。

2.1. テスト仕様の種類

 開発者が書く必要のあるテスト仕様は以下の2種類です。

  • 単体テスト仕様
  • 統合テスト仕様

2.2. いつ書くか

2.2.A. 単体テスト仕様

 単体テスト仕様はプログラミングの直前に書きます。つまり最後の設計局面(プロジェクトによって「詳細設計」「内部設計」などと呼ばれます)の局面終了基準の中に単体テスト計画を含めます。

2.2.B. 統合テスト仕様

 統合テストをひとまとまりの文書として記述する場合、統合テスト仕様は最初の設計の直前(プロジェクトによって「基本設計」「外部設計」などと呼ばれます)に書きます。つまり、要件定義局面の局面終了基準の中に統合テスト計画を含めます。

 統合テストは、次の2つの設計局面に分けて、2つの文書を作成することもあります。

  • 外部設計(または基本設計)
  • 内部設計(または詳細設計)

2.3. 誰が書くか

図2 開発組織
図2 開発組織

 図2に開発組織を示しました。破線の中が発注者で、外側に受注者を描いています。大きなプロジェクトだと「プロジェクト推進」というグループを設けます。これは個々の開発チームを横断的に支援するグループで以下を提供したり管理したりします。

  • 開発技法
  • 開発ツール
  • プロジェクト管理支援
  • 局面終了基準管理
  • プロジェクト報告

 「基盤」グループを設けることもあります。これも開発チームを横断的に支援しますが、以下を提供したり管理支援したりします。

  • ハードウェア
  • ネットワーク
  • 共通ソフトウェア
    • OS
    • 実行環境
    • 開発環境

2.3.A. 単体テスト仕様

 「単体テスト仕様」は、発注者のプロジェクト推進がメーカーのSE(受注者)の助けを借りて作成します。単体テストを実際に行うのはプログラムを作った人、つまり、開発者です。

 テスト結果は開発者が起票し、お客様に提出します(開発No. 1……No. n)。開発No. 1……No. nは、結果をプロジェクト推進に渡します。プロジェクト推進は、テスト期間中なら朝会(あさかい)または夕会(ゆうかい)で、プロジェクト・マネージャおよびプロジェクト・リーダー達に報告します。局面終了時なら、プロジェクト・マネージャが局面終了報告書をとりまとめますが、その中にちゃんとテストしましたと書くことになります。

2.3.B. 統合テスト仕様

 「統合テスト仕様」は、発注者のプロジェクト推進がメーカーのSE(受注者)の助けを借りて作成します。統合テストを実際に行うのは開発グループ(開発No. 1……No. n)で、メーカーの開発者の助けを借りて行います。

 テスト結果はメーカーの助けを借りて開発グループが起票し、プロジェクト推進に渡します。プロジェクト推進は、テスト期間中なら朝会(あさかい)または夕会(ゆうかい)で、プロジェクト・マネージャおよびプロジェクト・リーダー達に報告します。局面終了時なら、プロジェクト・マネージャが局面終了報告書をとりまとめますが、その中にちゃんとテストしましたと書くことになります。

2.4. どういうテスト仕様を書くか

 テスト仕様では、「目標」「方法」「実際の手順」「結果」「品質が悪いことが分かった時の対処方法」など、実にさまざまなことが文書になっていなければなりません。今回は下記のテンプレートを用意しておくことになります。

2.4.A. 単体テスト仕様

 単体テスト仕様でのテスト技法は以下の3点です。

  • ホワイトボックステスト
  • ブラックボックステスト
  • 信頼度成長曲線

 これらの技法は、それぞれの観点で「ちゃんとテストしました」と言うためのテストです(次回以降に詳しく述べます)。

2.4.B. 統合テスト仕様

 統合テスト仕様でのテスト技法は以下の5点です。

  • トランザクション・フロー・テスト
  • ドメイン・テスト
  • 例外系テスト
  • 基盤テスト
  • 対象システムの連結テスト

 これらの技法は、それぞれの観点で「つないでテストしました」と言うためのテストです(次回以降に詳しく述べます)。

次のページ
3. 参考文献

この記事は参考になりましたか?

テンプレートから学ぶ 受注する開発者のためのテスト仕様書連載記事一覧

もっと読む

この記事の著者

山村 吉信(ヤマムラ ヨシノブ)

同志社大学大学院・電気工学専攻修了(工学修士)。プリンストン大学大学院・計算機科学科修了(MSE)。1978年、日本アイ・ビー・エム(IBM)入社。システムズ・エンジニア(SE)として、性能評価モデルの営業支援に従事。1983年、IBMサイエンス・インスティチュート(現東京基礎研究所)にて研究員とし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3938 2009/07/13 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー