SQLのテストって

Javaで作成されたテスト対象メソッドの引数をランダムに変更して
テスト実行させるツールがあります。


まぁ、処理に必要な情報が引数だけで済んで、かつ状態を持たなければ
かなりテスト工数が削減できる有効なツールなのですが、
最初から意識して設計しないとぜんぜん使い物になりません。


といっても、システムはJavaだけで作成されるのではなく、
SQLを使用してDBMSからデータを取得したり格納することが殆どでしょう。
最終的にはDBMSに格納することが多いのではないでしょうか。


ソースコードカバレッジは気にしても、
SQL(特にSELECT文)のカバレッジを気にする人は少なくありませんか?
Where句に条件が一つ欠けている不十分なSELECT文でも、
格納されているデータパターンが少なければ
想定どおりの情報が取れると判断してしまいがちです。
ORとかANDとか入り組んだSQLからテストデータを漏れなく作成することは
非常にスキルの必要なことです。


そこで、DBの制約を参照して考えられるランダムなデータを作成するツールがあれば
SQL文のテストはできるかと。
ちょっと考えてみよう。