テストケースとテスト手順

最近わからなくなったことがありまして。

テストケースとテスト手順の差です。テストケース→(テスト実装)→テスト手順、なのですが、何が詳細化されるかがなぞになったのです。

ということで、まずは恒例の定義から。

test case: A set of preconditions, inputs, actions (where applicable), expected results and postconditions, developed based on test conditions

test procedure: A sequence of test cases in execution order, and any associated actions that may be required to set up the initial preconditions and any wrap up activities post execution.

ISO/IEC/IEEE 29119-1だと

test case: set of test case preconditions, inputs (including actions, where applicable), and expected results, developed to determine whether or not the covered part of the test item has been implemented correctly
NOTE A test case is the lowest level of test input (i.e. test cases are not made up of test cases)

test procedure: sequence of test cases in execution order, and any associated actions that may be required to set up the initial preconditions and any wrap up activities post execution
NOTE Test procedures include detailed instructions for how to run a set of one or more test cases selected to be run consecutively, including set up of common preconditions, and providing input and evaluating the actual result for each included test case

ですね。両方ともかなり近いです。というか、参照しているといっても間違いではないでしょう。29119の方のNoteは、Test caseはテストの最小単位だ、と言っていますね。というわけで、違いはないということでこの後の話を進めます。

テストケースは、事前条件、入力、アクション、期待値、事後条件を定義します。テスト手順は、複数のテストケースの実行順序と、テストセットの前後の条件設定です。

ここで正直に言いますが、僕は、一つのテストケースの手順を書く行為がテスト実装だと思っていたんです。でも、定義を改めて読むとそうじゃないみたいです。一つのテストケースで見るとテスト手順なんてものは必要なく、複数のテストケースをつなげてまとめるときに、初めてテスト手順が必要となるんだと。

テスト実装のアウトプットはテスト手順仕様ですが、ここでいうテスト手順とはそれぞれのテストケースの手順の実装ではなく、テストケースをどういう順番でつなげていくかの実装なのだということがわかりました。


ずっと「各テストケースを手順化する」をテスト実装だと思い込んできてたので、ちょっと恥ずかしいです。

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