ITパスポート試験 / 平成22年度 春期 ITパスポート試験 / 問40
certification-simodake-work

平成22年度 春期 ITパスポート試験 問40 解説 ソフトウェアテストの分類

表計算ソフトを利用して,次の3種類のワークシートを作成した。それぞれのワー クシートをプログラムと考えるとき,これらのワークシートの動作を確認するテスト のうち,結合テストに相当するものはどれか。 (1) 4~9月の各月の売上をすべて入力すると,その合計を計算するワークシート “上半期” (2) 10~3月の各月の売上をすべて入力すると,その合計を計算するワークシート “下半期” (3) ワークシート“上半期”の売上合計とワークシート“下半期”の売上合計を加え て年間の売上合計を自動計算し,月別のグラフを表示するワークシート“年間”

  1. ア ワークシート“上半期”, ワークシート“下半期”のいずれにおいても,1か月分 の売上を入力しなかった場合には,各ワークシート上で売上合計がエラーになるこ とをテストする。
  2. イ ワークシート“上半期”に 4~9月の各月の売上を,ワークシート“下半期”に 10~3月の各月の売上を入力し,それぞれのワークシート内で半期の売上合計が正 しく計算されることをテストする。
  3. ウ ワークシート“上半期”とワークシート“下半期”の売上合計が,ワ ークシート“年間”に正しく反映されることをテストする。 ✓ 正答
  4. エ ワークシート“上半期”の売上合計とワークシート“下半期”の売上合計を手計 算することによって合算し,別途手計算で算出した年間の売上合計と一致すること をテストする。

解説

この問題は、ソフトウェア開発におけるテストの種類(単体テストと結合テストの違い)を理解しているかを問うものです。結合テストとは、個別に完成したプログラムを組み合わせたときに、それらが正しく連携して動くかを確認する工程を指します。本問では、個別の計算機能である「上半期」「下半期」と、それらを集計する「年間」が正しくデータを引き継いでいるかを確認することが目的となります。

ソフトウェアテストの階層構造

システム開発の現場では、いきなり完成品を動かすのではなく、いくつかの段階を踏んでテストを行います。これをテストの階層と呼びます。

・単体テスト(ユニットテスト) プログラムの最小単位(関数や個別のワークシートなど)が、設計通りに動作するかを確認します。今回の選択肢イのように、各ワークシート単独で計算が正しいかを確認するテストはこれに当たります。

・結合テスト(統合テスト) 複数のプログラムを組み合わせ、プログラム間のデータの受け渡しや機能の連携が正しく行われるかを確認します。今回のケースでは「上半期」と「下半期」の計算結果というデータが、「年間」という上位の仕組みに正しく流し込まれているかを検証するため、選択肢ウが正解となります。

・システムテスト システム全体が要求仕様を満たしているか、あるいは業務の流れとして破綻していないかなど、総合的な観点からテストを行います。

問題を解くための思考プロセス

問題を解く際は、まず「テストの対象が何であるか」を分類します。

  1. 各ワークシートの中身だけで完結しているか? → もしそうであれば単体テストです。選択肢ア(エラー処理)や選択肢イ(計算結果の検証)は、そのワークシート単体でも実行可能であるため単体テストの範疇に含まれます。

  2. 複数のワークシートをまたいでデータのやり取りが発生しているか? → 「年間」ワークシートは、自身で売上を入力するのではなく、他のワークシートの計算結果を引用しています。この「引用元と引用先の連携」こそが結合テストの本質です。

  3. 選択肢エはどう考えるべきか? → 手計算による照合は「正解の妥当性を確認する」という手法としては有用ですが、プログラムの連携動作を保証するテスト手法というよりは、検証の手段の一つです。結合テストの定義である「プログラム間の連携の確認」という観点では、データの反映が正しく行われることをテストするウがより適切といえます。

なぜこの知識が実務で重要なのか

ITパスポート試験でこの項目が問われる背景には、実際の開発現場でのトラブルの多くが「個別の部品は完璧に作られているのに、それらを繋いだ途端に動かなくなる」という現象に起因しているという教訓があります。

Excelやスプレッドシートのような身近なツールであっても、参照セルを誤ったり、ファイル名が変わってリンクが切れたりすると、年間集計のような重要データが正しく計算されません。このように「部品と部品の接点」を意識してテストを設計する能力は、ITを活用するあらゆる職種において、ミスを防ぎ、業務の信頼性を高めるために不可欠な思考法です。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう