単体テストとは?たんたいてすと
単体テストとは、モジュールや関数といった最小単位を対象に、内部構造を根拠にして正しさを検証するテスト。V字モデルではプログラム設計(詳細設計)と対応し、設計書に書かれた内部ロジックが実装されているかを確かめる位置づけになるため、テスト設計はホワイトボックス、すなわち命令網羅・判定条件網羅・複数条件網羅といった網羅基準を選んで行う。単体では呼び出し先の未完成モジュールをスタブ、呼び出し元をドライバで代替し、対象を孤立させてから流す。早期に潰すほど修正コストが低いという原則から、自動化して回帰的に回す対象になりやすい工程でもある。
最終更新:2026-10-06
この語が出る過去問を解く →背景
欠陥の修正コストは後工程ほど跳ね上がるため、内部構造を根拠に確かめられる最小単位のうちに潰しておくのが合理的になる。V字モデルが各テスト工程を対応する設計工程の裏返しに置いているのも、何を根拠に合否を判定するかを工程ごとにはっきりさせるためで、詳細設計に対応する単体テストではホワイトボックスの網羅基準が使える。対象を孤立させるためにスタブとドライバで周囲を代替するのは、他モジュールの不具合と混ざると切り分けの利点そのものが失われるからである。自動化して回帰的に回す対象になりやすいのも、対象が小さく外部依存を切ってあるという同じ性質に由来する。
具体例
サイボウズのkintoneのような業務アプリ基盤で、権限判定のロジックだけを取り出してテストする場合、参照するユーザ管理側をスタブで置き換え、権限の組合せごとに分岐を通す。どの分岐を通したかをカバレッジで測り、判定条件網羅まで満たしているかで打ち切りを判断する。
試験での引っ掛け
スタブとドライバの向きが定番の引っ掛けで、スタブは下位(呼ばれる側)の代替、ドライバは上位(呼ぶ側)の代替である。トップダウンテストで要るのがスタブ、ボトムアップテストで要るのがドライバ、という対応まで押さえる。網羅基準では、命令網羅を満たしても判定条件網羅を満たすとは限らない(逆は成り立つ)という強弱関係が問われる。記述式では「なぜ単体でホワイトボックスを使うのか」を、対象が小さく内部構造を根拠にできる段階だから、と言い切れるようにしておく。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:令和4年度 秋期 応用情報技術者試験 午前 問53(IPA)
あるシステムの設計から結合テストまでの作業について、開発工程ごとの見積工数を表1に、開発工程ごとの上級技術者と初級技術者との要員割当てを表2に示す。上級技術者は…
正解:4
要点:生産性差のある要員は上級者換算に直して期間を計算する
現状は、設計6人月÷2人=3か月、プログラム作成・単体テストは初級2人が上級1人分に相当するため実質3人月/月で12÷3=4か月、結合テスト12÷2=6か月の計13か月です。上級を1人ずつ加えると、設計6÷3=2か月、プログラム作成・単体テスト12÷4=3か月、結合テスト12÷3=4か月の計9か月となり、13−9=4か月短縮できます。
出典:平成29年度 秋期 応用情報技術者試験 午前 問47(IPA)
テストで使用されるスタブ又はドライバの説明のうち、適切なものはどれか。
正解:ドライバは、引数を渡してテスト対象モジュールを呼び出す。
要点:ドライバは上位から呼び出し、スタブは下位で呼び出される
ドライバはテスト対象モジュールの上位に置く仮のモジュールで、引数を与えてテスト対象を呼び出し、結果を受け取る。逆にスタブは下位に置く仮のモジュールで、テスト対象から呼び出されて所定の値を返す。ボトムアップテストではドライバを、トップダウンテストではスタブを用いる。
出典:平成29年度 秋期 応用情報技術者試験 午前 問48(IPA)解説で登場
アジャイル開発のプラクティスのうち、回帰テストを行うことを前提とするものはどれか。
正解:リファクタリング
要点:リファクタリングは振る舞い不変を回帰テストで担保する
リファクタリングは、外部から見た振る舞いを変えずに内部構造を改善する作業である。振る舞いが変わっていないことを確かめる必要があるため、既存のテストを繰り返し実行する回帰テストが前提となる。自動化された単体テストが整っていることが、安心してリファクタリングを進める条件になる。
出典:令和5年度 秋期 応用情報技術者試験 午前 問42(IPA)
セキュアブートの説明はどれか。
正解:PCの起動時にOSのプログラムやドライバのデジタル署名を検証し、デジタル署名が有効なものだけを実行することによって、OS起動完了前のマルウェアの実行を防ぐ技術
要点:セキュアブートは署名検証で起動前のマルウェア実行を防ぐ
セキュアブートは、PCの起動過程でOSのローダーやカーネル、ドライバに付与されたデジタル署名を検証し、正当な署名をもつものだけを実行する仕組みである。改ざんされたプログラムや署名のないプログラムは実行されないため、OSが立ち上がる前にマルウェアが動き出すことを防げる。UEFI(BIOSの後継となる起動用ファームウェア)ファームウェアの機能として実装される。
出典・参考
公式シラバスの4 開発技術 > 3. 実装・構築 > (8) ソフトウェアユニットのテストに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。