LoginSignup
8
11

More than 5 years have passed since last update.

ソフトウェアテストの技法

Last updated at Posted at 2017-10-14

テストに関するフレームワーク

あらゆるテストは、次に示す「テストを構成する五大要素」から成り立つ。

  • テストの実施者
  • 網羅性(ガバレッジ)
  • 発見したい問題
  • 作業内容
  • 結果の判定方法

これらの要素を念頭に置き、次に述べるテスト技法を組み合わせる必要がある。
具体的な技法は次に述べる

テストの実施者に着目したテスト技法

「誰がテストを行うのか」がポイント

  • ユーザーテスト(想定ユーザーを対象)
  • アルファテスト(社内のテストチームが行うテスト)
  • ベータテスト(マーケティングターゲットを対象)
  • バグの叩き出し
  • 対象分野の専門家によるテスト
  • ペアテスト

ガバレッジテスト

「どこまでテストを行うのか」がポイント
全機能について、他の機能との組み合わせ全てが問題ないことを確認するなら、それはガバレッジ指向。
問題を予測し、それを確認するのなら、そのテストは問題指向と言える。

  • 関数テスト(全ての関数を一つづつテストする)
  • 機能や関数の組み合わせテスト
  • メニューツアー(GUIを操作し、選択肢の全てを確認する手法)
  • ドメインテスト(各関数の変数において、良い代表値を選出することで、すべての値でのテストを担保する)
  • 同値クラス分類(ある変数において、同じ動作をするとみなせる値集合)
  • 境界値テスト
  • 最適な代表値によるテスト
  • 論理テスト(プログラムにおける全ての論理関係の検証)
  • 状態遷移テスト(取りうる全てのテスト状態に遷移させる)
  • パステスト(状態遷移における、一連の流れについてサブテストを作成し、担保する)
  • ステートメントと分岐のガバレッジ(命令文と分岐ガバレッジを高い率になるようにテストを設計する)
  • 仕様や要求に基づくテスト(全ての仕様や要求に対してテスト)
  • 組み合わせテスト(様々な変数の組み合わせと、その値を考慮)

発見したい問題に焦点をあてた技法

「どのようなリスクがあるか」がポイント

  • 入力に関する制約
  • 出力に関する制約
  • 演算処理状の制約
  • メモリに関する制約

作業内容に焦点を当てた技法

「どうテストするか」がポイント

  • 回帰テスト(リグレッションテスト, 実行済みのテストを再度実施すること。修正が反映されているか、以前のバグに影響を与えていないか、副作用はないか)
  • 手順書に従ったテスト
  • スモークテスト(全面的な再テストが不要な、回帰テスト)
  • 探索的テスト(新しいテスト方法の探索)
  • ゲリラテスト, モンキーテスト(焦点を絞ってテストを実施し、効率的にバグを抽出する)
  • シナリオテスト
  • インストールテスト(いろいろな構成やバージョンのシステムに、異なるインストールを行う)
  • 負荷テスト
  • 長時間テスト
  • 性能テスト

合格判定に焦点を当てた技法

「合否の判断基準」がポイント

  • 検証情報の組み込みによる自己評価
  • 前回の結果との比較
  • 仕様書等の文章との比較
  • 一貫性の確認(履歴やイメージ、競合他社、ユーザーの期待、目的等から判断する)
8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11