問題

問53 プログラムテストに関する記述として,適切なものはどれか。

ア ソフトウェアの品質は,設計段階で向上させるよりもテスト段階で保証した方がよい。
イ テスト完了後のプログラムを修正した場合,修正部分を確認するテストデータを確認済みのテストデータに追加して再テストを行う方がよい。
ウ テストの目的はプログラムが正常に稼働することの確認なので,プログラムにエラーを起こさせるテストデータは含めない方がよい。
エ プログラムの作成者が,テストケースを設計してテストをする方がよい。

マネジメント系>開発技術>システム開発技術>システム開発技術

解説と解答

 プログラムテストでは,開発したプログラムが要求された機能や性能を満たしており,実際に使用できるかどうかを検証します。テストの目的は,できる限り多くのエラーを検出して品質を保証することであり,プログラムが正しいことを証明することではないことに留意しましょう。

 上流工程(要求定義や設計の段階)において品質が確保されず,下流工程(プログラミングやテストの段階)に欠陥が残ってしまった場合,修復のための作業が広範囲に及ぶため,その修復には多くのコストがかかります。ソフトウェアの品質を確保するためには,下流工程のテストの段階で品質を保証するのではなく,より上流に位置する設計の段階で品質を向上させるようにします。よって選択肢アは誤りです。

 選択肢イは適切な記述です。テスト完了後のプログラムを修正した場合,修正部分とは直接関係のない,確認済みの正常な部分に対して悪影響を与える可能性があります。そのため,修正部分をテストする際には,修正部分を確認するテストデータだけでなく,確認済みのテストデータも使用し,再テストを行う必要があります。なお,このケースのように,ソフトウェアのある一部分の修正が,今まで正常に動作していたほかの部分に影響を与えていないかを検証するテストのことをレグレッションテスト(Regression Test,退行テスト)と言います。

 テストの目的には,プログラムが正常に稼働することの確認だけでなく,エラー処理が適切に行われることの確認も含まれています。そのため,通常のテストデータだけでなく,エラーを起こさせるテストデータを含めてテストを行う必要があります。そのため選択肢ウは誤りです。

 自分が作成したプログラムをテストしても,本人の気が付かないような誤解や誤りを検出することはできません。プログラムテストを行う際には,プログラムの作成者以外の人が,テストケースを設計してテストをする必要があります。よって選択肢エも誤りです。

 以上より正解は,選択肢イです。

小倉 美香(おぐら みか)
アプリケーションデザイナー 代表取締役
情報サービス会社の勤務を経て,1998年より現職。保持する資格は,プロジェクトマネージャ,テクニカルエンジニア(ネットワーク),同(情報セキュリティ),基本情報技術者など多数。著書に「短期完全マスター ITパスポート 2009年版」などがある。