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のテストは自動化できそうですね。