🐙

テストについての基本情報[自分用]

2024/11/12に公開

ブラックボックステスト

中身(ソースコード)の実装が見えない状態で、テスト入力を使って正しい結果が返ってくるか確認する方法。

  • 限界値(境界値)テスト: テストケースの入力が、仕様で区切りとなる境界に近いかどうかを確認する手法。例えば、年齢が0歳~幼児とされる範囲なら、境界値は 0、それ以下の -1 などもテストする。
  • 同値分割: テスト対象の範囲を同じ性質を持つ部分に分割し、それぞれの代表的な値でテストする。例えば、年齢が1歳から5歳で「幼児」と定義されていれば、その範囲内であればどの値でもOKとするテスト。

ホワイトボックステスト

コードの内部構造に基づき、すべての命令や条件が正しく動作しているかを確認するテスト。

  • 命令網羅: すべての命令を少なくとも1回は通るようにテストする。
  • 判定条件網羅: 条件式の yes / no の両方(情報分岐のすべての結果)を確認するテスト。
  • 条件網羅: x=2 && y=3 のような条件式の場合、 x=✅ / y=❌ など(個々の条件)の片方だけが満たされるテストをする。この場合、 ✅❌、❌✅、✅✅、❌❌ の4パターンを網羅する。
  • 複数条件網羅: 条件式が複雑な場合に、すべての組み合わせを試す方法。テストケースが増え、やや複雑になることがある。

結合テスト(別名:システムテスト)

結合テストは、複数のモジュール(部品)や機能を組み合わせて、システム全体として正しく動作するかを確認するテストです。単体テストでモジュールごとに確認した後、結合テストで相互作用をチェックします。

ドライバとスタブ

  • スタブ: 呼び出される側の部品の代わりをする仮のプログラムです。
    まだ完成していないモジュールの動作をシミュレーションするために使用します。
  • ドライバ: 呼び出す側の部品の代わりをする仮のプログラムです。
    モジュールが上位の機能を持っていない場合、その上位機能のテストに使います。

https://atgo.rgsis.com/column/about-stub/

トップダウンテスト
システムの上位(トップ)レベルのモジュールからテストを開始し、下位(ダウン)に進んでいく方法。
上位モジュールから順にテストを進めるので、スタブを利用して、まだ実装がない下位モジュールを仮に置きます。
メリット:主要機能の流れを早い段階で確認でき、設計段階の問題が早めに発見されやすい。

ボトムアップテスト
システムの下位モジュールからテストを開始し、徐々に上位モジュールへと結合していく方法。
下位モジュールから順にテストするため、ドライバを使用して、上位モジュールがまだ未実装の場合にその役割を担います。
メリット:下位モジュールの動作を早めに確認できるため、機能の基盤が安定しやすい。

ユーザ受け入れテスト

発注者が要望通りに稼働するかを確認する。

Discussion