9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ChatGPTでテーブル定義からテストデータの生成

Posted at

ChatGPTでテーブル定義からテストデータの生成

テストしていてふと思ったのですが、データベースに登録するデータいちいち作成しなくても、ChatGPTに作成させれば、すぐ終わるのでは?

実際の生成

質問1

""" CREATE TABLE categories (
	id bigserial NOT NULL,
	"name" varchar(255) NOT NULL,
	created_at timestamp NULL,
	updated_at timestamp NULL,
	CONSTRAINT categories_pk PRIMARY KEY (id)
);  """に対するテストデータをSQLで10件作って

CREATE TABLEからデータを作成するようにお願いしました。

結果1

INSERT INTO categories ("name", created_at, updated_at) VALUES
('Category 1', '2023-08-03 12:00:00', '2023-08-03 12:00:00'),
('Category 2', '2023-08-03 12:10:00', '2023-08-03 12:10:00'),
('Category 3', '2023-08-03 12:20:00', '2023-08-03 12:20:00'),
('Category 4', '2023-08-03 12:30:00', '2023-08-03 12:30:00'),
('Category 5', '2023-08-03 12:40:00', '2023-08-03 12:40:00'),
('Category 6', '2023-08-03 12:50:00', '2023-08-03 12:50:00'),
('Category 7', '2023-08-03 13:00:00', '2023-08-03 13:00:00'),
('Category 8', '2023-08-03 13:10:00', '2023-08-03 13:10:00'),
('Category 9', '2023-08-03 13:20:00', '2023-08-03 13:20:00'),
('Category 10', '2023-08-03 13:30:00', '2023-08-03 13:30:00');

それなりに作成してくれました。

質問2

nameには適当なそれらしいカテゴリーを作成してください

結果2

INSERT INTO categories ("name", created_at, updated_at) VALUES
('Electronics', '2023-08-03 12:00:00', '2023-08-03 12:00:00'),
('Home & Kitchen', '2023-08-03 12:10:00', '2023-08-03 12:10:00'),
('Fashion', '2023-08-03 12:20:00', '2023-08-03 12:20:00'),
('Books', '2023-08-03 12:30:00', '2023-08-03 12:30:00'),
('Sports & Outdoors', '2023-08-03 12:40:00', '2023-08-03 12:40:00'),
('Beauty', '2023-08-03 12:50:00', '2023-08-03 12:50:00'),
('Toys & Games', '2023-08-03 13:00:00', '2023-08-03 13:00:00'),
('Health & Fitness', '2023-08-03 13:10:00', '2023-08-03 13:10:00'),
('Automotive', '2023-08-03 13:20:00', '2023-08-03 13:20:00'),
('Pet Supplies', '2023-08-03 13:30:00', '2023-08-03 13:30:00');

それらしいデータ作ってくれました。英語ですが問題ないです。

質問3

また、created_at、updated_atは適当に散らした値で作成してください

結果3

INSERT INTO categories ("name", created_at, updated_at) VALUES
('Electronics', '2023-08-03 08:10:25', '2023-08-03 08:10:25'),
('Home & Kitchen', '2023-08-03 09:20:50', '2023-08-03 09:35:15'),
('Fashion', '2023-08-03 10:30:10', '2023-08-03 10:40:35'),
('Books', '2023-08-03 11:40:30', '2023-08-03 11:50:45'),
('Sports & Outdoors', '2023-08-03 12:50:55', '2023-08-03 13:00:25'),
('Beauty', '2023-08-03 14:00:15', '2023-08-03 14:10:35'),
('Toys & Games', '2023-08-03 15:10:25', '2023-08-03 15:20:45'),
('Health & Fitness', '2023-08-03 16:20:35', '2023-08-03 16:30:55'),
('Automotive', '2023-08-03 17:30:45', '2023-08-03 17:40:15'),
('Pet Supplies', '2023-08-03 18:40:55', '2023-08-03 18:50:35');

それらしいテストデータを作ってくれました。

考察

  • きちんとしたテストデータを作成できました。
  • ツール化すると面白いと思います。
  • DDLと実行するSQLとで、テストデータとテスト項目も作成もできそうです。
  • 結合するテーブルも作成してくれそうです。
  • テーブルのカラム追加など変更するとテストデータの修正がめんどくさい。そこを自動生成してくれるとありがたいですね。
  • DBのテストは自動化できそうですね。
9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?