基本情報技術者試験 システム開発完全対策
開発モデル・テスト技法・UML・アジャイル

システム開発は、ソフトウェアをどのような手順・手法で作るかを学ぶ分野です。 基本情報技術者試験では、開発モデルの特徴(ウォーターフォール・アジャイル)テスト技法(ブラックボックス・ホワイトボックス)が毎回のように出題されます。 用語の意味と使い分けをしっかり押さえることが、この分野の得点アップの鍵です。

1. 開発モデルの種類と特徴

ソフトウェアをどのような順序・サイクルで開発するかを定めたのが開発モデル(開発プロセスモデル)です。 試験では各モデルの特徴と向いているプロジェクトのタイプを問う問題が頻出です。

モデル特徴向いているケース
ウォーターフォール要件定義→設計→製造→テストを順番に進める。各工程の完了後に次へ。後戻りが困難要件が最初から明確で変更が少ない大規模システム
アジャイル短いサイクル(イテレーション・スプリント)で開発とリリースを繰り返す。変更に柔軟要件が変わりやすいWebサービス・スタートアップ
スクラムアジャイルの代表的フレームワーク。スプリント(1〜4週間)単位で計画・開発・レビューを繰り返す小規模チームの反復開発
プロトタイピング試作品(プロトタイプ)を早期に作り、利用者の確認を得ながら要件を固める要件があいまいで利用者の確認が必要なシステム
スパイラルモデル開発をらせん状に繰り返し、各サイクルでリスク評価を行いながら進めるリスクが高く段階的に確認が必要な大規模開発
RAD(高速開発)ツールや既存コンポーネントを活用して短期間でシステムを構築する短納期が求められる中小規模の開発
💡 対比で覚えるポイント:ウォーターフォールは「計画通り順番に・後戻り困難」、アジャイルは「小さく反復・変更に強い」と対比で覚えると試験問題に対応しやすいです。

2. 開発工程の流れと各フェーズ

ウォーターフォールモデルの代表的な工程を理解しておくと、テスト段階の対応関係も整理しやすくなります。 上流工程と下流工程のテストが対応する「V字モデル」は試験頻出です。

上流工程内容対応するテスト(V字モデル)
要件定義利用者の要求を整理し、何を作るか決める運用テスト(受け入れテスト)
外部設計(基本設計)利用者から見た画面・帳票・インターフェースを設計システムテスト
内部設計(詳細設計)プログラム内部のモジュール構造・データ構造を設計結合テスト
プログラミング(製造)設計書をもとにコードを作成単体テスト

V字モデルでは「左側の工程(上流)」と「右側のテスト(下流)」が対応しており、 たとえば外部設計で決めた仕様がシステムテストで検証されます。 この対応を覚えておくと、「〇〇設計に対応するテストは?」という問題がすぐ解けます。

SLCP(共通フレーム)

SLCP(Software Life Cycle Process)は、ソフトウェア開発の各プロセスを標準化したフレームワークです。 日本では「共通フレーム」として広く参照されています。 発注者・開発者・運用者など関係者間の認識を合わせるための共通語彙を提供します。

3. テスト技法(ブラックボックス・ホワイトボックス)

テストはソフトウェアの欠陥(バグ)を発見するための活動です。 テスト技法は大きく2つの観点に分かれます。

ブラックボックステスト

ブラックボックステストは、プログラムの内部構造を見ずに、 仕様(入力と期待される出力)に基づいてテストを行う手法です。 「箱の中身を知らずに外から動作を確認する」イメージです。

技法内容
同値分割入力値を同じ処理をする「同値クラス」に分け、各クラスの代表値1つでテストする1〜100が有効なら代表値として50をテスト、101以上の代表値として200をテスト
限界値分析(境界値分析)同値クラスの境界付近(境界値とその前後)を重点的にテストする。バグが境界に集中しやすいため1〜100が有効なら0、1、100、101をテスト
デシジョンテーブル複数の条件の組み合わせと対応する動作を表にまとめてテストケースを設計する「会員かつクーポンあり→最大割引」などの条件組み合わせ
状態遷移テストシステムの状態と遷移をモデル化し、各遷移をテストするログイン状態・ログアウト状態の遷移を網羅

ホワイトボックステスト

ホワイトボックステストは、プログラムの内部構造(ソースコード)に着目し、 命令や分岐を網羅的に実行することを目標とするテスト手法です。 「箱の中身を見ながらすべての経路を通す」イメージです。 主にプログラマーが行う単体テストで使われます。

4. カバレッジ基準(命令網羅・分岐網羅)

ホワイトボックステストでは、テストがどれだけコードを「カバー(網羅)」しているかを カバレッジ(網羅率)で表します。 カバレッジ基準が高いほど多くのテストケースが必要になりますが、より多くのバグを発見できます。

基準内容必要テストケース数
命令網羅(C0)すべての命令(ステートメント)を最低1回実行する少ない(最も弱い基準)
分岐網羅(C1)すべての分岐(if文のTRUE側・FALSE側の両方)を最低1回通る中程度(命令網羅を含む)
条件網羅(C2)複合条件の各単純条件がTRUE・FALSEの両方を取るようにテストする多い(分岐網羅より強い)
複数条件網羅複合条件の全組み合わせを網羅する非常に多い(最も強い基準)
命令網羅 ⊂ 分岐網羅 ⊂ 条件網羅 ⊂ 複数条件網羅 (左ほど弱い、右ほど強い・多くのテストケースが必要)
💡 試験のポイント:「分岐網羅は命令網羅を包含する(分岐網羅を満たせば命令網羅も満たされる)」は頻出の正誤問題です。逆(命令網羅を満たせば分岐網羅も満たされる)は誤りなので注意しましょう。

5. UMLの主要図

UML(Unified Modeling Language:統一モデリング言語)は、 システムの設計・仕様を図で表現するための国際標準の記法です。 オブジェクト指向システムの設計に広く使われています。

図の種類目的主な使いどころ
クラス図クラスの属性・操作・クラス間の関係(継承・集約・関連)を表すシステムの静的構造の設計
シーケンス図オブジェクト間のメッセージのやり取りを時系列で表す処理の流れ・インタラクションの設計
ユースケース図利用者(アクター)とシステムの機能(ユースケース)の関係を表す要件定義・機能一覧の可視化
アクティビティ図処理の流れをフローチャートのように表す業務フロー・アルゴリズムの可視化
状態遷移図(ステートマシン図)オブジェクトの状態変化とトリガーを表す状態管理が複雑なシステムの設計

試験では「クラス図・シーケンス図・ユースケース図のどれを使うべきか」という問題が出ます。 「構造→クラス図」「処理の流れ→シーケンス図」「利用者と機能→ユースケース図」と用途で覚えましょう。

6. レビュー手法

レビューは、設計書やコードを関係者が確認して早期に欠陥を発見する活動です。 テストよりも早い段階で欠陥を取り除けるため、修正コストを大幅に削減できます。

手法内容特徴
ウォークスルー作成者が参加者に成果物を説明しながら確認する非公式なレビュー和やかな雰囲気で意見を集めやすい。早期段階に適している
インスペクションモデレーター・作成者・レビュワーなど役割を決めて行う公式かつ構造化されたレビュー最も厳格で欠陥発見率が高い。記録・追跡も行う
ラウンドロビンレビュー参加者が順番に成果物を読み込んでコメントする方式全員が積極的に参加する
ピアレビュー同僚(ピア)が相互にコードや設計をレビューするコードレビューとして開発現場で広く使われる
🔧 システム開発の問題をゲームで解いてみよう!
⚔️ IT王国の勇者でシステム開発問題に挑戦

7. 例題で確認

問1. プログラムの内部構造を見ず、仕様に基づいて入出力の正しさを検証するテスト手法はどれか。
答え: ブラックボックステスト。内部構造に着目するのはホワイトボックステストです。
問2. 入力値1〜100が有効な仕様に対して、同値分割と限界値分析で設計したテストケースとして適切なものはどれか。
答え: 同値分割では有効クラス(例:50)と無効クラス(例:-1、200)の代表値。限界値分析では境界付近の 0、1、100、101 をテストします。境界値に絞ることでバグを効率的に発見できます。
問3. 分岐網羅(C1)を満たすテストは命令網羅(C0)も満たすか。
答え: 満たす(True)。分岐のTRUE・FALSE両方を通れば、必然的にすべての命令も実行されます。逆に命令網羅を満たしても分岐網羅を満たすとは限りません。
問4. 短いサイクルで開発とリリースを繰り返し、仕様変更に柔軟に対応するアジャイル開発の代表的なフレームワークはどれか。
答え: スクラム。スプリントと呼ばれる1〜4週間の反復サイクルで開発を進めます。
問5. V字モデルにおいて、外部設計(基本設計)に対応するテスト工程はどれか。
答え: システムテスト。「要件定義→運用テスト」「外部設計→システムテスト」「内部設計→結合テスト」「製造→単体テスト」と対応しています。
問6. 利用者(アクター)とシステムの機能の関係を図で表すUML図はどれか。
答え: ユースケース図。システムが提供する機能と利用者の関係を俯瞰するための図です。要件定義段階でよく使われます。

8. よくある質問(FAQ)

Q. ウォーターフォールとアジャイルの違いがあいまいです。

A. 「ウォーターフォール=計画通り順番に・後戻りが困難・要件が最初から決まっているプロジェクト向け」「アジャイル=小さく反復・変更に強い・要件が変わりやすいWebサービス向け」と対比で覚えましょう。試験では特徴の文章から正しい開発モデルを選ぶ問題が多いです。

Q. ブラックボックスとホワイトボックスの区別は?

A. 「ブラック=中が見えない=仕様(入出力)で検証」「ホワイト=中が見える=内部構造(命令・分岐)で検証」と名前の由来で覚えましょう。同値分割・限界値分析はブラックボックス、命令網羅・分岐網羅はホワイトボックスです。

Q. 同値分割と限界値分析の違いがわかりません。

A. 同値分割は「同じ処理をするグループを作って代表値1つをテストする」、限界値分析は「グループの境界付近(端の値)を重点的にテストする」です。実際の試験ではセットで問われることが多く、両方の考え方でテストケースを設計するのが一般的です。

Q. テストの段階の順番が覚えられません。

A. 「単体→結合→システム→運用(受け入れ)」と、小さい単位から大きい単位へ進むと覚えましょう。単体テストは1つのモジュール、結合テストは複数のモジュールの組み合わせ、システムテストはシステム全体、運用テストは実際の利用者が確認する、という流れです。

Q. UMLの図が多くて覚えられません。

A. 試験で頻出なのはクラス図・シーケンス図・ユースケース図の3つです。「構造→クラス図」「処理の時系列→シーケンス図」「利用者と機能→ユースケース図」と用途で整理するのが最短です。

Q. インスペクションとウォークスルーの違いは?

A. インスペクションは「役割を決めた公式で厳格なレビュー」、ウォークスルーは「作成者が説明する非公式なレビュー」です。欠陥発見率はインスペクションの方が高く、ウォークスルーは手軽さが利点です。

Q. スクラムのスプリントとは何ですか?

A. スプリントはスクラムにおける反復開発の1サイクルで、通常1〜4週間の固定期間です。各スプリントでは計画(スプリントプランニング)→開発→レビュー→振り返り(レトロスペクティブ)を繰り返します。スプリントの終了時に動くソフトウェアをリリースするのが原則です。