skillup

技術ブログ

ドキュメント作成 プログラミング全般

テスト環境のデータ作りに関して

投稿日:2021年12月11日 更新日:

単体テスト以降の環境ですとテストのデータを作ることがなかなか大変だと思います。マスタなどはそのままもらうこともあると思いますので、主にトランザクションデータについて。

以前もこのネタに関しては色々書いてますね。

ダミーデータの作り方 まとめ

テストデータを作るのが大変・・・といっても色々あると思いますが、以下のような点ですかね。

問題点

  • 仕様的に整合性のある正しい(生きた)データを作るのがそもそも大変
  • 上記の条件を満たしており、テストを網羅できる大量のデータを作るのがそもそも大変

対策全般

共通で必要になる対策

仕様がわかる人材、お客さん、あるいは近いフェーズの人のアドバイスによるデータ作成

個別対策その1プログラムをそのまま使う

登録系の処理を利用して、登録部分のモジュールを走らせ、テストデータを大量に入れる

メリット

  • 仕様的にデータの整合が取れる
  • 乱数、日付の範囲選択などカスタマイズされたお手軽なデータも自在に作れる
  • 大量データも自在に作成可能

デメリット

  • この条件を揃えることが難しい
    (プログラムで回せるように登録処理が書かれていることが前提になる、そもそも登録処理自体が他のベンダー開発担当でさわれない・・・など)

個別対策その2 Excel &プログラム

一般的によく使われてる方法だと思いますが、Excelで機械的に作る方法です。

メリット

  • 単純な乱数やマスタ参照なども作成が用意
  • ExcelがあればOKなのでほぼ環境に依存しない
  • マクロ、標準対策の関数を組むことで、ちょっとしたカスタマイズが可能
  • 大量データを作るのがある程度可能
  • 簡単なGUIの画面などをつくることも不可能ではない

デメリット

  • 生きたデータを作るのが難しい
    (アドバイザーがいないと仕様的に正しくても実ケースに即したデータ作りにくい)
  • ものすごい大量のデータを作ろうとするとファイルが重くなる
    (1テーブル1万程度が目安)
  • 関連テーブルが多くなると整合を取るのが難しい
  • GUIなど凝ったものを作ることは難しい

個別対策その3 ノーコード &ローコードアプリ

やったことないんですけどモック &模擬テストデータとして、ノーコードやローコードなどで簡単な画面とデータの関連を作る方法です。(やや妄想です。)

ローコード自体はkintoneってアプリで過去やったことあるんですが、その時の記憶を頼りにメリデメを挙げております。

メリット

  • 低コスト(インフラ、プログラミング環境構築不要)で、画面+簡単なデータ環境を作ることが用意
  • 関連テーブル数が多くなっても仕様的に正しいデータを作ることができる
  • モックレベルのものが簡単にできる
  • 環境をweb上に公開するので共有が楽(お客さんに共有しやすい)
  • ちょっとしたプログラムを組めることもある(kintoneの場合はJavaScript)

デメリット

  • ある程度の学習コストが必要(学習コストはExcel以上、プログラミング言語での環境構築以下という感じ)
  • カスタマイズに限界がある(カスタマイズ性はExcel以上、プログラミング言語での環境構築以下という感じ)
  • 画面から入力することになるので、大量のデータを作ることがそんなに簡単ではない

現実のプロジェクトではその2をベースに部分的にその3、その1を活用するのがいいのでは・・・・と思っております。

なお、以前あげたwebサービス(人名とか)活用とかは利用できる範囲が狭いのでちょっと難しいですね・・・

記事書いたらkintoneやりたくなってきました・・・(汗)

-ドキュメント作成, プログラミング全般
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

emptyの扱いに関して

PHPで空白や存在確認として便利なemptyですが、乱用すると意図しない動きをすることがあるケースが多々あります。 Contents1 emptyの挙動に関して2 数値の03 検索などの全判定と値のな …

no image

ドキュメント作成(要件定義〜設計)のポイントについて

4月から新しいプロジェクトが始まり仕事がドキュメント作成(要件確認書、基本設計、詳細設計)などをしております。この仕事自体が自分にとってあまりなじみのないものだったので、そこで思ったことなどを。 Co …

no image

OSコマンドインジェクション

Contents1 OSコマンドインジェクションとは?2 被害3 対策4 参考リンク OSコマンドインジェクションとは? OSに対する命令文を不正に紛れ込ませて攻撃させる手法。 被害 サーバー内のファ …

no image

ExcelVBAに関して(主にプロシージャ)

いつも半年ごとぐらいに触っていてあまり知識が蓄積しないので(汗)これを機につまづいたところをちょっとメモ。 Contents1 基本2 メモ3 参考リンク 基本 基本的な変数の代入や条件分岐、ループな …

no image

Simple Factoryパターンについて

今回はデザインパターンの一種であるSimple Factoryパターンに関して。 Contents1 Simple Factoryパターンとは2 サンプルコード3 解説 Simple Factoryパ …

アーカイブ