
テストデータ作成のための良いツールはないでしょうか。
今のところ、Oracle SQL Developer や Visual Studio のサーバーエクスプローラー、OSqlGridなど
を使って、手作業でテストデータを作っています。
いずれも、グリッド編集的な機能によって、手作業でそれぞれのテーブルに対してデータを入力
しています。
(一度作ったデータは、再度クリーンな状態から再現するために、最終的に SQLのINSERT文に
して保存しています)
1テーブルあたりのテストデータ件数は10件から50件程度なのですが、
つらいなあ、と思うのは、例えば「テーブルA」の明細レコードとして「テーブルA-1」のような
テーブルがあり、テーブルA-1のさらなる明細レコードとして「テーブルA-2」がありまして、
そういった場合、上記のツールを使っている場合、それぞれに紐付くレコードを把握しつつ管理
するのが大変です。
テーブル構成を管理しているのは客先なのですが、カラムが増えたり移動(別のテーブルに移動)
したりして、末端の人間としては、既に作成したテストデータを変更するのが大変だ、という
悩みもあります。
テストデータ作成及び管理に良いツールはないでしょうか。
あるいは当該プロジェクトのための専用ツールを作った方が良いでしょうか。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
テストデータ作成及び管理に良いツールなら、SuperDBToolとSuperDevToolをお勧めしますよ。
今は無料で公開しています。速めにダウンロードに行ってください。http://www.google.co.jp/search?hl=ja&q=superdbto …
データの関係で一括でデータを作るツールです。
No.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で行うと、逆に効率が悪くなりそうな気がするのですが、
そんなにうまくいくものなんでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:26
- IT・エンジニアリング 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:25
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Oracle SQL update方法 2 2022/06/22 14:07
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(プログラミング・Web制作) python 3.10で 同じlistに同じ構文で同じデータ代入した結果が異なる現象発生 7 2022/06/18 11:08
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルから数値をSELECTする...
-
SQLの書き方を教えてください。
-
テーブル名をカラムとして取得...
-
SQL 複数テーブルのupdate
-
うまくいきません教えてくださ...
-
MySQLについての質問です!!
-
MYSQLで異なるテーブル間のデー...
-
条件があった場合だけINSERTしたい
-
SQL文の書き方(こんなこと出来...
-
会社の飲み会の幹事になり、座...
-
テーブルの作り方
-
お金持ちのテーブル
-
MySQL:文字列の自動収集
-
ACCESSで3ファイルを結合して、...
-
MySQLのテーブルに、CSV形式の...
-
条件によって抽出するデータを...
-
テーブルデータの絞込み条件
-
Oracleで上書きImportはできま...
-
グループごとの最高得点者一覧...
-
off of と fromの違いを教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL、2つのテーブルで条件一致...
-
update文で改行を入れる
-
SQL*LoaderでCSVから指定した列...
-
sqlplusで表示が変なので、出力...
-
テーブル名をカラムとして取得...
-
SQL 複数テーブルのupdate
-
ROWNUMでUPDATEをしたいのです...
-
カラム位置変更
-
SQLでSUMなどの関数でデータが...
-
SQL(oracle)でご助言いただきた...
-
OracleのSQLで同テーブルのカラ...
-
SQLで違うテーブルの値を比較し...
-
特定のカラムが更新されたとき...
-
LONG型の先頭250バイトを Varch...
-
DBからタブ区切りのCSVデータを...
-
Viewのカラムの長さが不明?
-
distinct をexistsに変換する
-
oracle 複数列を1列にまとめる
-
件数とデータを同時に取得する...
-
数値をNUMBER型にするかCHAR型...
おすすめ情報