本文へ移動

基本情報技術者試験 · 学習ガイド

テスト技法

テスト技法とは

テスト技法とは、誤りを見つけやすくするために、試す入力を工夫して選ぶ方法です。

エルくんが17歳・18歳・19歳のカードを受付で試し、18歳以上という条件の境界を確かめる図。
考え方の例:18歳以上を受け付ける処理なら、17・18・19を試すと境界前後を確認できます。19だけでは「18より大きい」と実装された誤りを見逃すかもしれません。

大量の入力をすべて試すのは難しいため、誤りが出やすい代表値を選びます。特に条件が切り替わる境目は重要です。

基本の仕組み

基本の仕組みの図解。中央に「18歳以上を受け付ける」判定の帯を横向きに置き、左から17歳・18歳・19歳を並べる。17歳と18歳の間に境界線を引き、17歳側を「受け付けない」、18歳・19歳側を「受け付ける」と示す。
覚えること:18歳以上なら17・18・19を試す

18歳以上を受け付ける処理なら、17・18・19を試すと境界の前後を確認できます。19だけでは「18より大きい」と実装された誤りを見逃すかもしれません。

同値分割は同じ扱いになる入力をグループ化し、境界値分析はその境目を重視します。ホワイトボックステストでは、分岐や経路など内部構造を基に確認します。

テストに通っても誤りが一切ないと証明できるわけではありません。正しい入力だけでなく、異常値や欠落、操作順の違いも仕様に沿って考えます。

テストの段階と結合テストの進め方

テストの段階と結合テストの進め方の図解。画面中央に上位モジュールを上、未完成の下位モジュールの枠を下に置き、上から下への矢印を描く。下の枠にはスタブを差し込み、下位モジュールの代わりに使う関係を示す。
覚えること:上位から進め、未完成の下位はスタブで代用

単体テストはモジュール内部の処理、結合テストはモジュール間のインタフェース、システムテストは性能や負荷を含めた要件全体、受入テスト(運用テスト)は発注者や利用者が業務で使えるかを確かめます。修正後に、変更していない部分へ悪影響が出ていないかを確かめるのが回帰テスト(リグレッションテスト)です。

結合テストを上位のモジュールから進めるトップダウンテストでは、まだできていない下位モジュールの代わりにスタブを使います。下位から進めるボトムアップテストでは、呼出し元となる上位モジュールの代わりにドライバを使います。

テストの段階と結合テストの進め方
テストの段階主な確認対象主に実施する側
単体テストモジュール内部の処理開発者
結合テストモジュール間のインタフェース開発者
システムテスト性能・負荷を含む要件全体開発者(開発側)
受入テスト(運用テスト)業務で使えるか発注者・利用者
テストの段階と結合テストの進め方
進め方テストする順序代わりに用意するもの
トップダウンテスト上位から下位へスタブ(下位モジュールの代用)
ボトムアップテスト下位から上位へドライバ(上位の呼出し元の代用)

ブラックボックステストと網羅の基準

ブラックボックステストと網羅の基準の図解。中央に「AかつB」の判定装置を置き、左の2枚の入力カード「A真・B偽」「A偽・B真」から矢印を通す。右側では両方の矢印が「判定は偽」に着き、その先の処理Xには進まない構図にする。
覚えること:この2ケースは条件網羅のみ

ブラックボックステストは内部構造を見ずに仕様から入力を選びます。「18歳以上を受け付ける」なら、18以上が有効同値クラス、17以下が無効同値クラスで、同値分割ではそれぞれから代表値を一つずつ選びます。境界値分析(限界値分析)では、境目の17と18を必ず含めます。

ホワイトボックステストは、内部の命令や分岐をどこまで実行したか(網羅、カバレージ)を基準にします。「AかつBなら処理Xを行う」という判定一つなら、命令網羅はAとBがともに真の1ケースで満たせますが、判定条件網羅(分岐網羅)には判定が偽になるケースも必要です。

条件網羅は、AとBがそれぞれ真と偽をとればよいので、(A真・B偽)と(A偽・B真)の2ケースでも満たせます。ただし、この2ケースでは判定がどちらも偽になるため、処理Xが一度も実行されず、判定条件網羅も命令網羅も満たしません。条件の真偽のすべての組合せを試す複数条件網羅が最も強い基準です。

ブラックボックステストと網羅の基準
網羅の基準満たす条件「AかつB」での最少ケース数
命令網羅すべての命令を1回以上実行する1
判定条件網羅(分岐網羅)各判定の真と偽を1回以上実行する2
条件網羅各条件の真と偽を1回以上とる(判定結果は問わない)2
複数条件網羅条件の真偽のすべての組合せを試す4

試験に出る

  • 同値分割は同じ扱いになる入力のグループ化、境界値分析はその境目を重視する点の区別。
  • 18歳以上なら17・18・19のように、境界の前後と境界値そのものを試す考え方。
  • ホワイトボックステストは分岐や経路など内部構造を基に確認する点。
  • テストが通っても誤りがないと証明できるわけではない点。
  • 異常値・欠落・操作順の違いも仕様に沿って試す必要がある点。
  • トップダウンテストでは下位の代わりにスタブ、ボトムアップテストでは上位の代わりにドライバを使う点。
  • 条件網羅を満たしても判定条件網羅を満たすとは限らず、複数条件網羅が最も強い基準である点。

重要な言葉

同値分割
同じ扱いになる入力をグループに分けて代表値を試す技法。
境界値分析
条件が切り替わる境目の値に注目して試す技法。
ホワイトボックステスト
分岐や経路など内部構造を基に確認するテスト。
スタブ
トップダウンテストで、未完成の下位モジュールの代わりに呼び出される仮のモジュール。
ドライバ
ボトムアップテストで、上位の呼出し元の代わりにテスト対象を呼び出す仮のモジュール。
回帰テスト
修正や変更によって、変更していない部分に悪影響が出ていないかを確かめるテスト。

確認問題

確かめよう18歳以上の条件で境界の直前の値は?

17です。境界値18と組み合わせます。

境界値分析では、条件が切り替わる境目の値を重視する。

テストに通れば、誤りが一切ないと証明できる。

条件が切り替わる境目を重視するテスト技法は?

ホワイトボックステストが基にするのは?

トップダウンテストで、未完成の下位モジュールの代わりに使うものは?

大量の入力をすべて試すのは難しいため、誤りが出やすい代表値を選びます。特に条件が切り替わるは重要です。

18歳以上を受け付ける処理なら、17・18・19を試すと境界の前後を確認できます。19だけでは「18より大きい」と実装された誤りをかもしれません。

は同じ扱いになる入力をグループ化し、はその境目を重視します。ホワイトボックステストでは、分岐や経路など内部構造を基に確認します。

テストに通っても誤りが一切ないと証明できるわけではありません。正しい入力だけでなく、異常値や欠落、の違いも仕様に沿って考えます。

出典・参考資料

試験の公式案内と、この記事の参考にした学習資料です。

編集:Pinternet Works · 更新日:

教材の編集方針・訂正について