プログラムテストに関する記述として, 適切なものはどれか。
平成21年度 春期 ITパスポート試験 問53
マネジメント系システム開発技術 › システム開発技術
この問題の解説と、これまでの解答の記録です。
問53
頻出度★★★
解説
問 53
不正解ア
誤り。ソフトウェアの品質は設計・実装の段階で作り込むものであり、テストで後から付け加えられるものではない。テストはあくまで作り込まれた品質を検出・確認する工程で、上流工程(要件定義・設計)の欠陥ほど修正コストが高くつく。したがって「設計段階で向上させるよりテスト段階で保証した方がよい」という考え方は逆である。
- イ
正解 正解はイ。テスト完了後にプログラムを修正すると、修正箇所そのものが正しく直ったかだけでなく、修正の影響で以前は正常に動いていた部分が壊れていないか(デグレード=退行)も確認しなければならない。そこで、修正部分を確認する新しいテストデータを、これまでに確認済みのテストデータへ「追加」して全体を再テストする。これがリグレッションテスト(回帰テスト)の基本的な進め方であり、イの記述はまさにこの手順を述べているので適切である。逆に、新しいテストデータだけで再テストすると、影響範囲の見落としによるデグレードを検出できない。
不正解ウ
誤り。テストの目的は正常動作の確認だけでなく、潜在する欠陥を見つけ出すことにある。そのため、想定外の入力や境界値・不正データなどエラーを意図的に起こさせるテストデータ(異常系のテストケース)を必ず含める必要がある。正常系だけを試すテストでは、実運用で起こる異常入力への耐性を確認できない。
不正解エ
誤り。プログラムの作成者は自分の理解や思い込みに沿ってテストケースを設計しがちで、自分が想定しなかったケースはテスト設計からも抜け落ちる。そのため欠陥を見落としやすい。客観性を確保するには、作成者以外の第三者がテストケースを設計・実施する(あるいは第三者のレビューを入れる)方が望ましい。
ここがポイント
- リグレッションテスト(回帰テスト): プログラム修正後、修正部分の確認用テストデータを既存の確認済みテストデータに追加して再テストし、修正の副作用によるデグレード(退行)が起きていないことを確かめる。
- 品質は上流(設計)で作り込む・テストは異常系も含める・テストは作成者以外の第三者の視点を入れる、というソフトウェア品質管理の基本原則。
用語