テスト設計技法って本当にテスト設計のための技法なんだろうか

というお話です。どうしてそんなことを思ったかというと、↓らへんを考えているときにもやっていたからです。

たすき掛けって、テストを効率的に実行する手法なんですよね。ここで書いたことが正しければ、CT法もテストを効率的に実行する手法ということが言えちゃいます。で、「テストを効率的に実行する」ってテスト実装のタスクじゃなかったっけ?みたいなのが僕のモヤりの流れです。


定義から振り返る

まずはテスト設計とテスト実装の定義から見直してみます。JSTQB FL 2018V3.1.J03より。

テスト設計では、テスト条件をハイレベルテストケース、ハイレベルテストケースのセット、およびその他のテストウェアへ落とし込む。つまり、テスト分析は「何をテストするか」を決定し、テスト設計は「それをどうテストするか」を決定する。

テスト設計ではテストケースを作る。テスト設計はどうテストするかを決める活動、ということですね。うーんこれだけじゃ難しいですね。

テスト設計は「それをどうテストするか」の答えであり、テスト実装は「テストの実行に必要なものすべてを準備したか」の答えである

こちらはテスト実装です。テスト実行のために必要なものすべて、ですね。

効率的にテスト実行ができるように、テスト実行スケジュール内でテストスイートを調整する

アクティビティの一つとしてこれが挙げられています。効率的に、というのがでてくるのはここぐらいでしょうか。

テスト設計とテスト実装は一緒に行うことがある。

こんなことも書かれています。

ちょっとJSTQBでは解決しなかったのでISO/IEC/IEEE 29119-2も見に行ってみます。29119-2では、Test design&implementation processとしてTD1~TD6が規定されており、今回の話に関係ありそうなのがTD3: Derive test coverage itemsとTD4: Derive test casesです。

TD3の中に

a) The test coverage items to be exercised by the testing shall be derived by applying test design techniques to the test conditions

こう書かれていて、TD4の中には

a) One or more test cases shall be derived by determining pre-conditions, selecting input values and, where necessary, actions to exercise the selected test coverage items
NOTE 1 When deriving the test cases, one test case could exercise more than one test coverage item and thus there is the opportunity to combine coverage of multiple test coverage items in a single test case. 

こんなことが書かれています。複数のテストカバレッジアイテムをカバーするようにテストケースを作ることもある、ということですね。


改めて、テスト設計技法はテスト設計のための技法なのか

29119-2のテストプロセスではtest design&implementation processとなっているので、どこまでがテスト設計なのか怪しいところですが、テストケースを作るのがテスト設計だ、という定義で行くとTD4までがテスト設計なのだと思われます。その解釈でいくと、CT法もテストケースを作る技法ですのでテスト「設計」技法は正しそうです。

ただ、個人的にはTD4で一度に複数のテストカバレッジアイテムをカバーするようにテストケースを作ってしまっている時点で、「どうテストするか」から「いかに効率的にテストするか」に興味が移っている気がするんですよね。なのでTD4はテスト設計とテスト実装の混合プロセスだという気がしています。この解釈で考えると、CT法は確かにテストケースを作るために使っている手法だが、テストカバレッジアイテムを効率的にカバーするようにテストケースを作っているのでテスト実装も一部含んでいる、というのがしっくりきます。


同じ考えで、直交表などはテスト実装も含んでるんじゃないかな、と思います。まぁそこまで細かく考えてもいいことないかもですが、一応解像度をあげておいた方がいいかなと思いましたので。





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