プロが教える店舗&オフィスのセキュリティ対策術

テストデータ作成のための良いツールはないでしょうか。

今のところ、Oracle SQL Developer や Visual Studio のサーバーエクスプローラー、OSqlGridなど
を使って、手作業でテストデータを作っています。
いずれも、グリッド編集的な機能によって、手作業でそれぞれのテーブルに対してデータを入力
しています。
(一度作ったデータは、再度クリーンな状態から再現するために、最終的に SQLのINSERT文に
して保存しています)

1テーブルあたりのテストデータ件数は10件から50件程度なのですが、
つらいなあ、と思うのは、例えば「テーブルA」の明細レコードとして「テーブルA-1」のような
テーブルがあり、テーブルA-1のさらなる明細レコードとして「テーブルA-2」がありまして、
そういった場合、上記のツールを使っている場合、それぞれに紐付くレコードを把握しつつ管理
するのが大変です。

テーブル構成を管理しているのは客先なのですが、カラムが増えたり移動(別のテーブルに移動)
したりして、末端の人間としては、既に作成したテストデータを変更するのが大変だ、という
悩みもあります。

テストデータ作成及び管理に良いツールはないでしょうか。
あるいは当該プロジェクトのための専用ツールを作った方が良いでしょうか。

A 回答 (2件)

テストデータ作成及び管理に良いツールなら、SuperDBToolとSuperDevToolをお勧めしますよ。

今は無料で公開しています。速めにダウンロードに行ってください。
http://www.google.co.jp/search?hl=ja&q=superdbto …

データの関係で一括でデータを作るツールです。
    • good
    • 1

テストデータ生成ツールについていくつか調べたり使ったりしたこともありますが、書いておられるようなことは特にツールを使って行わないとできないようなことではないような気がします。


よって、自力でツール化のほうがお勧めですね。

>いずれも、グリッド編集的な機能によって、手作業でそれぞれのテーブルに対してデータを入力しています。
>(一度作ったデータは、再度クリーンな状態から再現するために、最終的に SQLのINSERT文に
して保存しています)

ここが作業が大変になるところですね。
グリッド編集でテストデータを作成するのは、よほど少量でなければ止めておいたほうがいいでしょう。
お勧めのやり方ですが、テストデータの「種」保存用のテーブルを作り、少量の種レコードを保存し、そこからSQL文で種を増幅してテストデータ保存用テーブルにINSERTやUPDATEし、データ生成するような方法です。
SQLをうまく書けば、主キーを連番にしたり、金額などの数値をばらけさしたり、ヘッダ・明細関係を保つこともできます。
増幅する方法はコツさえつかめれば簡単です。


テーブルDDL変更は、プロジェクトメンバー全員で共有すべきなので、それは必ず知らせてもらうようにしましょう。できればその時の変更DDLも入手させてもらうようにして、テストデータ用テーブルにも適用すればよいのではないでしょうか。

とにかく、早めにグリッド編集作業からは脱却して、すべてをSQLで行うようにシフトすることですね。

この回答への補足

ご回答ありがとうございます&お返事が遅くなってしまい、申し訳ありません。


> グリッド編集でテストデータを作成するのは、よほど少量で
> なければ止めておいたほうがいいでしょう。
> お勧めのやり方ですが、テストデータの「種」保存用のテーブルを
> 作り、少量の種レコードを保存し、そこからSQL文で種を増幅して
> テストデータ保存用テーブルにINSERTやUPDATEし、データ生成する
> ような方法です。

説明不足で申し訳ありません。
実はuresiiwaさんのおっしゃる
「テストデータの「種」保存用のテーブルを作り」
の部分(たぶん)をしんどいと思っているのです。

単にバリエーションのあるデータを増幅したデータが欲しい場合、
ちょっとしたプログラムを組んで、それで例えば1000件のデータを
INSERT文として出力するようにしてます。
テキストを吐き出せる言語なら何でもいいので、適当な言語で吐き
出してます。
場合によっては、プログラムから直接Oracleにデータ出力するように
してます。

この場合は、主キーを連場にしたり、金額などの数値をランダムにしたり
といったことは、自由自在にできるので、まあ、どうでもいいんですが。


「種」となるようなデータを作るには、やはり手作業しかないと思うのですが
どうでしょうか。
その手作業をする場合には、グリッド編集的なツールで、それぞれのテーブルの
関連を見ながら作らざるを得ないのでは?とか思うのですが。

その場合に、既存のグリッド編集ツールがどうにも使いにくくて、何か良い
ツールはないだろうかと。


件数として、1テーブル10件から50件と言ってしまいましたが、若干の
バリエーションを入れたくてそう言ってしまいまして、すみませんでした。
実際は、1テーブル最低必要なのは5件程度とか、孫明細まで入れてトータルで
30件程度のデータがあれば、種としてはOKだろうと思います。

ただ、それを作るのがしんどいです。


> グリッド編集でテストデータを作成するのは、よほど少量でなければ
> 止めておいたほうがいいでしょう。

この場合は、「よほどの少量」に該当するのではないかと思っている
のですが、どうでしょう。

SQLで「増幅」させる以前の件数だと思うので、さすがに手作業で
作らざるを得ないのではないかと思うのです。



ちなみに、テーブル数はとりあえず3テーブルとかそんな程度で、そこから
参照しているマスタが多数あったりします。
3テーブルの各カラム数は、数十カラムぐらいあり、10程度のマスタを参照
するようになってまして、そこがまた面倒です。

グリッド編集的な機能で、既存の(というか、他社が作った)マスタを
参照しながらそれにあうデータを作っていくのが、ほんの数件であっても
大変だなあ、と思う次第です。
しかも一度作ってOKというわけではなく、他社のマスタデータがまたコロコロ
変わるので、そういった場合に、こちらのデータの整合性がきちんと取れているか
どうかとかを「パッと見」で確認しつつ、合わない部分をちょこちょこっと
修正したりできるといいなあとか思います。


> とにかく、早めにグリッド編集作業からは脱却して、すべてをSQLで行うように
> シフトすることですね。

全てをSQLで行うと、逆に効率が悪くなりそうな気がするのですが、
そんなにうまくいくものなんでしょうか。

補足日時:2009/05/18 23:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!