単体テストとは?たんたいてすと
単体テストとは、モジュールや関数といったプログラムの最小単位ごとに、意図したとおりに動くかを確かめるテスト工程。V字モデルではプログラム設計と対応する位置にあり、内部の分岐や経路を見ながら試すホワイトボックステストが中心になる。命令網羅・判定条件網羅といった網羅基準で、どこまで試したかを測る。
最終更新:2026-10-06
この語が出る過去問を解く →背景
欠陥は見つかるのが遅いほど修正費用が跳ね上がる。組み上げた後の異常から原因のモジュールを突き止めるより、部品の段階で潰すほうが桁違いに安い、という経済的な理由から、テストは最小単位から始める順序に整理された。入力値検証やエラー処理の異常系は結合後には作り込みにくく、この段階でしか十分に試せない。
具体例
JavaならJUnit、PythonならpytestでモジュールごとにテストコードをGitHub ActionsなどのCIで自動実行し、変更のたびに回す形が一般的。消費税計算であれば、境界となる金額、端数処理の丸め方向、負数や桁あふれといった異常系を分岐ごとに与えて、想定どおりに弾くかを確かめる。
試験での引っ掛け
外から見た振る舞いだけを確かめるブラックボックス型と取り違えやすい。単体テストは内部構造を見て経路を網羅するのが基本で、外部仕様に照らすシステムテストとは対応する設計工程も着目点も違う。網羅率が高いことと欠陥がないことも別で、そもそも書かれていない処理や仕様そのものの誤りは網羅基準では捕まらない。
関連用語
出た過去問
出典:平成28年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問22(IPA)
システム開発で行うテストについて,テスト要求事項を定義するアクティビティと対応するテストの組合せのうち,適切なものはどれか。
正解:システム方式設計:システム結合テスト / ソフトウェア方式設計:ソフトウェア結合テスト / ソフトウェア詳細設計:ソフトウェアユニットテスト
要点:V字モデルでは設計と同じ粒度のテストが対応する
共通フレームでは、各設計アクティビティでその粒度に対応するテストの要求事項を定義します。システム方式設計にはシステム結合テスト、ソフトウェア方式設計にはソフトウェア結合テスト、ソフトウェア詳細設計にはソフトウェアユニットテストが対応し、V字モデルの左右が対称に対応します。
出典:令和7年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問22(IPA)
図のような階層構造で設計された組込みシステムがある。このシステムの開発プロジェクトにおいて,デバイスドライバ層の単体テスト工程が未終了で,アプリケーション層及び…
正解:トップダウンテスト
要点:下位が未完成なら上位から結合しスタブで代替する
上位のアプリケーション層とミドルウェア層の単体テストが済み、下位のデバイスドライバ層が未完了という状況では、上位から順に結合していくトップダウンテストが適する。未完成の下位モジュールは、決められた値を返すスタブで代替すればよい。逆に下位から積み上げるボトムアップテストでは、まさに未完成の層が起点となるため実施できない。
出典・参考
公式シラバスの4 開発技術 > 3. 実装・構築 > (8) ソフトウェアユニットのテストに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。