COMPANY

企業情報

オフィス画像
システム開発

テスト仕様書の書き方とテンプレート|項目・構成・テストケースとの違いを実例付きで解説

公開日:2026年7月8日 更新日:2026年7月8日
Author Avatar
この記事を書いた人

清水悠也

株式会社CLANE 執行役員。eラーニング・人材育成領域で10年以上の経験を持ち、法人向けオンライン学習プラットフォーム「Learnify」の事業戦略・コンテンツ設計を統括。DXによる業務効率化やAIを活用したデジタルマーケティングにも精通し、企業の人材開発からナレッジマネジメントまで一貫した支援を行う。また、起業支援サービス「起業の窓口」のアドバイザーとしても活動しており、経営・事業立ち上げの実践知見を活かした情報発信を続けている。

システム開発のプロジェクトが進むにつれ、「どこまでテストすれば品質を担保できるのか」「ベンダーに任せきりでよいのか」という不安を抱える担当者は少なくありません。特に発注側として開発を管理する立場では、テスト工程の実態が見えにくく、リリース直前になって品質上の問題が発覚するケースも起こりえます。その課題を防ぐために重要な役割を担うのが、テスト仕様書です。

テスト仕様書とは、何を・どのような手順で・どの基準で検証するかを事前に定めたドキュメントです。テストケースや仕様書という言葉と混同されやすいですが、それぞれ役割と粒度が異なります。この違いを正しく理解しておくことで、ベンダーとのコミュニケーションが整理され、QAプロセス全体の管理精度が高まります。

本記事では、テスト仕様書の定義と構成要素、テストケースとの違い、各項目の書き方を実例とともに解説します。また、自社プロジェクトへの導入を検討する際の判断材料として、テンプレートの考え方や運用上の注意点も合わせて取り上げます。

テスト仕様書とは何か——定義と役割を整理する

テスト仕様書とは、ソフトウェア開発において「何を、どのような条件で、どう確認するか」を体系的にまとめた文書です。開発フェーズは大きく「要件定義→設計→実装→テスト」の流れで進みますが、テスト仕様書はこの最終フェーズであるテスト工程の設計図にあたります。テスト担当者だけでなく、発注側のシステム担当者やPMが品質基準を把握・確認するための共通言語としても機能します。

テスト仕様書が果たす役割——品質基準を文書化する意味

テスト仕様書の目的は、品質基準を「言語化・文書化」することにあります。口頭や暗黙の了解ではなく、確認すべき機能・条件・合否の判断基準を明文化することで、開発チームと発注側が同じ基準でシステムの品質を評価できるようになります。

具体的には、以下の役割を担います。

  • 品質基準の合意形成:発注側と開発側が「何をもって完成とするか」を事前に合意できます
  • テストの網羅性の担保:確認項目を一覧化することで、見落としや抜け漏れを防ぎます
  • 検証記録としての活用:実施結果を記録することで、不具合発生時の追跡やリリース判断の根拠になります
  • 引き継ぎ・保守への活用:担当者が変わっても、過去のテスト設計を再利用・参照できます

発注側の視点でとくに重要なのは、「品質基準の合意形成」です。要件定義の段階でどれだけ詳細に仕様を決めたとしても、テスト仕様書がなければ「正しく動いているかどうか」の判断軸が曖昧なまま納品を迎えることになります。

テスト仕様書が不在のときに起きること——現場でよく見られる問題

テスト仕様書が存在しない、あるいは形骸化している開発プロジェクトでは、次のような問題が起きやすい傾向があります。

  • テスト担当者ごとに確認内容がばらつき、同じ機能でも確認の深さに差が生じる
  • 不具合が発生したとき、「そもそも仕様通りか」の判断が難しくなる
  • リリース直前に認識の齟齬が発覚し、手戻りが大きくなる
  • 受け入れテストで発注側が何を確認すればよいか分からなくなる
要件定義の曖昧さがテスト品質を左右するテスト仕様書の精度は、その上流にある要件定義の質に左右されます。発注側として品質基準を明確にするために。要件定義支援を見る

これらは技術的な問題というより、コミュニケーションと合意形成の問題です。テスト仕様書は、開発チームの内部ドキュメントであると同時に、発注側が品質を管理するための重要なインターフェースでもあります。

テスト仕様書とテストケースの違い——混同しやすい2つの文書を整理する

テスト仕様書とテストケースは、どちらもQAプロセスで使われる文書であるため、同じものとして扱われるケースが少なくありません。しかし、この2つは役割も記載内容も異なります。混同したまま運用すると、テストの抜け漏れや認識のズレが生じやすくなります。

テスト仕様書 vs テストケース——役割と記載内容の対比表

端的に言えば、テスト仕様書は「何をテストするか」を定義する上位文書であり、テストケースは「どのように検証するか」を記述する実行文書です。以下の対比表で整理します。

  • テスト仕様書:テスト対象の機能・範囲、テスト方針、合否判定の基準を定義する。開発チームと発注側が「何を保証するか」を合意するための文書。
  • テストケース:テスト仕様書をもとに、具体的な操作手順・入力値・期待結果・実測結果を記述する。テスト担当者が実際に作業する際の実行文書。

たとえば「ログイン機能をテストする」という方針はテスト仕様書に記載します。一方、「メールアドレス欄に未登録のアドレスを入力し、パスワードを正しく入力した場合にエラーメッセージが表示されること」という具体的な検証手順がテストケースに当たります。

テスト仕様書がなければ、テストケースは担当者の裁量で作られることになり、テスト範囲にばらつきが生じます。逆にテストケースがなければ、仕様書上の方針を実際の検証作業に落とし込めません。両者は上位・下位の関係にあり、セットで機能します。

テスト計画書・テスト手順書との関係——ドキュメント体系を把握する

QA関連の文書はテスト仕様書とテストケースだけではありません。テスト計画書テスト手順書も混同されやすいため、全体の体系を把握しておくことが重要です。

  • テスト計画書:プロジェクト全体のテスト戦略・スケジュール・体制・リスクを定める最上位文書。「いつ・誰が・どの順番でテストを進めるか」を決める。
  • テスト仕様書:テスト計画書の方針を受け、機能ごとに「何をテストするか」を定義する。テスト計画書とテストケースの橋渡し役。
  • テストケース:テスト仕様書をもとに、個別の検証手順・条件・期待結果を記述する実行レベルの文書。
  • テスト手順書:テスト環境のセットアップ方法や共通操作など、テストケースを実行するための前提となる手順をまとめた補助文書。

発注側の意思決定者として確認すべきは、これらの文書が揃っているかどうかです。テスト計画書だけが存在し、テスト仕様書が省略されているケースでは、機能ごとのテスト範囲が曖昧なまま検証が進む可能性があります。ベンダーとのQAプロセスを整備する際は、文書体系全体を確認する視点が欠かせません。

テスト仕様書に含める項目——必須構成要素と各項目の意味

テスト仕様書の品質は、記載項目の網羅性によって大きく左右されます。どれだけ詳細なテストケースを用意しても、前提条件や合否判定基準が曖昧なままでは、テスト結果の解釈がチームによって異なり、手戻りの原因になります。発注側の担当者は、ベンダーが提出したテスト仕様書に必要な項目が揃っているかを確認する視点を持つことが重要です。

必須項目の一覧——発注側がチェックすべき構成要素

テスト仕様書に含めるべき標準的な項目は以下のとおりです。それぞれの項目がなぜ必要かを合わせて確認してください。

  • テスト対象:どの機能・画面・APIをテストするかを明示します。対象が不明確だと、テスト漏れが発生しやすくなります。
  • テスト範囲(スコープ):対象に含めるものと含めないものを明記します。「今回はテストしない範囲」を明示することが、後からの認識ずれを防ぎます。
  • テスト条件・前提条件:テストを実施するために満たすべき状態を記載します。マスタデータの準備やユーザー権限の設定など、実行環境の整備状況がここに含まれます。
  • 合否判定基準:テストが「合格」と判断される条件を定義します。数値・動作・表示内容など、具体的な期待値を記します。
  • テスト担当者:誰がテストを実施し、誰がレビューするかを明確にします。責任の所在を明示することで、抜け漏れを防ぎます。
  • スケジュール:テスト実施期間・完了期限を記載します。開発工程全体の遅延を早期に検知するための基準になります。
  • テスト環境情報:使用するサーバー・OS・ブラウザ・デバイスなどの構成を記載します。環境の違いが原因のバグを切り分けるために必要です。
  • テストデータ:テスト実施に使用するデータの種類・準備方法を記載します。本番データを使うかモックデータを使うかも明示します。

合否判定基準の書き方——曖昧にしてはいけないポイント

テスト仕様書の中でも、合否判定基準は特に具体性が求められる項目です。「正しく動作すること」「適切に表示されること」といった表現は、判断者によって解釈が異なるため避けるべきです。

たとえば、検索機能のテストであれば「キーワードを入力して検索ボタンを押した際に、入力値を含む件名の一覧が3秒以内に表示されること」のように、操作・結果・数値基準をセットで記載することが求められます。

発注側の担当者は、提出されたテスト仕様書の合否判定基準に数値や具体的な状態が含まれているかを確認してください。数値化できない項目であれば、「〇〇の画面と同一の表示順であること」など、比較対象を明示する形で代替できます。

テスト環境・前提条件の記載——見落としやすい周辺情報

テスト環境や前提条件は、仕様書の中で後回しにされやすい項目です。しかし、環境情報の記載漏れは、本番リリース後に「テスト環境では再現しなかった」という問題を引き起こす原因になります。

特に確認すべき周辺情報は以下のとおりです。

  • テストに使用するブラウザの種類・バージョン(例:Chrome 最新版、Safari 17以降)
  • 対応デバイス・画面解像度(例:スマートフォン縦向き、1920×1080のデスクトップ)
  • 外部連携サービスがスタブ(代替)対応かどうか
  • テスト実施前に必要なデータ投入や設定変更の手順

これらの情報が整備されていないと、テスト実施者によって環境がばらつき、同じテストケースでも結果が変わってしまいます。テスト仕様書の記載内容として、環境情報を「付録」扱いにせず、本文に組み込むことを推奨します。

テスト仕様書の書き方——テスト設計の手順に沿って作成する流れ

テスト仕様書は、要件定義書や設計書を起点として、段階的に作成していくものです。一度に完成させようとすると抜け漏れが生じやすいため、以下の5ステップに沿って順を追って進めることをおすすめします。

ステップ1:テスト対象と範囲を確定する——要件定義書との対応づけ

最初に行うべきは、「何をテストするのか」の範囲を明確にすることです。要件定義書に記載された機能要件・非機能要件を一覧化し、それぞれにテストの要否を判断します。

たとえば、ユーザー登録機能であれば「正常系の登録処理」だけでなく、「重複メールアドレスの拒否」「必須項目の未入力時の挙動」なども対象に含まれます。要件定義書の各項目とテスト対象を対応づけておくと、後工程でのトレーサビリティ(追跡可能性)が高まります。

ステップ2:テスト観点を洗い出す——網羅性を確保する考え方

テスト観点とは、「何の視点でテストするか」を整理した切り口のことです。機能の正確性・操作性・セキュリティ・パフォーマンスなど、複数の軸から観点を洗い出します。

観点の洗い出しには、MECE(漏れなく・重複なく)の考え方が有効です。機能単位だけで考えると、ユーザー操作のエラー処理やデータの境界値といった観点が抜け落ちるケースが少なくありません。チェックリスト形式で観点を整理することで、網羅性を担保しやすくなります。

ステップ3:テスト条件と合否基準を定義する——あいまいな表現を排除する

テスト観点が定まったら、次は「どういう条件でテストし、どの状態を合格とするか」を言語化します。ここでの精度が、発注者とベンダーの認識齟齬を防ぐ鍵になります。

たとえば「画面表示が正しいこと」という基準は曖昧です。「商品名・価格・在庫数が仕様書の表示仕様と一致していること」のように、具体的な確認項目と期待値を明記することが重要です。合否基準があいまいなままテストを実施すると、合格・不合格の判断がテスト担当者によって異なり、品質のばらつきが生じます。

ステップ4:テストケースへの展開——仕様書から実行単位に落とし込む

テスト仕様書が固まったら、実際に実行できる単位のテストケースへ展開します。テスト仕様書が「何をどのレベルで確認するか」の設計図であるのに対し、テストケースは「手順・入力値・期待結果」を1件ずつ記述した実行文書です。

仕様書の粒度が粗すぎると、テストケースへの展開時に担当者が独自の解釈を加えてしまい、テストの品質が均一になりません。一方、仕様書に細かすぎる記述を入れると、テストケースと内容が重複し、文書の管理コストが増します。発注側が確認・承認する粒度としては、テスト観点・条件・合否基準が明記されたテスト仕様書の段階が適切です。

ステップ5:レビューと承認——発注側が確認すべきチェックポイント

テスト仕様書は、ベンダーが作成した後に発注側がレビューし、承認するプロセスが不可欠です。レビューの際は、以下の観点を中心に確認することをおすすめします。

  • 要件との対応関係:要件定義書に記載された機能がテスト対象として漏れなく含まれているか
  • 合否基準の明確さ:「正しく動作すること」のような曖昧な表現が残っていないか
  • 非機能要件の扱い:パフォーマンスやセキュリティなど、機能以外の観点が適切に設定されているか
  • テスト範囲の除外理由:テスト対象外とした機能がある場合、その理由が明記されているか

承認後に仕様変更が発生した場合は、テスト仕様書の改訂も同時に行う運用ルールを設けておくと、文書と実態のズレを防ぐことができます。

テスト仕様書のテンプレート——実例サンプルと項目解説

テスト仕様書の構成要素を理解したうえで、次に必要になるのが「実際に使えるフォーマット」です。ここでは、業務システム開発の現場で活用しやすいテンプレート構造を示したうえで、入力バリデーションを例にした具体的な記載例と、運用時の注意点を解説します。

基本テンプレートの構造——列項目と記載例

テスト仕様書のフォーマットは、プロジェクトや組織によって異なりますが、以下の列構成が標準的です。それぞれの列が果たす役割を理解しておくことで、ベンダーから提出された仕様書の品質を判断する際にも役立ちます。

  • テスト対象:どの画面・機能・モジュールをテストするかを示します。
  • テスト観点:何を確認するかの視点です。「正常系」「異常系」「境界値」などが代表的な観点です。
  • テスト条件:テストを実行する前提となる状態や入力値を記載します。
  • 期待結果:テストを実施したときに、システムがどう振る舞うべきかを明示します。
  • 合否:実施後の結果をOK/NGで記録する列です。
  • 担当:テストを実施する担当者名または担当チームを記載します。
  • 備考:再テストの指示、バグ票の番号、条件の補足などを自由記述します。

業務システム向けサンプル——入力バリデーションを例に

以下は、社員情報登録画面における「メールアドレス入力欄」のバリデーションを対象にしたサンプルです。テスト仕様書の記載例として参照してください。

  • テスト対象:社員情報登録画面 / メールアドレス入力欄
  • テスト観点:正常系——正しい形式のメールアドレスが登録できること
  • テスト条件:「user@example.com」を入力し、登録ボタンを押下する
  • 期待結果:登録が完了し、「登録しました」のメッセージが表示される
  • 合否:OK
  • 担当:山田(QA担当)
  • 備考:—
  • テスト対象:社員情報登録画面 / メールアドレス入力欄
  • テスト観点:異常系——「@」が含まれない文字列を入力した場合のエラー制御
  • テスト条件:「userexample.com」を入力し、登録ボタンを押下する
  • 期待結果:登録が実行されず、「メールアドレスの形式が正しくありません」のエラーメッセージが表示される
  • 合否:NG
  • 担当:山田(QA担当)
  • 備考:エラーメッセージが表示されず、登録が完了してしまう。バグ票 #042 参照

このように、正常系・異常系・境界値のそれぞれに対して条件と期待結果を明示することで、テスト漏れを防ぎやすくなります。また、NGの場合にバグ票番号を備考欄に紐づけておくことで、不具合の追跡管理もスムーズになります。

テンプレートを使いこなすための運用上の注意点

テスト仕様書のフォーマットそのものよりも、「いつ・誰が・どのように更新するか」のルールを決めておくことが重要です。フォーマットが整っていても、テスト実施後に結果が記入されなかったり、設計変更が反映されないまま運用されたりするケースは少なくありません。

発注側として確認しておきたいポイントは以下のとおりです。

  • テスト実施のたびに合否・備考が更新されているか
  • 仕様変更があった場合に、テスト条件・期待結果も連動して修正されているか
  • NGとなった項目が再テスト後に正しく更新されているか
  • テスト仕様書のバージョン管理(更新日・更新者)が行われているか

テスト仕様書のサンプルやテンプレートは、作成の出発点に過ぎません。運用ルールとセットで整備することで、はじめて品質管理のツールとして機能します。

発注側が知っておくべきポイント——テスト仕様書の品質をどう評価するか

テスト仕様書はベンダーが作成するものですが、その品質を評価できるのは発注側であるべきです。「提出されたから確認済み」という形式的なレビューでは、品質管理の機能を果たせません。受け取った文書を発注側が適切に読み解けるかどうかが、プロジェクト全体のQA水準を左右します。

テスト仕様書の品質チェックリスト——発注者が確認する3つの軸

テスト仕様書のレビューでは、次の3つの軸で確認することが有効です。

  • 網羅性:要件定義書や画面仕様書に記載された機能が、テスト対象としてもれなく列挙されているか。「未実装」「対象外」と明記されている項目があれば、その理由が記載されているかも確認します。
  • 粒度の適切さ:テスト条件が曖昧でないか。「正常に動作すること」のような記述は粒度が粗く、何をもって合格とするかが判断できません。入力値・操作手順・期待結果が具体的に書かれているかを見ます。
  • 判定基準の明確さ:合否(Pass/Fail)の基準が客観的に定義されているか。担当者によって判定が変わるような記述が残っていないかを確認します。

CLANEが関与したプロジェクトでは、この3軸をもとにレビューシートを整備し、ベンダーへのフィードバックを定型化した事例があります。属人的な確認から脱却することで、レビュー漏れの発生率が下がりました。

ベンダーへの確認事項——仕様書の提出前に問うべき質問

テスト仕様書の提出を受ける前に、以下の質問をベンダーに投げることで、文書の信頼性を事前に把握できます。

  • テスト設計にはどの手法(同値分割・境界値分析など)を使っていますか?
  • 要件定義書とテスト仕様書のトレーサビリティ(対応関係)は管理されていますか?
  • テスト仕様書のレビューは誰が実施しましたか?作成者と同一人物ではありませんか?
  • 非機能要件(性能・セキュリティなど)はテスト対象に含まれていますか?

これらへの回答が曖昧な場合、仕様書の内容にも同様の曖昧さが残っているケースが少なくありません。提出後に大幅な修正を求めるよりも、提出前に確認する方が双方の負担を減らせます。

テスト仕様書が形骸化するパターンと回避策

テスト仕様書が形式だけ整って機能しないケースには、共通したパターンがあります。

  • コピー流用:前プロジェクトの仕様書を流用し、今回の要件に合わせた更新がされていない。見出しや項目名だけ変えて中身が古いままになります。
  • テスト実施との乖離:仕様書は存在するが、実際のテスト実施はその内容に沿っていない。担当者が「自分のやり方」でテストを進め、仕様書が後付けで整備されるケースです。
  • 更新されない仕様書:開発中の仕様変更がテスト仕様書に反映されず、古い仕様に基づいたテストが継続されます。

回避策として有効なのは、テスト仕様書のバージョン管理を義務付け、仕様変更のたびに更新履歴を記録させることです。また、テスト実施記録(エビデンス)と仕様書の対応を確認できる体制を発注側が整えることで、形骸化を早期に発見できます。

まとめ——テスト仕様書を起点にした品質管理の考え方

ここまで、テスト仕様書の定義・構成項目・テスト設計の手順・テンプレートの見方・発注側による評価ポイントを順に整理してきました。

改めて強調しておきたいのは、テスト仕様書は「開発チームが提出する成果物のひとつ」ではなく、発注側と開発側が品質の認識を揃えるためのコミュニケーションツールだという点です。

たとえば「正常に動作すること」という要件は、発注側にとっては「業務フロー全体が滞りなく回ること」を意味し、開発側にとっては「エラーが表示されないこと」を意味している場合があります。このズレは、リリース直前や本番稼働後まで表面化しないことも少なくありません。テスト仕様書を介して確認観点・合否基準・対象範囲を事前に文書化しておくことで、こうした認識のズレを開発の早い段階で発見・修正できます。

実践的な観点から、次のアクションを整理すると以下のとおりです。

  • テンプレートの導入:テスト仕様書の構成がプロジェクトごとにバラバラになることを防ぐために、自社標準のテンプレートを用意しておくことが有効です。項目の抜け漏れを防ぎ、レビューの効率も上がります。
  • レビュー体制の整備:テスト仕様書は、作成後に発注側の担当者が内容を確認するプロセスを組み込んでおくことが重要です。「テスト観点が要件を網羅しているか」「合否基準が曖昧になっていないか」を発注側の視点でチェックする習慣が、品質管理の精度を高めます。
  • 要件定義との連動:テスト仕様書の品質は、上流工程の要件定義の粒度に大きく左右されます。要件が曖昧なままテスト設計に進むと、確認観点も曖昧になります。要件定義の段階から「何をもって完成とするか」を言語化しておくことが、結果としてテスト仕様書の精度を底上げします。

テスト仕様書の書き方やテスト設計の手順は、一度整備すれば次のプロジェクトにも流用できる資産になります。発注側の担当者がその構造と評価基準を理解しておくことで、ベンダーや開発チームとの対話の質が変わり、品質管理全体の水準を引き上げることにつながります。

テスト仕様書は保守・運用段階でも重要な資産
システム納品後、テスト仕様書は保守管理や追加開発の基準として活用できます。ドキュメント体系を整えて運用効率を高める。
保守管理サービスを詳しく

この記事の後によく読まれている記事

同じ人が書いた記事