開発方法論
下の動画はこの節の解説ではありません。 解説動画の雰囲気を知っていただくための見本として、「AI・機械学習」の動画を再生します。
この節の解説動画はプレミアム限定です。プレミアムなら全科目・全節が見放題!
プレミアムで見るシステムにおけるテストとは、プログラムから仕様にない誤りや欠陥を検出する作業の総称です。開発工程がシステムを段階的に詳細化していくのに対し、テスト工程では詳細化したシステムを段階的に統合していきます。この対応関係をV字型に整理したのがV字モデルです。テストは令和7年度第7問で5肢すべてが問われるなど、用語の取り違えを狙った出題が続いている分野です。「どの工程で」「誰が主体で」「どの技法で」——この3点をセットで押さえていきましょう。
簡単にいうと
V字モデルは、開発工程とテスト工程が向かい合う形!左が下り坂(段階的詳細化)、右が上り坂(段階的統合化)だよ。どの工程がどのテストと対応するかが大事。
① テストとは
システムにおけるテストとは、プログラムから仕様にない誤りや欠陥を検出する作業の総称です。
テストは、分析、設計、プログラミングに該当する各工程と対応する形で、順を追って実施されることが一般的です。
② 詳細化と統合化
開発の側は、基本計画から設計、プログラミングへと下るにつれて、だんだん細かくしていきます。テストの側はその逆で、細かい部品から順にくっつけて、だんだん大きなかたまりに戻していきます。
| 工程 | 進む方向 |
|---|---|
| 開発工程 | 段階的詳細化(大きい単位 → 小さい単位) |
| テスト工程 | 段階的統合化(小さい単位 → 大きい単位) |
③ V字モデル
開発工程とテスト工程の対応関係をV字型に整理したモデルをV字モデルといいます。
V字モデルは、左半分に開発工程を右下がりに並べ、右半分にテスト工程を右上がりに並べた図として表現されます。
具体例
V字モデルを、家を建てる工程にたとえる
| 建築 | システム開発 |
|---|---|
| どんな家にするか決める | 基本計画(要求分析) |
| 間取りを決める | 外部設計 |
| 配管・配線を設計する | 内部設計 |
| 部材を作る | プログラミング |
| 部材を検品する | 単体テスト |
| 配管がつながるか確認 |

V字モデル(開発工程とテスト工程の対応)
試験のポイント
簡単にいうと
内部構造を見るのがホワイトボックス、外部仕様だけ見るのがブラックボックス!そして同値分割法と境界値分析の入れ替えが超頻出。「グループ分け=同値分割法」「境界付近=境界値分析」だよ。
① ホワイトボックステスト
プログラムの内部構造(プログラムロジック)に着目してテストケースを設計する技法です。
モジュール内(ひとまとまりの処理単位)の分岐や繰り返しなど、内部ロジックの正しさを検証します。
| 項目 | 内容 |
|---|---|
| 着目するもの | プログラムの内部構造(プログラムロジック) |
| 検証するもの |
簡単にいうと
5つのテストを、順番・主体者・技法の3点セットで覚えよう!スタブとドライバの入れ替えが定番だよ。「下位が未完成=スタブ」「上位が未完成=ドライバ」だよ。
① 5つのテスト工程
詳細化したシステムを段階的に統合していくテストの工程は次のとおりです。
| 順 | テスト | 検証すること |
|---|---|---|
| ① | 単体テスト | モジュール単位の動作を検証 |
| ② |
簡単にいうと
ここは10個! 令和7年度は回帰テスト・負荷テスト・アルファテスト・ベータテストがまとめて出題されたよ。特にアルファ(試作版)とベータ(発売直前)の順番に注意!
① 目的別にテストを整理する
② 機能テスト
ユーザの要求する機能がすべて含まれ、正常に動作するかどうかを検証するテストです。
③ 回帰テスト(レグレッションテスト、退行テスト)
不具合が見つかったとき、あるいは運用に入ったシステムに後から要件が足されたとき、プログラムに手を入れることになります。
修正作業を行っても、今まで正常に動作していた他の機能が問題なく動作することを検証するテストを回帰テストといいます。
| 項目 | 内容 |
|---|---|
動画・テキスト・過去問・AI添削まですべて網羅!
予備校代の1/10以下で、独学の不安をまるごと解決できます
| 開発工程(左) | 対応するテスト工程(右) |
|---|---|
| 基本計画(要求分析/要件定義) | 運用テスト/承認テスト(受入テスト) |
| 外部設計(概要設計) | システムテスト(総合テスト) |
| 内部設計(詳細設計)/プログラミング設計 | 結合テスト/単体テスト |
| プログラミング | (V字の底) |
⑤ 「検証する」という関係
| テスト工程 | 何を検証するか |
|---|---|
| 運用テスト・承認テスト | 基本計画(要求どおりか) |
| システムテスト | 外部設計(要求仕様を満たしているか) |
| 結合テスト・単体テスト | 内部設計・プログラミング設計 |
上流で決めたことを、対応する下流のテストで確かめる——これがV字モデルの意味です。
⑥ なぜV字型なのか
| 意味 | 内容 |
|---|---|
| 左の工程で決めたことを、右で確かめる | 決めた人が確かめるべき層が対応する |
| 上のほうほど利用者に近い | 要求に近いテストは利用者が行う |
| 下のほうほど技術に近い | 内部のテストは開発者が行う |
⑦ テストケースとは
テストでは、テスト対象のソフトウェアに入力データを与え、その結果をあらかじめ予想している期待値と比較することで、誤りや欠陥を検出します。
この入力値と期待される出力値のペアをテストケースといいます。
| 用語 | 内容 |
|---|---|
| テストケース | 入力値と期待される出力値のペア |
テストケースの良否は、テストの品質そのものを左右する重要な要素です。
⑧ 網羅性と生産性
このテストケースを設計する際には、テストの網羅性と生産性に注意する必要があります。
つまり、正常な処理の場合だけでなく、異常な処理の場合もテストを行い、かつ、最小限のテストケースを用意することができれば網羅性と生産性を両立することができます。
| 観点 | 内容 |
|---|---|
| 網羅性 | 正常な処理だけでなく、異常な処理もテストする |
| 生産性 | 最小限のテストケースで済ませる |
⑨ 2つは相反する
| 網羅性を高めると | 生産性を高めると | |
|---|---|---|
| テストケース数 | 増える | 減る |
| 検出できる欠陥 | 増える | 減る |
| かかる費用 | 増える | 減る |
両立させる工夫が、次に学ぶ設計技法です。
⑩ 2つの設計技法
テストケースの設計技法として、ホワイトボックステストやブラックボックステストがあります。
| 技法 | 着目するもの |
|---|---|
| ホワイトボックステスト | プログラムの内部構造 |
| ブラックボックステスト | プログラムの外部仕様 |
次のテーマで詳しく扱います。
| 家全体として使えるか確認 | システムテスト |
| 施主が検収する | 承認テスト |
| 住んでみる | 運用テスト |
対応の意味
| 決めたこと | 確かめる場 |
|---|---|
| どんな家にするか | 住んでみて確かめる |
| 間取り | 家全体として確かめる |
| 配管の設計 | 配管がつながるか確かめる |
「決めた層と、確かめる層が対応する」——これがV字モデルの本質です。
テストケースを作ってみる
「1から100までの整数を入力する」という仕様のテストケースを考えます。
網羅性だけを考えると
| テストケース数 | 内容 |
|---|---|
| すべての値 | -∞ から +∞ まで無限 |
現実的ではありません。
生産性だけを考えると
| テストケース数 | 内容 |
|---|---|
| 1個 | 50を入力してみる |
欠陥を見逃します。
両立させると
| テストケース | 入力値 | 期待される出力 |
|---|---|---|
| 1 | 1(下限) | 正常処理 |
| 2 | 100(上限) | 正常処理 |
| 3 | 0(下限の直前) | エラー |
| 4 | 101(上限の直後) | エラー |
| 5 | 50(範囲内の代表値) | 正常処理 |
5個のテストケースで、主要な欠陥を検出できます。
この考え方が、次に学ぶ同値分割法と境界値分析です。
テストの費用はどれくらいかかるか
| 工程 | 費用の目安 |
|---|---|
| 開発全体に占めるテストの割合 | 3〜4割 |
「テストは開発の一部」ではなく、開発の主要な部分です。
欠陥を見つける時期と、直す費用
| いつ見つかるか | 直す費用 |
|---|---|
| 要件定義の段階 | 1 |
| 設計の段階 | 数倍 |
| テストの段階 | 数十倍 |
| 稼働後 | 数百倍 |
早く見つけるほど安い——この原則が、V字モデルの右側を丁寧にやる理由です。
中小企業でテストが軽視される理由
| 理由 | 実際に起きること |
|---|---|
| 費用を抑えたい | 稼働後の障害対応で、かえって高くつく |
| 納期が迫っている | テスト期間が削られる |
| 動いているように見える | 異常系のテストがされていない |
削られるのは必ず異常系
| テスト | 削られやすさ |
|---|---|
| 正常な処理 | 削られない(動かないとすぐ分かる) |
| 異常な処理 | 削られやすい(滅多に起きない) |
しかし、実際の障害は異常系で起きます。
| 場面 | 起きること |
|---|---|
| 想定外のデータが入力された | システムが停止する |
| 通信が途中で切れた | データが中途半端に残る |
| 同時に更新された | データが壊れる |
発注者として「異常系のテストはどこまでやるのか」を確認する——診断士として助言できる点です。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a V字モデルは、左半分に開発工程を右下がりに並べ、右半分にテスト工程を右上がりに並べた図として表現される。
> b テストケースとは、入力値と期待される出力値のペアである。
> c 開発工程ではシステムを段階的に統合化し、テスト工程では段階的に詳細化していく。
解答 a:○ b:○ c:×
| モジュール内の分岐や繰り返しなど、内部ロジックの正しさ |
② ホワイトボックステストのテストケース
すべての分岐を通るようにテストケースを設計します。
たとえば「IF A=B なら処理A、そうでなければ処理B」という分岐がある場合。
| ケース | 入力 | 通る処理 |
|---|---|---|
| ケース1 | A=B が成り立つ値 | 処理A |
| ケース2 | A=B が成り立たない値 | 処理B |
2つのケースで、すべての分岐を通ります。
③ ブラックボックステスト
プログラムの外部仕様(機能仕様)をもとに、入力と出力に関するテストケースを設計する技法です。
ソフトウェアをブラックボックスとみなし、「どのような入力を与えられたらどのような結果が得られるのか」に着目しテストケースを設計します。
| 項目 | 内容 |
|---|---|
| 着目するもの | プログラムの外部仕様(機能仕様) |
| 見方 | ソフトウェアをブラックボックスとみなす |
| 設計の観点 | どのような入力を与えられたらどのような結果が得られるのか |
④ 2つの代表的な設計技法
ブラックボックステストの代表的な設計技法に、同値分割法と境界値分析があります。
| 技法 | 目的 |
|---|---|
| 同値分割法 | 入力範囲をグループ化して効率的にテストを行う |
| 境界値分析 | 境界付近に着目して精度を高める |
両者を組み合わせることで、テストは効率性と精度の両方を備えることができます。
⑤ 同値分割法
データを有効値と無効値のグループに分け、おのおののグループから代表値をひとつずつ選んでテストする技法です。
| 手順 | 内容 |
|---|---|
| ① | データを有効値と無効値のグループに分ける |
| ② | おのおののグループから代表値をひとつずつ選ぶ |
| ③ | その代表値でテストする |
例:入力が「1から100までの整数」と定められている場合
| グループ | 範囲 | 代表値の例 |
|---|---|---|
| 有効なグループ | 1から100 | 50 |
| 無効なグループ | 0や101といった範囲外の値 | 0、101 |
このように入力をグループ化することで、すべての値を網羅的にテストせずとも効率的に不具合を検出できます。
⑥ 境界値分析
有効値や無効値の境界付近に注目し、その境界値およびその前後の値をテストケースとして選び、ソフトウェアの動作を検証する技法です。
システムの不具合は境界付近で発生しやすいため、境界を重点的に確認します。
例:「1から100までの整数」を入力とする場合
| 着目する値 | 内容 |
|---|---|
| 下限の1 | 境界そのもの |
| その直前の0 | 境界を少し外れた値 |
| 上限の100 | 境界そのもの |
| その直後の101 | 境界を少し外れた値 |
境界そのものや境界を少し外れた値を検証することで、仕様通りの動作を検証できます。
⑦ 2つの技法の違い
| 同値分割法 | 境界値分析 | |
|---|---|---|
| やること | グループに分けて代表値を選ぶ | 境界とその前後を選ぶ |
| 目的 | 効率的にテストを行う | 精度を高める |
| キーワード | 有効値と無効値のグループ、代表値 | 境界値およびその前後 |
令和7年度の本試験では、境界値分析の説明として同値分割法の内容が出題されました。
⑧ 判別のキーワード
| 選択肢の語 | 対応する技法 |
|---|---|
| 有効値と無効値のグループに分け | 同値分割法 |
| 代表値を1つずつ選んで | 同値分割法 |
| 境界付近に注目し | 境界値分析 |
| 境界値およびその前後の値 | 境界値分析 |
⑨ 2つの技法の比較
| 項目 | ホワイトボックス | ブラックボックス |
|---|---|---|
| 着眼点 | プログラムの内部構造 | プログラムの外部仕様 |
| テストの網羅性 | 高い | 低い |
| テスト実施の負荷 | 高い | 低い |
⑩ なぜこうなるのか
| ホワイトボックス | ブラックボックス | |
|---|---|---|
| なぜ網羅性が高いか | すべての分岐を通せるから | 外から見た振る舞いしか確認しない |
| なぜ負荷が高いか | 内部構造を理解する必要があるから | 仕様書だけで設計できる |
⑪ 使い分け
| テスト工程 | 用いる技法 |
|---|---|
| 単体テスト | ホワイトボックステスト |
| 結合テスト | ブラックボックステスト |
| システムテスト | ブラックボックステスト |
| 承認テスト | ブラックボックステスト |
| 運用テスト | ブラックボックステスト |
ホワイトボックステストを使うのは単体テストのみ——この点が試験で問われます。
なぜ単体テストだけなのか
| 理由 | 内容 |
|---|---|
| 単体テストはモジュール単位 | 内部構造を見られる規模 |
| 結合以降は複雑すぎる | すべての分岐を通すのは現実的でない |
具体例
設例 テストの技法
> テストに関する次の記述の正誤を判定せよ。(令和7年度第7問 改題)
> ウ 境界値分析とは、データを有効値と無効値のグループに分け、おのおののグループから代表値を1つずつ選んでテストする技法である。
> オ ホワイトボックステストでは、モジュール内の分岐や繰り返しなど、内部ロジックの正しさを検証する。
解答 ウ:× オ:○
ウの誤りの作られ方
| 技法 | 内容 |
|---|---|
| 同値分割法 | 有効値と無効値のグループに分け、代表値を1つずつ選ぶ |
| 境界値分析 | 境界値およびその前後の値を選ぶ |
名前を入れ替えただけ——これがこの設問の作り方です。
2つの技法を、会員管理プログラムで考える
仕様:年齢が20代と40代の会員の管理を行う。20代・40代以外が入力された場合はエラーとして扱う。
| 年齢 | 処理 |
|---|---|
| 〜19 | エラー |
| 20〜29 | 20代の処理 |
| 30〜39 | エラー |
| 40〜49 | 40代の処理 |
| 50〜 | エラー |
同値分割法で設計すると
| グループ | 代表値 |
|---|---|
| 〜19(無効) | 10 |
| 20〜29(有効) | 25 |
| 30〜39(無効) | 35 |
| 40〜49(有効) | 45 |
| 50〜(無効) | 60 |
5つのグループから、5個のテストケース——効率的です。
境界値分析で設計すると
| 種別 | 値 |
|---|---|
| 正常データ | 20、29、40、49 |
| 例外データ | 19、30、39、50 |
テストデータとして境界値のデータのみ抽出する——8個のテストケースになります。
なぜ境界で不具合が起きやすいのか
| よくある誤り | 内容 |
|---|---|
| 「20以上」を「20より大きい」と書いた | 20が処理されない |
| 「29以下」を「29未満」と書いた | 29が処理されない |
1つずれる誤りが、境界で表面化します。
| 書き方 | 20は | 29は |
|---|---|---|
| 20 ≦ x ≦ 29(正しい) | 含む | 含む |
| 20 < x ≦ 29(誤り) | 含まない | 含む |
| 20 ≦ x < 29(誤り) | 含む | 含まない |
2つを組み合わせる
| 技法 | 得られるもの |
|---|---|
| 同値分割法 | 効率性(少ないケースで広く見る) |
| 境界値分析 | 精度(危ないところを重点的に) |
両者を組み合わせることで、テストは効率性と精度の両方を備えることができます。
ホワイトボックステストの限界
| 検出できるもの | 検出できないもの |
|---|---|
| 書いたロジックの誤り | 仕様そのものの誤り |
| 通らない分岐 | 書き忘れた機能 |
「書いたとおりに動くか」は分かるが、「書くべきことが書かれているか」は分からない——これがホワイトボックステストの限界です。
ブラックボックステストの限界
| 検出できるもの | 検出できないもの |
|---|---|
| 仕様どおりに動くか | 通らない分岐に潜む欠陥 |
| 想定した入出力の誤り | 内部の非効率 |
両方が必要な理由
| 技法 | 補うもの |
|---|---|
| ホワイトボックス | 内部の網羅性 |
| ブラックボックス | 仕様との一致 |
どちらか一方では不十分です。V字モデルで工程ごとに技法が変わるのは、この補完関係によります。
中小企業での助言
| 場面 | 助言 |
|---|---|
| ベンダにテストを任せている | どの工程でどんなテストをするか確認する |
| 受入テストを自社で行う | 境界値を意識したデータを用意する |
| エクセルの集計マクロを作った | 異常な値でも試してみる |
受入テストで使えるデータ
| 種別 | 例 |
|---|---|
| 境界値 | 金額0円、上限金額、締日当日 |
| 異常値 | マイナスの数量、全角の数字、空欄 |
| 極端な値 | 1000行のデータ、長すぎる商品名 |
「試しに変な値を入れてみる」ことが、実は境界値分析です。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a ホワイトボックステストは、ブラックボックステストと比べてテストの網羅性が高く、テスト実施の負荷も高い。
> b 同値分割法は、入力範囲をグループ化して効率的にテストを行うことを目的とする。
> c ブラックボックステストは、プログラムの内部構造に着目してテストケースを設計する。
解答 a:○ b:○ c:×

ホワイトボックステストとブラックボックステスト(1/2)

ホワイトボックステストとブラックボックステスト(2/2)
試験のポイント
| モジュール間のインタフェースを検証 |
| ③ | システムテスト | システム全体として要求仕様が満たせているかを検証 |
| ④ | 承認テスト | 利用者による検収 |
| ⑤ | 運用テスト | 実際の環境・データによる検証 |
② 単体テスト(モジュールテスト)
単体テストとは、プログラミングの最小単位であるモジュールごとに行うテストです。
| 項目 | 内容 |
|---|---|
| 主体 | 開発者が主体 |
| 技法 | ホワイトボックステスト |
| 検証するもの | 個々のモジュールの論理構造 |
③ 結合テスト(モジュール集積テスト)
結合テストとは、各モジュールを結合して行うテストです。
| 項目 | 内容 |
|---|---|
| 主体 | 開発者が主体 |
| 技法 | ブラックボックステスト |
| 検証するもの | モジュール間のインタフェース等 |
なぜブラックボックステストなのか
各モジュール内部の検証は単体テストで終了しているため、結合テストではモジュール間のインタフェース等を確認します。
④ 結合テストの進め方
結合テストには、トップダウンテストとボトムアップテストがあります。
なお、モジュール数が少ない場合には、一度にすべてを結合してテストする方法もあります。
| 方法 | 内容 |
|---|---|
| ビッグバンテスト | すべてのモジュールの単体テスト終了後に行う |
| 一斉テスト | 単体テストも実施せずにいきなりモジュール全部を結合する |
⑤ トップダウンテスト
上位のモジュールに順次下位モジュールを結合させていくテストです。
上位モジュールから下位モジュールへと順に結合してテストを実施する際、呼び出し先の下位モジュールが未完成の場合は、テスト用のモジュールであるスタブを利用します。
| 項目 | 内容 |
|---|---|
| 進め方 | 上位 → 下位 |
| 未完成なのは | 下位モジュール |
| 使うもの | スタブ |
⑥ ボトムアップテスト
トップダウンテストとは反対に下位モジュールから順次上位モジュールを結合していくテストです。
結合すべき上位モジュールがまだ作成されていない場合、テスト用のモジュールであるドライバを利用します。
| 項目 | 内容 |
|---|---|
| 進め方 | 下位 → 上位 |
| 未完成なのは | 上位モジュール |
| 使うもの | ドライバ |
⑦ スタブとドライバ
令和7年度の本試験では、この2つが入れ替えて出題されました。
| スタブ | ドライバ | |
|---|---|---|
| どちらのテストで使うか | トップダウンテスト | ボトムアップテスト |
| 何の代わりか | 未完成の下位モジュール | 未完成の上位モジュール |
覚え方
| 語 | 対応 |
|---|---|
| スタブ(stub:切り株) | 下にあるもの(下位)の代わり |
| ドライバ(driver:運転手) | 上から動かすもの(上位)の代わり |
「運転手は上に立って動かす」「切り株は下にある」——このイメージで区別できます。
⑧ システムテスト(総合テスト)
システムテストとは、サブシステムおよびシステム全体を統合して行うテストです。
| 項目 | 内容 |
|---|---|
| 主体 | 開発者が主体となって行う最後のテスト。利用者も参加することが多い |
| 技法 | ブラックボックステスト |
| 検証するもの | 機能や性能などが満たされているかどうかを総合的に検証 |
OKであれば利用者へいったんシステムが引き渡されます。
⑨ 承認テスト(受入テスト)
承認テストとは、システムの引き渡し後、利用者による検収の際に行われるテストです。
| 項目 | 内容 |
|---|---|
| 主体 | 基本的には利用者が主体 |
| 技法 | ブラックボックステスト |
| 検証するもの | 利用者の視点でシステムが要求どおりに稼働するか |
テスト仕様書などを開発側と協同して作成する場合もありますが、基本的には利用者が主体となります。
⑩ 運用テスト(導入テスト)
運用テストとは、システムを運用しながら業務リハーサルを行うテストです。
| 項目 | 内容 |
|---|---|
| 主体 | 利用者が主体 |
| 技法 | ブラックボックステスト |
| 検証するもの | 実際の稼働環境で運用して業務上支障がないか |
業務データを使用したり、事業部門のメンバーがシステムを操作したりするなど、実際の稼働環境で検証します。
⑪ まとめ表
| テスト工程 | テストケース | テスト主体者 |
|---|---|---|
| 単体テスト | ホワイトボックス | 開発者(ベンダ) |
| 結合テスト | ブラックボックス | 開発者(ベンダ) |
| システムテスト | ブラックボックス | 開発者(ベンダ) ※ |
| 承認テスト | ブラックボックス | 利用者(ユーザ企業) |
| 運用テスト | ブラックボックス | 利用者(ユーザ企業) |
※ システムテストは開発者が主体となるテストだが、利用者も参加することが多い。
⑫ 境目がどこか
| 境目 | 内容 |
|---|---|
| 技法の境目 | 単体テストと結合テストの間(ホワイト → ブラック) |
| 主体の境目 | システムテストと承認テストの間(開発者 → 利用者) |
2つの境目がずれている——ここが押さえどころです。
具体例
設例 スタブとドライバ
> 次の記述の正誤を判定せよ。(令和7年度第7問 改題)
> ドライバとは、上位モジュールから下位モジュールへと順に結合してテストを実施する際、呼び出し先の下位のモジュールが未完成の場合、その代わりとなるテスト用ダミーモジュールのことである。
解答 ×
スタブの内容です。
正しく整理する
| 用語 | 代わりになるもの | 使うテスト |
|---|---|---|
| スタブ | 未完成の下位モジュール | トップダウンテスト |
| ドライバ | 未完成の上位モジュール | ボトムアップテスト |
なぜ代わりが必要なのか
トップダウンテストの場合
| 状況 | 内容 |
|---|---|
| 上位モジュールAができた | テストしたい |
| Aが呼び出す下位モジュールがまだない | テストできない |
| スタブを置く | 「呼ばれたら決まった値を返すだけ」のダミー |
ボトムアップテストの場合
| 状況 | 内容 |
|---|---|
| 下位モジュールa、b、cができた | テストしたい |
| これらを呼び出す上位モジュールがまだない | テストできない |
| ドライバを置く | 「呼び出して結果を受け取るだけ」のダミー |
トップダウンとボトムアップの長所・短所
| トップダウンテスト | ボトムアップテスト | |
|---|---|---|
| 早く確認できるもの | 全体の骨格 | 個々の部品 |
| 必要なダミー | スタブ(多くなりがち) | ドライバ |
| 重大な欠陥の発見 | 早い(上位の設計誤りが早く出る) | 遅い |
なぜトップダウンではスタブが多くなるのか
| 理由 | 内容 |
|---|---|
| 上位1つに対して下位は複数 | 呼び出す先の数だけスタブが要る |
5つのテストを、発注者の視点で見る
中小企業がシステムを発注した場合、どこで何をするのかを整理します。
| テスト | 発注者(ユーザ企業)の関わり |
|---|---|
| 単体テスト | 関わらない(ベンダ内部) |
| 結合テスト | 関わらない(ベンダ内部) |
| システムテスト | 参加することが多い |
| 承認テスト | 主体となる |
| 運用テスト | 主体となる |
承認テストが重要な理由
| 内容 |
|---|
| ここで承認すると、検収完了になる |
| 検収後の修正は、追加費用になることが多い |
承認テストで確認すべきこと
| 観点 | 例 |
|---|---|
| 要求どおりか | 要件定義書と突き合わせる |
| 実際の業務で使えるか | 本物に近いデータで試す |
| 異常時にどうなるか | わざと変な操作をしてみる |
| 性能は足りるか | 繁忙期の量を想定する |
運用テストで初めて分かること
| 発見 | 内容 |
|---|---|
| 月末の処理が終わらない | 実際のデータ量で初めて分かる |
| 入力の順序が業務と合わない | 現場が操作して初めて分かる |
| 帳票が現場で使えない | 印刷して初めて分かる |
テスト工程を削ってはいけない理由
| 削ると | 起きること |
|---|---|
| 承認テストを形だけにする | 稼働後に「話が違う」となる |
| 運用テストを省く | 本稼働初日に業務が止まる |
とくに業務が止まる影響
| 業種 | 止まると |
|---|---|
| 小売 | レジが打てない |
| 製造 | 出荷できない |
| 卸 | 受注を受けられない |
「テスト期間を確保する」ことが、診断士として助言できる最も実務的な点の1つです。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a 単体テストは開発者が主体となり、ホワイトボックステストでテストケースを作成する。
> b 承認テストは、基本的には利用者が主体となり、利用者の視点でシステムが要求どおりに稼働するかを検証する。
> c 結合テストでは、各モジュール内部の論理構造を検証するためにホワイトボックステストでテストケースを作成する。
解答 a:○ b:○ c:×

工程順によるテスト(1/2)

工程順によるテスト(2/2)
試験のポイント
| いつ行うか |
| プログラムの修正作業が発生したとき |
| 検証するもの | 今まで正常に動作していた他の機能が問題なく動作すること |
別名
| 名称 |
|---|
| レグレッションテスト |
| 退行テスト |
regression は「後戻り、退行」——直したはずが元より悪くなる(退行する)ことを防ぐテスト、という意味です。
④ 性能テスト
処理速度、レスポンスタイム、ターンアラウンドタイム、スループットなどのシステムの性能を検証するテストです。
第7章のシステムの評価で学んだ指標が、そのまま出てきます。
| 指標 | 意味 |
|---|---|
| レスポンスタイム | 応答時間 |
| ターンアラウンドタイム | 投入から結果が出るまでの時間 |
| スループット | 単位時間あたりの処理量 |
⑤ 負荷テスト
大量のデータを処理させる、同時に多くの要求を出す、長時間稼働させるなど、システムに量的な負荷をかけ、使用に耐えられるかどうかを検証するテストです。
| かける負荷 |
|---|
| 大量のデータを処理させる |
| 同時に多くの要求を出す |
| 長時間稼働させる |
⑥ 性能テストと負荷テストの違い
| 性能テスト | 負荷テスト | |
|---|---|---|
| 調べること | 性能はどれくらいか | 使用に耐えられるか |
| かけるもの | 通常の条件 | 量的な負荷 |
令和7年度の本試験では、回帰テストの説明として負荷テストの内容が出題されました。
⑦ 異常時テスト(例外処理テスト)
わざと異常を起こしてみて、ちゃんと立ち直れるかを見るテストです。でたらめな値を入れてエラー処理が働くか、入力の途中で電源を落として復旧が効くか——そういう確かめ方をします。
| 試すこと |
|---|
| 誤ったデータを入力する |
| データ入力時に電源を切る |
⑧ 操作性テスト(ユーザビリティテスト)
使う人にとって無理がないかを見るテストです。入力する順番が実際の仕事の流れとそろっているか、出てくる文言が平たい言葉で用件を伝えられているか——そういう点を確かめます。
⑨ ペネトレーションテスト
構築したセキュリティシステムが実際に機能しているかどうかを検証するテストです。
| 項目 | 内容 |
|---|---|
| 別名 | 疑似侵入テスト |
| やること | システムに対して不正アクセスを実際に試みる |
| 目的 | システムがどのような脆弱性をもっているのかを明らかにする |
ペネトレーションテストは、1回実施すればよいものではなく、セキュリティ攻撃の進化に合わせ、定期的に実施することが望ましいとされます。
⑩ A/Bテスト
Webサイトで2つの異なるページをランダムに表示して、それらに対する利用者の反応の違いを統計的に分析するのに使うテストです。
複数の案のどれが優れているかについて試行を繰り返して定量的に決定します。
| 項目 | 内容 |
|---|---|
| 対象 | Webサイトの2つの異なるページ |
| 方法 | ランダムに表示する |
| 分析 | 利用者の反応の違いを統計的に分析 |
他のテストと性格が違う
| 通常のテスト | A/Bテスト | |
|---|---|---|
| 目的 | 誤りや欠陥を検出する | どちらが優れているかを決める |
⑪ アルファテスト
新たに開発されたハードウェアやソフトウェア、オンラインサービスなどが開発初期段階の試作版の段階(アルファ版)のときに実施されるテストです。
アルファ版には致命的な欠陥や重大な不具合が含まれている可能性もあります。
⑫ ベータテスト
開発中のソフトウェアやネットサービスの発売(あるいは正式公開)直前の版をユーザに提供し、実際に使用してもらって性能や機能、使い勝手などを評価してもらうテストです。
⑬ アルファとベータの違い
令和7年度の本試験では、この2つが入れ替えて出題されました。
| アルファテスト | ベータテスト | |
|---|---|---|
| 時期 | 開発初期段階の試作版(アルファ版) | 発売(正式公開)直前の版 |
| 誰が使うか | 開発側 | ユーザ |
| 品質 | 致命的な欠陥や重大な不具合が含まれている可能性もある | ほぼ完成している |
覚え方
| 記号 | 順序 |
|---|---|
| α(アルファ) | ギリシャ文字の1番目 → 先 |
| β(ベータ) | ギリシャ文字の2番目 → 後 |
⑭ 10のテストを一覧で
| テスト | 検証するもの |
|---|---|
| 機能テスト | 要求する機能がすべて含まれ正常に動作するか |
| 回帰テスト | 修正後、他の機能が問題なく動作するか |
| 性能テスト | 処理速度、レスポンスタイム等の性能 |
| 負荷テスト | 量的な負荷をかけ、使用に耐えられるか |
| 異常時テスト | 故意に異常を発生させ、リカバリできるか |
| 操作性テスト | システムの使いやすさ |
| ペネトレーションテスト | セキュリティシステムが実際に機能しているか |
| A/Bテスト | 2つのページのどちらが優れているか |
| アルファテスト | 試作版(アルファ版)の段階で実施 |
| ベータテスト | 発売直前の版をユーザに使ってもらう |
具体例
設例1 回帰テスト
> 次の記述の正誤を判定せよ。(令和7年度第7問 改題)
> 回帰テストでは、大量アクセスなどの負荷をかけて応答時間や資源利用状況などを測定し、高負荷状況でのソフトウェアの振る舞いを検証する。
解答 ×
負荷テストの内容です。
設例2 アルファテスト
> 次の記述の正誤を判定せよ。(令和7年度第7問 改題)
> アルファテストでは、システム開発の最終段階で、開発中のソフトウェアを利用者に提供し、実際に使用してもらって、システム要件を満たしているかを検証する。
解答 ×
ベータテストの内容です。
2つの誤りに共通するもの
| 選択肢 | 書かれている内容 | 本来の名称 |
|---|---|---|
| 回帰テスト | 負荷をかけて振る舞いを検証 | 負荷テスト |
| アルファテスト | 最終段階で利用者に提供 | ベータテスト |
令和7年度第7問は、テストの用語を5肢すべてで問う出題でした。
| 選択肢 | 内容 | 正誤 |
|---|---|---|
| ア | アルファテストの説明にベータテストの内容 | × |
| イ | 回帰テストの説明に負荷テストの内容 | × |
| ウ | 境界値分析の説明に同値分割法の内容 | × |
| エ | ドライバの説明にスタブの内容 | × |
| オ | ホワイトボックステストの説明(正しい) | ○ |
4つとも「別のテストの内容を当てている」——この出題形式を知っておくと、対策の方向が定まります。
対策は「名前と内容を1対1で結びつける」
| キーワード | 対応するテスト |
|---|---|
| 修正後、他の機能が動くか | 回帰テスト |
| 量的な負荷をかける | 負荷テスト |
| 有効値と無効値のグループ、代表値 | 同値分割法 |
| 境界値およびその前後 | 境界値分析 |
| 下位モジュールが未完成 | スタブ |
| 上位モジュールが未完成 | ドライバ |
| 試作版(アルファ版) |
回帰テストが実務で最も重要な理由
| 状況 | 起きること |
|---|---|
| 1か所直した | 別のところが壊れる |
| 気づかずにリリースした | 利用者が障害に遭う |
なぜ壊れるのか
| 原因 | 内容 |
|---|---|
| 共通の部品を直した | その部品を使う別の機能に影響 |
| データの形式を変えた | そのデータを使う機能に影響 |
| 想定外の依存があった | 設計時に把握されていなかった |
回帰テストの自動化
| 手動 | 自動 | |
|---|---|---|
| 1回の費用 | 安い | 高い(作る手間) |
| 繰り返しの費用 | 毎回かかる | ほぼゼロ |
修正が頻繁なら、自動化が有利
XPの「テスト駆動開発」「継続的インテグレーション」は、この自動化を前提にしています。
| プラクティス | 効果 |
|---|---|
| テスト駆動開発 | テストが先にあるので、回帰テストがすぐできる |
| 継続的インテグレーション | 少なくとも1日1回は結合テストを行う |
アジャイル開発が頻繁な変更に耐えられる理由が、ここにあります。
A/Bテストの実務的な価値
| 場面 | 使い方 |
|---|---|
| 通販サイトのボタンの色 | 2案をランダムに出して購入率を比べる |
| メールの件名 | 2案を出して開封率を比べる |
| 商品ページの構成 | 2案を出して滞在時間を比べる |
「勘」ではなく「数字」で決める
| 従来 | A/Bテスト | |
|---|---|---|
| 決め方 | 社内の議論、経験 | 実際の利用者の反応 |
| 根拠 | 主観 | 統計的な分析 |
中小企業でも使える
| 必要なもの | 内容 |
|---|---|
| Webサイト | ECサイト、自社サイト |
| アクセス数 | ある程度の数が必要 |
| ツール | 無料のものもある |
アクセス数が少ないと使えない
| アクセス数 | 判断 |
|---|---|
| 1日10件 | 統計的に差が出ない |
| 1日1000件 | 判断できる |
第14章の統計解析で学ぶ「検定」の考え方が、ここで実務に結びつきます。
ペネトレーションテストの位置づけ
| 項目 | 内容 |
|---|---|
| 何を確かめるか | セキュリティシステムが実際に機能しているか |
| なぜ定期的に必要か | セキュリティ攻撃が進化するから |
「一度やれば終わり」ではない
| 時点 | 状況 |
|---|---|
| 実施時 | その時点の攻撃手法には耐えられる |
| 1年後 | 新しい攻撃手法が登場している |
第6章で学んだセキュリティ対策と同じ発想——対策は一度きりではなく、継続的に見直すものです。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a ペネトレーションテストは疑似侵入テストともよばれ、システムに対して不正アクセスを実際に試みることにより、脆弱性を明らかにする。
> b 異常時テストでは、故意に異常を発生させ、リカバリできるかどうかを検証する。
> c ベータテストは、開発初期段階の試作版の段階で実施されるテストである。
解答 a:○ b:○ c:×

目的別によるテスト(1/2)

目的別によるテスト(2/2)
試験のポイント
プレミアムプラン
¥9,800〜/ 買い切り・自動更新なし(税込)
決済はStripe(世界最高水準・PCI-DSS準拠)で安全に処理されます。カード情報は当サービスに保存されません。
| 発売直前の版をユーザに | ベータテスト |