基本情報 平成23年度 春期 問59:マネジメント系に関する問題
プログラミングの信頼性の監査において, 指摘事項に該当するものはどれか。
- aプログラマは, プログラム設計書に基づいてプログラミングを行っている。
- bプログラマは, プログラムの全てのロジックパスの中から, サンプリングで単体 テスト項目を設定している。正答
- cプログラミングチームのリーダは, 単体テストの実施結果を記録し保管している。
- dプログラムを作成したプログラマ以外の第三者が, 単体ケストを行っている。
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは b です。
プログラムのテストは「全ての通り道(条件分岐)を網羅」してこそ信頼性が高まります。サンプリング(一部だけ抜き出してテスト)だと、バグが残ったまま検出できないリスクが高い。だからこれは「指摘事項」になります。
👉 覚え方:単体テストはサンプルではなく網羅的に。
ほかの選択肢:a プログラム設計書に基づく=適切/c 単体テスト結果保管=適切/d 第三者テスト=むしろ良い(独立性確保)。
なぜこれが正解か
正解は b。プログラミングの信頼性監査では、単体テストは網羅的なロジックパス全てを対象とするのが原則。サンプリング(抜き取り)で済ませると、テスト未実施のパスにバグが残るリスクが高く、信頼性確保の観点で指摘事項に該当する。
各選択肢の解説
- a:プログラム設計書に基づくプログラミングは正常な手順で、指摘事項にはならない。
- c:単体テスト結果を記録・保管することは品質管理の基本で適切。
- d:プログラム作成者と別の第三者が単体テストを行うのは独立性確保の観点で望ましい。
覚え方・ひっかけ注意
単体テストはサンプリングではなく全パス網羅が原則。基本情報レベルの単体テスト網羅基準(C0命令網羅・C1分岐網羅・C2条件網羅・経路網羅)の知識と合わせて押さえる。「指摘事項を見つける問題」では消去法で「望ましい行為」を除外。
理論的背景
単体テスト(Unit Test)の網羅基準はホワイトボックステストの理論に基づく。C0命令網羅(全文を1回実行)< C1分岐網羅(全分岐の真/偽を実行)< C2条件網羅(各条件の真/偽を全パターン実行)< MC/DC(各条件が独立に結果に影響することを確認)< 経路網羅(全実行経路)と強くなる。経路網羅は理論的には完全だが、ループや分岐の組合せで経路数が爆発するため実用的にはC1〜MC/DCが標準。
実務での使われ方
現代のCI/CDパイプラインではJUnit・pytest・Jest等のテストフレームワークでユニットテストを自動実行し、JaCoCo・Coverage.py等のカバレッジ計測ツールでC0/C1網羅率を継続監視する。GitHub Actions等で「カバレッジ80%未満ならPRブロック」のゲート設定が一般的。航空・医療・自動車などのミッションクリティカルシステムではDO-178C・IEC 61508・ISO 26262が網羅基準を規定する。
試験での位置づけ
基本情報・応用情報のソフトウェア工学・システム監査分野で頻出。テスト網羅基準、テストレベル(単体・結合・システム・受入)、テスト技法(ブラック/ホワイト/グレーボックス)が組み合わせ出題される。システム監査技術者ではプログラム品質監査・テストプロセス成熟度評価が深掘りされる。
選択肢の発展補足
第三者テスト(独立検証V&V: Verification & Validation)は安全規格で要求される。プログラム作成者は自分の認識バイアスでバグを見逃しやすいため、独立した第三者によるテストが品質向上に寄与する。ペアプログラミングやコードレビュー(GitHub Pull Request等)も同様の効果を狙う。アジャイル開発ではTDD(テスト駆動開発)でテスト先行・実装後付けが標準。最近はミューテーションテスト(コード変異テスト)でテスト自体の品質を測る手法も注目されている。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成23年度 春期 問59/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。