テストデータの準備について

システムを作成していると必ずテストをするフェーズがあります。

新規で機能を実装するとその機能に見合ったテストデータを準備しなければならず、この作業のコストは大抵安いものではありません。

そこで皆さんがどんな方法でテストデータを準備しているのか Twitter でアンケートを取ってみましたのでレポートを纏めたいと思います。

Twitter アンケートの内容と結果

以下が実際に投稿したアンケートになります。

厳密な統計結果ではないので参考程度にはなりますが、たくさんの意見を頂けました。

もっとも多かったのは『Excel で文字列連結して一気に生成』ですね。

やはり表形式である Excel はデータを扱うことには長けています。

手作業で値を入力していくにも値の可読性が高いだけではなく、連番したり式で値を加工したりして効率的にデータを作成しやすい点があげられる気がします。

SQL 文の生成も文字列加工で ="INSERT INTO [TABLE_NAME] VALUES ("&@[列1]&", "&@[列2]&", "&@[列3]&");" みたいな式を作って行分コピーすれば何千行あっても一気に作れるのが楽ですね。

リプライで頂いた意見

具体的な例として以下のようにテストデータを作成しているという意見が頂けました。

  1. バッチアプリを作成して生成
  2. SQL を生成する SQL を記述して生成
  3. スクリプトを作成して生成

一番気になったのが『スクリプトを作成して生成』というご意見でした。

Excel の式の可読性の低さやそもそも macOS ユーザだったり Excel が入っていなかったりして Excel での INSERT 文の生成が現実的ではない場合があるそうです。

そのため、生成の処理だけ手元の環境で動くスクリプトで作成し、ExcelFakerというツールで作成したダミーデータをインプットに INSERT 文を生成するそうです。

確かに Excel 非依存のライブラリで Excel を読み込んで INSERT 文を生成するスクリプトを作成しておけば Excel が入っていなくてもテストデータの作成が可能になります。

そのうえ、インプットデータの取得処理を修正すれば Excel 以外の値作成方法にも対応できるため便利ですね。

まとめ

皆さんはどのようにテストデータを準備していますでしょうか。

内心テストデータの生成に関して Excel より良い方法やツールがあったりしないかと思いアンケートを実施してみましたが、改めて Excel の実績を感じましたね。

私は仕事では Excel VBA で実装されたツールを使ってテストデータを準備しています。

スクリプトを作成して生成』に近しいものがありますが、Windows が標準で Microsoft Office が必ずと言っていいほどインストールされていることがほとんどな日本の SIer では有用な方法にも思えます。

この記事でテストデータ作成で苦労している人が少しでも楽に慣ればいいなと思います。