テストの種類と技法

  • 249
    Like
  • 0
    Comment
More than 1 year has passed since last update.

テストに触れる機会があり,どんなテストがあるのか調べた際のメモ

テストの種類

単体テスト

 単体テストとは,クラスや関数といった単位のプログラムのテストになります,
主に設計通りにこれらが動くかをテストし,論理構造が適切かを確認します.

  • 機能確認テスト
    • 1つのモジュールが設計書や仕様書通りに動作することを確認するテスト
  • 制御フローテスト
    • プログラムの論理構造に沿って,「命令」や「分岐」などが実行されるかを確認するテスト
  • データフローテスト
    • データや変数が「定義」「使用」「消滅」の順に行われているかを確認するテスト

結合テスト

 結合テストとは,単体テストで検証したプログラムを組みわせて行うテストになります.

  • 状態遷移テスト
    • 状態遷移図や状態遷移表に基づいて動作を確認するテスト

機能テスト

 機能テストとは,結合したプログラムを1つの機能として行うテストです.

  • 機能確認テスト

システムテスト

 システムテストは,個々のプログラムや機能を結合したプログラムが仕様通りに動くかを検証するためのテストです,

  • 確認テスト

    • 回帰テスト
      • 修正・変更した後に,変更箇所が正しく動くかを確認するテスト
    • デグレードチェックテスト
      • 修正・変更を行った後に,新たな不具合が生まれていないかを確認するテスト
    • etc.
  • 評価テスト

    • セキュリティテスト
      • 悪意のある外部からの攻撃への対応や脆弱性が存在しないかを確認するためのテスト
    • ユーザビリティテスト
      • 操作性,学習性,理解性,見やすさといったユーザーに対しての使いやすさを確認するテスト
    • 障害許容性テスト
      • 障害が発生した場合に指定された機能が維持されていることを確認するテスト
  • 負荷テスト

    • 性能テスト
      • 処理能力が仕様を満たしているか確認するテスト
    • ロングランテスト
      • 長時間の連続稼働によって処理能力や稼働率に問題が生じないかを確認するテスト
    • 負荷テスト
      • 極端に高い負荷をかけた状況下での動作を確認するテスト
    • etc.

ユーザによるテスト

  • 受け入れテスト
    • 対象のシステムがユーザーの要求を満たしているのかを確認するテスト
  • 運用テスト
    • 実際の操作環境下でシステムが正しく動くかを確認するテスト
  • アルファテスト
    • 開発者以外の人が操作して,不具合がないことを確認するテスト
  • ベータテスト
    • 発売・リリース前の製品を開発者以外の一般ユーザーが操作して,不具合がないことを確認するテスト

テスト技法

ホワイトボックステスト

ホワイトボックステストとは,システムの中身を理解した上でそれらを意識しながら行うテストを指します.
ホワイトボックステストは,主に単体テストで用いられ以下のテストが分類されます.

  • 制御フローテスト
  • データフローテスト

ホワイトボックステストを行うにあたって,論理構造(処理の流れや実行順序)を視覚化する必要があります.
その方法の1つとして,フローチャートが挙げられます.

カバレッジ基準

カバレジ基準とは,着目する要素のことを指し,それらをどれだけ網羅できているかを割合で示します.

  1. ステートメントカバレッジ
    1. フローチャート内から要素として,「命令文」を選択した場合
  2. デシジョンカバレッジ
    1. フローチャート内から要素として,「分岐した経路」を選択した場合
  3. 複合条件カバレッジ
    1. 条件に含まれる全てのパターンを満たす場合

これら全てのカバレッジは選択した経路を,最低一度は通らなくてはなりません.
これらのカバレッジ基準は,下に行くほどテスト回数が多くなります.
また,上位のカバレッジは下位のカバレッジ基準を含んでいるため,上位のカバレッジ基準を満たすと,
必然的に下位カバレッジ基準を満たすことになります.

ブラックボックステスト

ホワイトボックステストを用いた単体テストが終わると,システムの内部構造を意識しないテストを指します.
主に,機能テストシステムテストに分類されます.

ブラックボックステストでは,以下のような順序をたどりテストを行います.

  1. テストの目的を考える
  2. 機能を洗い出す
  3. テスト観点を抽出する(例:フォームからポストされる値の確認)
  4. テスト観点の機能へ割り当てる
    1. 正常系
    2. 異常系
    3. 組み合わせ系
    4. etc.
  5. テスト技法を決定する