テストレベルとテストタイプ

今日、仕事中に、「テストレベルとテストタイプの区別がつかないんですよね」と言っている後輩がいました。その場では解説をしましたが、改めて自分の言葉で語れと言われると難しいので、この記事で書いてみようと思います。

まずは、カンニングせずに自分の理解を書いてみます。

テストタイプ:特定のテスト目的を実現するためのテストケースの集合

テストレベル:テストアイテムの統合度合いによって区切ったテスト活動の各段階

これだけ書くと、テストレベルは統合度合い毎の品質を評価したい、という目的があるため、テストタイプの意味を広くとらえるとテストレベルを含みそうですね。テストタイプにはリグレッションテストが含まれるという解釈がされることから、テストタイプは必ずしも製品の特性を分類したものではないということも、この理解をサポートします。

ちなみにテストフェーズ、テストサイクルという用語も理解を書いてみます。

テストフェーズ:特に意味はない。テストを時系列に関連する何らかの基準で区切ったもののかたまり

テストサイクル:テスト実行のかたまりの最小単位

だいぶ自信のなさが伝わるでしょうか笑

さて、では答え合わせです。

A group of test activities based on specific test objectives aimed at specific characteristics of a component or system.

これがテストタイプ。前半は正解ですね、後半は「コンポーネントやシステムの特性を狙った」です。特性をどうとらえるかで解釈が変わりそうですが、リグレッションテストが含まれることも考慮すると、限定の度合いは小さそうです。

A specific instantiation of a test process.

これがテストレベルです。なんと。プロセスのインスタンスです。としか言っていないとは。

ちなみに少し古いJSTQB用語集(JSTQB-glossary.V2.3.J01.pdf)では以下です。

系統的にまとめ、管理していくテストの活動のグループ。各テストレベルは
プロジェクトの特定の責務と対応付けができる。テストレベルの例には、コンポーネントテスト、統合テスト、システムテスト、受け入れテストがある。

こちらは少しわかりやすくて、管理側の視点、プロジェクト側の視点が強いということですね。最初に書いた、結合度の話は正直関係ないということですね。

なお、テストフェーズの定義もありました。

A distinct set of test activities collected into a manageable phase of a project, e.g., the execution activities of a test level.

つまりテストレベルのさらに詳細化したもの、ということですね。

テストサイクルはこちら。

Execution of the test process against a single identifiable release of the test object.

テスト対象のリリースに紐づく、というのが大きなところでしょうか。

ISTQBの定義では、テストタイプは技術的な視点、テストレベルでは管理的な視点に着目していそうです。

この記事が気に入ったらサポートをしてみませんか?