SHOEISHA iD

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

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

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

 ソフトウェア開発プロジェクトにおいてテストは極めてストレスに満ちています。そこで本稿では、さまざまなストレスを受ける立場の開発者が少しでも楽に「きちんとテストしました」と言うために、テスト仕様書のテンプレートを紹介します。このテンプレートは発注者に報告するための文書だけでなく、さまざまなテスト技法の紹介も含まれていて、いつどういうテストをすればよいのかという手引きにもなっています。

  • X ポスト
  • このエントリーをはてなブックマークに追加

1. はじめに

 ソフトウェア開発プロジェクトにおいてテストは極めてストレスに満ちています。「テストとは作った成果物に誤りがあるかどうかを見つける作業だ」という本質的に不愉快な活動であることに加えて、プロジェクトの終わりにさしかかって時間も逼迫しているのに仕様変更を受けて再テストなどという、体力的にも精神的にもきつい作業であるからです。

 本稿では、さまざまなストレスを受ける立場の開発者が少しでも楽に「きちんとテストしました」と言うために、テスト仕様書のテンプレートを紹介します。このテンプレートは発注者に報告するための文書だけでなく、さまざまなテスト技法の紹介も含まれていて、いつどういうテストをすればよいのかという手引きにもなっています。

 さて、はじめに、ソフトウェア開発プロジェクトと品質・生産性・納期の関係を見てみましょう(図1)。

図1 ソフトウェア開発プロジェクトと品質・生産性・納期
図1 ソフトウェア開発プロジェクトと品質・生産性・納期

 お客様(発注者)はプロジェクトを起案する際、何を作るかを「要件仕様」という形にとりまとめた上で時間・予算を手当てします。開発者(受注者)は受注すると、仕様を基に開発し、成果物を納品します。お客様は成果物を仕様に照らして検収し、受け入れると代金を払います。

 さらに図1で、品質・生産性・納期を次のように定義します。

  • 品質」とは、成果物が仕様に照らして合致しているかどうかの性質
  • 生産性」とは、投資した代金(コスト)に対する成果物の付加価値
  • 納期」とは、受注してから成果物を納めるまでの期間

1.1. 発注者の立場

 この開発プロジェクトを発注者の立場で見てみましょう。

 「検収」とは、発注者が「成果物を仕様に照らして合致しているかどうか」を判断することなのですが、それは品質を見ていることになります(先ほど、定義しましたね)。では、品質を見るにはどうすれば良いのでしょう。一つの方法としてテストがあります。

 大きなプロジェクトだと、一口に発注者と言っても、組織の中のたくさんの人が関わる訳ですから、テストするにしても「目標、方法、実際の手順、結果、品質が悪いことがわかった時の対処方法、など」実に様々なことが文書になっていなければなりません。

 また、発注者としては、開発の最後にまとめて成果物を渡されると、仕様を満たしていなかった場合に対処する時間がなく、困ってしまいます。そのため、局面ごとに「きちんとテストしました」と報告を受けたいところです。

1.2. 受注者の立場

 受注者は上記「発注者の立場」で述べたテストに必要なことを行うことはもちろんですが、他の考慮点もあります。

  • プロジェクト開始時点や初期では、発注者からの仕様書がないことがあります
  • 発注者からの仕様は往々にしてきちんと書かれていません(曖昧であったり、不完全だったりします)
  • プロジェクトの後半にさしかかってくると、ようやく固まってきた仕様が変更されることがあります

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
2. テスト仕様書

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
テンプレートから学ぶ 受注する開発者のためのテスト仕様書連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3938 2009/07/13 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング