平成21年度 春期 ITパスポート試験 問45 解説 テスト環境の選定
既に稼働中のシステムに機能を追加するために,プログラムの一部を変更した。本 番稼働してよいかどうかを判断するために,稼働中のシステムに影響を与えることな くテストを行う環境として,最も適切なものはどれか。
- ア プログラミング環境
- イ ほかのシステム用のテスト環境
- ウ 本番環境
- エ 本番環境と同等のテスト環境 ✓ 正答
解説
この問題は、システム開発のテストフェーズにおいて「環境の独立性」と「再現性」を正しく理解しているかを問うものです。正解は、本番環境と同一の条件を持ちつつも隔離された環境である「エ」です。
テスト環境の選定基準
システム開発では、テストの目的によって使用すべき環境が異なります。今回のように「本番稼働してよいか(リリース判定)」を判断する場合、最も重視すべきは「本番環境での挙動を正確に予測できること」です。
もしテスト環境が本番環境と異なる構成(OSのバージョン違い、データベースの容量不足、ネットワーク設定の差異など)であれば、テスト環境では正常に動いたプログラムが、本番環境に適用した瞬間にエラーを起こすリスクがあります。したがって、ハードウェアの性能やソフトウェア構成が本番環境と可能な限り同一である環境が求められます。
誤った選択肢の考え方
なぜ他の選択肢ではいけないのか、それぞれの理由を整理します。
・プログラミング環境 開発者がソースコードを書いてコンパイルや単体テストを行う場所です。個々の機能が正しく動くかを確認するための環境であり、システム全体の結合やリリース判定を行うには不十分です。
・ほかのシステム用のテスト環境 別の目的で作られた環境に無理やりコードを流し込めば、既存のシステムに悪影響を及ぼしたり、設定の競合が発生したりします。環境の汚染を防ぐという意味でも、専用の環境が必要です。
・本番環境 本番環境でテストを行うと、万が一プログラムに不具合があった場合、現在利用しているユーザー全員に影響が及びます。データの破壊やシステムダウンを引き起こす可能性があるため、絶対に避けるべきです。
開発現場におけるテスト環境の重要性
ITパスポートの試験範囲を超えた実務的な視点では、この環境を「ステージング環境」や「検証環境」と呼ぶことが一般的です。
現代の開発現場では、仮想化技術やクラウド(AWSやAzureなど)を利用して、本番環境のコピーを即座に作成することが容易になりました。しかし、環境が本番と同等であればあるほど維持コストも高くなります。そのため、プロジェクトの規模や予算に応じて「どこまで本番環境と合わせるか」というバランス感覚も、エンジニアには求められます。
この問題の教育的意図は、単に用語を覚えることだけでなく「システム運用の安全性をいかに担保するか」というリスク管理の視点を養うことにあります。「本番環境には触らせない(安全)」かつ「本番と同じ結果が得られる(信頼)」という二つの要件を同時に満たす最適解を選ぶことが、この問題の解法です。