0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Razor Pages 開発文書 ⑩】総合テスト仕様書

0
Last updated at Posted at 2026-07-30

Ubuntu 26.04 + .NET 10 で ASP.NET Core Razor Pages の CRUD アプリを構築し、
その成果物に対して作成した開発工程文書です。
実装済みのコードと実測値に基づいて記述しており、推測による記載は含みません。

Razor Pages 開発文書 の ⑩/全11回です。

シリーズ全記事(全11回)
  1. 【Razor Pages 開発文書 ①】要件定義書
  2. 【Razor Pages 開発文書 ②】基本設計書 (1/2) — システム構成・アーキテクチャ・画面設計
  3. 【Razor Pages 開発文書 ③】基本設計書 (2/2) — データ設計・外部IF・運用設計
  4. 【Razor Pages 開発文書 ④】詳細設計書 (1/4) — クラス構成・エンティティ・データアクセス層
  5. 【Razor Pages 開発文書 ⑤】詳細設計書 (2/4) — 画面制御層・起動処理
  6. 【Razor Pages 開発文書 ⑥】詳細設計書 (3/4) — 発行SQL・処理シーケンス
  7. 【Razor Pages 開発文書 ⑦】詳細設計書 (4/4) — ビュー・設定・実装上の留意点
  8. 【Razor Pages 開発文書 ⑧】単体テスト仕様書
  9. 【Razor Pages 開発文書 ⑨】結合テスト仕様書
  10. 【Razor Pages 開発文書 ⑩】総合テスト仕様書 (この記事)
  11. 【Razor Pages 開発文書 ⑪】受入テスト(UAT)仕様書

総合テスト仕様書

項目 内容
システム名 BookListRazor(書籍管理システム)
文書番号 TST-ST-001
版数 1.0
作成日 2026-07-24
検証対象文書 要件定義書(REQ-001)

1. 文書の目的

本書は 要件定義書 に定義した機能要件(FR)および
非機能要件(NFR)が、システム全体として満たされていることを検証する
テストケースを定義する。

結合テストが「設計どおりに動くか」を確認するのに対し、本テストは
「要件を満たしているか」を確認する。


2. テスト方針

2.1 テスト対象

要件定義書に定義した全要件を対象とする。

分類 要件 ID 検証方法
機能要件 FR-01〜06 業務シナリオの通し実行
性能 NFR-01〜03 応答時間の計測
可用性 NFR-04〜05 再起動を伴う動作確認
セキュリティ NFR-06〜09 攻撃を模した要求の送信
運用・保守 NFR-10〜13 運用手順の実行
移植性 NFR-14〜15 稼働環境の確認
国際化 NFR-16 日本語データの往復確認

2.2 判定の考え方

要件を「満たす/満たさない」の二値で判定する。性能要件については
実測値を記録し、目標値との比較により判定する。

要件どおりだが実用上の注意を要する事項は「所見」として記録し、
不合格とはしない。


3. テスト環境

項目 内容
OS Ubuntu 26.04 LTS(WSL2)
実行基盤 .NET SDK 10.0.302
接続先 http://localhost:5271
データベース SQLite(BookList.db)
クライアント HTTP クライアント(curl)、Web ブラウザ

4. テストケース

4.1 業務シナリオ(ST-01)

要件定義 3.2 の業務フローを通しで実行する。

ID シナリオ 手順 期待結果 結果
ST-01-01 書籍の登録から確認まで ホーム → BookLists → Create New → 入力 → Create → 一覧確認 登録した書籍が一覧に表示される 合格
ST-01-02 内容の誤りを修正する 一覧 → Edit → 価格を変更 → Save → 一覧確認 変更後の価格が一覧に反映される 合格
ST-01-03 詳細を確認する 一覧 → Details 全項目が表示される 合格
ST-01-04 不要な書籍を削除する 一覧 → Delete → 確認 → Delete → 一覧確認 一覧から消える 合格
ST-01-05 複数件の管理 3 件登録し、うち 1 件を更新、1 件を削除 残 2 件が正しい状態で表示される 合格

4.2 機能要件の充足(ST-02)

ID 要件 ID 検証項目 期待結果 結果
ST-02-01 FR-01 一覧表示 全件が表形式で表示される。0 件でもエラーとならない 合格
ST-02-02 FR-02 新規登録 1 件登録でき、ID が自動採番される 合格
ST-02-03 FR-03 詳細表示 指定 ID の全項目が表示される。該当なしは 404 合格
ST-02-04 FR-04 情報更新 指定 ID の内容が更新される。該当なしは 404 合格
ST-02-05 FR-05 削除 確認画面を経て物理削除される 合格
ST-02-06 FR-06 画面遷移 全画面のヘッダから Home / Privacy / BookLists へ遷移できる 合格

4.3 性能要件(ST-03)

ST-03-01 応答時間(NFR-01:1 秒以内)

10 回計測の平均値と最大値を記録する。

データ件数 対象画面 平均 最大 目標 判定
7 件 一覧 /BookLists 7 ms 10 ms 1000 ms 合格
7 件 登録 /BookLists/Create 2 ms 3 ms 1000 ms 合格
307 件 一覧 /BookLists 140 ms 186 ms 1000 ms 合格
307 件 詳細 /BookLists/Details 2 ms 3 ms 1000 ms 合格

ST-03-02 データ件数(NFR-02:数百件)

ID 検証項目 手順 期待結果 結果
ST-03-02 想定上限での動作 307 件を投入し全機能を実行 全機能が正常に動作し、応答時間が目標内 合格

所見(性能特性)

一覧画面の応答時間は登録件数にほぼ比例する(7 件で 7 ms、307 件で 140 ms)。
この傾向から、NFR-01 の 1 秒を満たす上限は概ね 2000 件程度と見積もられる。

応答サイズも同様に増大し、307 件時点で約 252 KB に達する。
要件(数百件)の範囲では問題ないが、件数が桁で増える場合は
ページングの導入が必要となる(詳細設計 12.1)。

詳細・編集・削除の各画面は 1 件のみを取得するため、件数の影響を受けない。

ST-03-03 同時利用(NFR-03:1 名)

ID 検証項目 期待結果 結果
ST-03-03 単一利用者での動作 全機能が正常に動作する 合格

複数利用者による同時更新は要件の対象外である。なお現仕様では
更新競合を検知できない(詳細設計 12.3)ため、要件を変更する場合は
バージョン列の追加が前提となる。

4.4 可用性要件(ST-04)

ID 要件 ID 検証項目 手順 期待結果 結果
ST-04-01 NFR-04 手動起動 dotnet run --launch-profile http 起動し、要求を受け付ける 合格
ST-04-02 NFR-05 再起動後のデータ保持 登録 → 停止 → 再起動 → 一覧 登録データが残っている 合格
ST-04-03 NFR-05 再起動後の機能継続 再起動後に登録・更新・削除 全機能が正常に動作する 合格

4.5 セキュリティ要件(ST-05)

ID 要件 ID 検証項目 手順 期待結果 結果
ST-05-01 NFR-06 CSRF:トークンなし トークンを付けずに更新要求を送信 HTTP 400 で拒否される 合格
ST-05-02 NFR-06 CSRF:不正トークン 無効なトークンで更新要求を送信 HTTP 400 で拒否される 合格
ST-05-03 NFR-07 XSS:スクリプト注入 書名に <script>alert(1)</script> を登録し表示 エスケープされ、スクリプトとして実行されない 合格(生タグ 0 箇所)
ST-05-04 NFR-08 SQL インジェクション 発行 SQL のパラメータ化を確認 全問い合わせが値をパラメータとして送出している 合格
ST-05-05 NFR-09 通信経路 待ち受けアドレスを確認 localhost のみで待ち受ける 合格

所見(適用範囲の限界)

本システムは認証・認可を実装しない(要件定義 7. スコープ外)。
したがって当該ホストに到達できる利用者は全データを操作できる。
NFR-09 の遵守(外部公開しないこと)が唯一の防御線となる。

4.6 運用・保守要件(ST-06)

ID 要件 ID 検証項目 手順 期待結果 結果
ST-06-01 NFR-10 起動の簡便性 コマンド 1 つで起動 追加手順なしで起動する 合格
ST-06-02 NFR-11 スキーマ変更の追跡 __EFMigrationsHistory を確認 適用済みマイグレーションが記録されている 合格
ST-06-03 NFR-12 SQL ログ 操作後に標準出力を確認 実行された SQL と所要時間が出力される 合格
ST-06-04 NFR-13 バックアップ BookList.db をコピーし別環境で参照 単一ファイルのコピーで完結する 合格

4.7 移植性要件(ST-07)

ID 要件 ID 検証項目 期待結果 結果
ST-07-01 NFR-14 Ubuntu での稼働 Windows 固有製品に依存せず動作する 合格
ST-07-02 NFR-15 追加ミドルウェア不要 DB サーバの別途導入なしに動作する 合格

4.8 国際化要件(ST-08)

ID 要件 ID 検証項目 入力 期待結果 結果
ST-08-01 NFR-16 日本語の登録・表示 書名「ASP.NET Core 入門」、出版社「技術評論社」 文字化けせず保存・表示される 合格
ST-08-02 NFR-16 日本語の更新 日本語を含む値へ更新 正しく更新される 合格
ST-08-03 NFR-16 多バイト文字の長大値 1000 文字の日本語 欠落なく保存される 合格

所見(HTML 出力形式)

日本語は HTML 上で数値文字参照(&#x5165; 形式)として出力される。
これは既定のエスケープ仕様によるもので、ブラウザ上の表示は正常である。
ただし HTML ソースを文字列検索する自動テストを作成する場合は、
デコードを介する必要がある。

4.9 エラー処理(ST-09)

ID 検証項目 手順 期待結果 結果
ST-09-01 存在しないデータへの操作 未登録 ID を指定して各画面を要求 HTTP 404 が返る 合格
ST-09-02 不正な入力値 型不正・必須未入力で送信 登録されず、画面にエラーが表示される 合格
ST-09-03 更新競合 存在しない ID へ更新を送信 HTTP 404、既存データは無変更 合格

5. 合否判定基準

項目 基準
機能要件 FR-01〜06 のすべてが期待どおり動作すること
非機能要件 NFR-01〜16 のうち、要件として測定可能なものがすべて目標を満たすこと
全体 要件未達が 0 件であること

「所見」として記録した事項は、現要件を満たしたうえでの
将来的な注意点であり、不合格とは扱わない。


6. トレーサビリティ

要件 ID 対応するテストケース 判定
FR-01 ST-01-01、ST-02-01 合格
FR-02 ST-01-01、ST-02-02 合格
FR-03 ST-01-03、ST-02-03 合格
FR-04 ST-01-02、ST-02-04 合格
FR-05 ST-01-04、ST-02-05 合格
FR-06 ST-02-06 合格
NFR-01 ST-03-01 合格
NFR-02 ST-03-02 合格
NFR-03 ST-03-03 合格
NFR-04 ST-04-01 合格
NFR-05 ST-04-02、ST-04-03 合格
NFR-06 ST-05-01、ST-05-02 合格
NFR-07 ST-05-03 合格
NFR-08 ST-05-04 合格
NFR-09 ST-05-05 合格
NFR-10 ST-06-01 合格
NFR-11 ST-06-02 合格
NFR-12 ST-06-03 合格
NFR-13 ST-06-04 合格
NFR-14 ST-07-01 合格
NFR-15 ST-07-02 合格
NFR-16 ST-08-01〜03 合格

全 22 要件を検証し、未達は 0 件である。


7. 実施記録

実施日 対象範囲 実施 合格 不合格
2026-07-24 ST-01〜ST-09 34 34 0

要件未達:0 件

7.1 記録された所見

No 内容 該当ケース 対応方針
1 一覧の応答時間が件数に比例する。1 秒を満たす上限は約 2000 件 ST-03-01 要件(数百件)内では問題なし。件数増加時はページングを導入
2 認証がないため、到達可能な利用者は全データを操作できる ST-05 外部公開しないこと(NFR-09)で担保
3 日本語が HTML 上で数値文字参照となる ST-08 表示は正常。自動テスト作成時はデコードが必要
4 更新競合を検知できない ST-03-03 単一利用者前提のため現要件では問題なし

8. 改訂履歴

版数 日付 内容
1.0 2026-07-24 初版作成。全 34 ケースを実施し、要件未達 0 件を確認

← 前:【Razor Pages 開発文書 ⑨】結合テスト仕様書 | 次:【Razor Pages 開発文書 ⑪】受入テスト(UAT)仕様書 →

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?