平成21年度 春期 ITパスポート試験 問53 解説 プログラムテストの原則
プログラムテストに関する記述として,適切なものはどれか。
- ア ソフトウェアの品質は,設計段階で向上させるよりもテスト段階で保証した方がよい。
- イ テスト完了後のプログラムを修正した場合,修正部分を確認するテストデータを確認済みのテストデータに追加して再テストを行う方がよい。 ✓ 正答
- ウ テストの目的はプログラムが正常に稼働することの確認なので,プログラムにエラーを起こさせるテストデータは含めない方がよい。
- エ プログラムの作成者が,テストケースを設計してテストをする方がよい。
解説
選択肢の判断基準
この問題は、ソフトウェアテストの「原則」に関する知識を問うています。正解を導くには、修正後の影響範囲を確認する「回帰テスト」の概念を理解しているかが鍵です。テストの目的はバグを見つけることであり、作成者本人が行うとバイアスがかかりやすい点、また品質はテストではなく設計段階で作り込むものという基本原則を押さえておけば、消去法で正解を絞り込めます。
テストにおける修正と再テストの重要性
プログラムの一部を修正した際、その修正箇所が正しく動作することを確認するのは当然ですが、それによって「既存の正常に動いていた機能」まで壊してしまっていないかを確認しなければなりません。これを回帰テスト(リグレッションテスト)と呼びます。
選択肢イが示す通り、過去に実施したテストデータ(確認済みのデータ)を再利用し、新しい修正部分の検証と組み合わせて行うことは、品質を維持するための鉄則です。修正によって思わぬ副作用が生じることはシステム開発において頻発するため、一度通ったテストを繰り返すことが不可欠となります。
なぜ他の選択肢は誤りなのか
ア:ソフトウェアの品質は、テストで「保証」するものではなく、要求分析や設計段階で「作り込む」ものです。テストはあくまでバグの検出を目的としており、後工程で品質を上げようとしても限界があります。
ウ:テストの目的は「プログラムが正常に動作すること」を確認するだけではありません。「異常系テスト」といって、わざと誤ったデータや想定外の入力を与え、正しくエラー処理が行われるか、システムがクラッシュしないかを確認することも極めて重要です。エラーをあえて起こすことはバグの早期発見に直結します。
エ:テストケースの設計は、プログラム作成者以外の第三者が行うのが原則です。作成者は自分のプログラムに「こう動くはずだ」という思い込み(バイアス)を持ちやすく、バグを見逃してしまう可能性が高いためです。第三者が客観的にテストを行うことで、隠れた不具合を発見しやすくなります。
テスト知識の実践的な意義
この問題で問われている内容は、実際の開発現場で「テスト仕様書」を作成したり「リリース判定会議」に参加したりする際に、技術者や管理者が持っておくべき共通認識です。
特に回帰テストの考え方は、現代の開発手法であるアジャイル開発やCI/CD(継続的インテグレーション・継続的デリバリー)においても非常に重要です。開発サイクルが短縮される中、自動化されたテストコードをいかに維持・運用していくかが、システムの安定稼働の鍵を握っているからです。テストは単なるチェック作業ではなく、品質を担保するための戦略的なプロセスであることを理解しておきましょう。