前書き
JSTQBの勉強をしていて、曖昧となっている「テストレベル」「テストタイプ」を自分なりに非常に簡略化してまとめていきます
テストレベル(4)
- コンポーネントテスト
- 統合テスト
- システムテスト
- 受け入れテスト
テストタイプ(4)
- 機能テスト
- 非機能テスト
- ホワイトボックステスト
- 変更関連のテスト(確認テスト・リグレッションテスト)
上記テストレベルとテストタイプは、JSTQB Foundation Level のシラバス(Version 2018V3.1.J03)で定められてるものとなります。
テストレベルとは?
V字モデル開発の上流工程に該当する3つのフェーズを確認するテスト
- 要求定義 - システムテスト
- 基本設計 - 統合テスト
- 詳細設計 - コンポーネントテスト(単体テスト)
- 実装 - (コンパイラ)
テストタイプとは?
テスト対象の、特定の性質をテストするための活動。それぞれのテストタイプでは、
- 機能テスト…システムが「何をするべきか」を確認する
- 非機能テスト…システムが「どのように上手く」振る舞うかを確認する。(例)性能効率性やセキュリティなど
- ホワイトボックステスト…システムの内部構造や実装に基づいて確認する
- 変更関連のテスト…システムの変更をした後、変更が問題なく行えている事と、他の部分に悪い影響が出ていない事を確認する。(例)欠陥を修正した後の確認テストや機能を追加した後のリグレッションテストなど
全てのテストレベルで、全てのテストタイプが適応できる。
例題
下記のシステムについて、テストレベルとテストタイプを考えてみます。
ショッピングサイト。ユーザー情報(氏名、生年月日、メールアドレス、パスワード)を登録しておき、会員画面にログインできる。お気に入り登録や購入履歴、カートへの追加や削除ができる。
-
単体テスト ユーザー新規登録ができる
├ 機能テスト 氏名などの情報が定められた要件通りに入力でき、保存される
├ 非機能テスト 電波の不安定な状況下での登録機能の確認
├ ホワイトボックステスト パスワードは大文字を含み、8文字以上という要件がある場合、それを考慮する
└ 変更関連のテスト パスワードが小文字のみでも登録可能な欠陥を修正した後の確認テスト -
統合テスト ユーザーを新規追加し、登録した情報を使ってログインできる
├ 機能テスト ログインできる
├ 非機能テスト 電波の不安定な状況下でのログイン
├ ホワイトボックステスト 一度登録した情報を削除してログイン不可を確認
└ 変更関連のテスト 欠陥修正後の確認テスト -
システムテスト ユーザー新規登録、ログインをして商品の購入ができる
├ 機能テスト 商品の購入までできる
├ 非機能テスト 購入した商品の情報が履歴としてデータベースに保存される
├ ホワイトボックステスト 一度購入をキャンセルして別の商品を購入したとき、正しい商品が購入できる
└ 変更関連のテスト 欠陥修正後の確認テスト -
受け入れテスト ショッピングサイトとして、一連の活動ができる
├ 機能テスト ユーザー登録、ユーザー情報の修正、商品の購入などができる
├ 非機能テスト 保存されたユーザー情報には登録ユーザーしかアクセスできない
├ ホワイトボックステスト ログアウトすると、ログインor新規登録をするまで購入不可
└ 変更関連のテスト 有料会員のみ送料無料の機能を追加したときのリグレッションテスト
あとがき
システムのテストについて自分なりに考えることで、「テストレベル」と「テストタイプ」について理解を深めることができました。非機能テストとホワイトボックステストについては理解が不十分なので、さらに学習を進めていきます!