データ駆動テストに対する違和感

データ駆動テストというテストスクリプティング技法があります。

スクリプト記述技法のひとつ。テストスクリプトの実行に必要なテストデータおよび期待結果を含んだデータファイルを使う。

こちらISTQB Glossary定義より。

システムテスト自動化標準ガイドでは、スクリプティングの技法として以下が並んでいます。

リニアスクリプト
構造化スクリプト
共有スクリプト
データ駆動スクリプト
キーワード駆動スクリプト

で、タイトルの通り、なんかデータ駆動スクリプトだけ違うんじゃない?と漠然と思っていたのです。今日ちょっと考えてその違和感の正体に気づきました。

データ駆動スクリプトだけテスト実装の技法ではないんじゃないか

ってことです。テストスクリプトって普通一つのスクリプトが一つのテストケースを実現するものじゃないですか。でも、データ駆動スクリプトだけは全く違っていて、テスト実行するときにテストケースを複数生み出している感じがしたんです。だから、テスト設計技法なんでは?と思ったというのがその経緯です。

でもよーく考えてみると、テストスクリプトはテスト実装後のテスト手順の実現系なわけで、テストケースを複数含むことは可能なはずです。データ駆動スクリプトは偶然その流れがおなじでデータだけが異なるパターンなんだ、と考えると、しっくりきました。

じゃあなんでこんな疑問が出てきてしまったかなのですが、おそらく、

データ駆動でテスト設計することもあるから

だとおもいます。明確なテスト設計技法は当てはまらないかもしれませんが、データを同値分割しカバレッジアイテムを規定、それらをカバーするようなテストケースを生成することがありますよね。それがデータ駆動スクリプトでやってることと同じだと思うんです。

でも本質は、そのデータをカバーするように生成したテストケースをテストスクリプトでまとめて実行できるようにしているのがデータ駆動スクリプトなのではないかと腹落ちしました。


それにしても、このデータをカバーするようなテストって何かテスト設計技法の名前がついてもいい気がするんですけどね。29119-4では見つかりませんでした。うーん。



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